So, what saving and investing mean to you? As a business oriented student, we should be able to understand and differentiate between both terms. So, asking yourself, what Saving means to you? In common word, Saving refers to not spending a substantial income or in another word, reduction of spending. While reducing the portion of income, we will save this income and accumulate the amount from time to time. As in personal finance, saving refers to allocating substantial amount from our overall income into low risk capital preservation investment product. These products include Saving Account, Checking Account, Fixed Deposit, and etc.
Versus Saving, Investing is a big word to many of us. Investment involve monies allocated from our income or Saving into higher risk of investment product that will grow and enhance the return of the allocated monies. Some categories of investment category involve Equity, Share, Unit Trust and etc. The vital objective of investment involve understanding the risk involve in the investment product to evaluate the possible income generated from these products.
Overall, the risk involved in Investment is higher as compared to Saving. Each investment product's return is co-related with the risk involved. In any common term, the higher the risk, the higher the reward of investment. Thus, it is important for any investor or saver to understand the consequences involved in making any decision to save or to invest in any investment product.
Some may even ask, if I save, so what will be the risk I face? All the while, I believe saving money in a Bank is the safest mean of safe-guarding our money? Well, this is the street man view but not really taking place in absolute (100%) manner. Banking institution is established for profit purposes. Well, for some baking, profit may not be the main aim but it is important that the Bank made sufficient return to sustain her operation while carrying out her day-to-day operation. Thus, profit is still an important topic involved.
Due to the profit element, Bank carry out risk taking operations by taking deposit and at the same time disbursing the collected monies as loan to any relevant parties with the agreed interest (profit margin). Most of the time, the approved loan are calculated risk but, in any substantial cases, there are risk involved. Thus, risking the monies owed to the depositor. This is considered risk to the saver or investor.
When the accumulated risk on the bank ballooned, the Bank may risk to collapsed and by then, our monies may not be recovered. This scenario is only a simplified version of a bank collapsing. In modern day, we are much protected in many countries thru the existence of Central Depository Insurance Agency in individual country and is set up mainly by the Central Bank or the Federal Government.
This agency is established to insured a substantial amount of monies deposited in any legal banking institution registered with the agency. Each country will have their own framework to run, thus it is important for us to understand our rights and benefits thru the agency.
For some who have doubt on Saving and Investing, it is time to clear up the air. Risk happen to be an important element in managing our monies in daily life. Risk appear to be a daily encountered as far as we are dealing with any element that bring value to life. To decide to save and to invest are important in altering the landscape of one Personal Finance. As we know, Personal Finance is a plan and tool to achieve our Personal Financial Goal. Decide the best and understand the risk of our decision.
Speak of Mind
Monday, 29 October 2012
Data Centric Analysing in Object Oriented Design
As Object Oriented Design name suggested, OOD made a large step to encourage system to be built by focusing on the object itself as compared to her predecessor, Procedural Programming. Data oriented intention is important in today's world of object oriented programming. Data oriented refers to action initiated by data/ object instead of action or processes.
Why data centric programming is encouraged than common procedural programming? Due to the new development of system design and development, we realize the importance of data and the state of the data in the system data flow. Data is important to the extend that it will impact the system behavior. Any unwanted state of data may result in unwanted system behavior.
Let's look into a real life example; in an Apple Juice processing plant, apple is considered data, the plant refers to processes and the Apple Juice will be the output. In Procedural Programming, focus is hover on the processes involved in processing the fruit into the required juice. Though, less attention is given to the data. While this may well argued that, a good processes will ensure good output and efficient processing, we have missed out other bigger possibilities.
Imagine if the apple feed into the system consist of rotten apple, what will be the quality of the produced Apple Juice? Alright, you can answer yourself. Or, what if any debris or external unwanted input comes along the way during the processing flow? Let say, a fly is drowned among the apples, or some nails are being processed along. What will be the desired output? Or will those unwanted items clog down the whole processing plant?
The above example is a simple example how we should look into problem domain in Object Oriented Design. Initial planning in OOD will always kick off with identifying objects in the problem domain, following the data and later, only by operation. By identifying our objects and data, we are open to any possibilities of action. Back to the above example, the processing plant may need apple to produce Apple Juice. The main question is, where and how to get the apple? OOD provides a wider selection of alternative for this question. You should know the reason behind.
Thus, rather than limiting our design in Procedural Programming, we should have to focus more on important segment of the system which will be the data from the objects. Rather than allowing action to process our data, we should be now focus on data to decide on processes to be executed as claimed.
Why data centric programming is encouraged than common procedural programming? Due to the new development of system design and development, we realize the importance of data and the state of the data in the system data flow. Data is important to the extend that it will impact the system behavior. Any unwanted state of data may result in unwanted system behavior.
Let's look into a real life example; in an Apple Juice processing plant, apple is considered data, the plant refers to processes and the Apple Juice will be the output. In Procedural Programming, focus is hover on the processes involved in processing the fruit into the required juice. Though, less attention is given to the data. While this may well argued that, a good processes will ensure good output and efficient processing, we have missed out other bigger possibilities.
Imagine if the apple feed into the system consist of rotten apple, what will be the quality of the produced Apple Juice? Alright, you can answer yourself. Or, what if any debris or external unwanted input comes along the way during the processing flow? Let say, a fly is drowned among the apples, or some nails are being processed along. What will be the desired output? Or will those unwanted items clog down the whole processing plant?
The above example is a simple example how we should look into problem domain in Object Oriented Design. Initial planning in OOD will always kick off with identifying objects in the problem domain, following the data and later, only by operation. By identifying our objects and data, we are open to any possibilities of action. Back to the above example, the processing plant may need apple to produce Apple Juice. The main question is, where and how to get the apple? OOD provides a wider selection of alternative for this question. You should know the reason behind.
Thus, rather than limiting our design in Procedural Programming, we should have to focus more on important segment of the system which will be the data from the objects. Rather than allowing action to process our data, we should be now focus on data to decide on processes to be executed as claimed.
Tuesday, 23 October 2012
Encapsulation AND Abstraction in Object Oriented Design
While migration of Procedural System Design to Object Oriented System design has taken place since the paradigm shift, developer often face the challenges to adapt the shift. For some, the terms; Object Oriented (OO) sounds unfamiliar terms to them. Base on object, OO System Design offers various advantages as compare to her predecessor. One of the louded advantage include the term Abstraction.
Abstraction is a term used to define approach to hide non-essential information of an item (either data, operation or even class). Abstraction is important to allow simplicity and to improve visible of the item (data, operation and class). Thus, a class present herself only the essential items which are useful to other classes. This approach as well is known as information hiding. Please be reminded this way; we should ask WHAT to order when we go for dinner but we will never ask HOW the food is being prepared. This is similar to Abstraction approach.
Why does information hiding so important? This is to reduce complexity. Imagine, if you wish to eat an apple, do we really really intend to know how the apple is planted and later harvested and reach to to your hand? Our objective is to eat an apple and not how the apple is planted. By hiding non-important/ non-essential information, our communication with the apple is simplify. On top of this, the apple seller can change how they stock up their apple without worrying if you will or not buying the apple. Object to object communication should be as simple as possible without worrying how the object carry out the method/ task/ behave. In another way, by adopting class abstraction, we are able to protect our content (data, operation or class).
While Abstraction promotes information hiding, Encapsulation is an approach to control access to the item (data, operation or class). Even with Abstraction, a proper access control to the class content is important. As in, who is able to see what in a class is dependent on Encapsulation. Encapsulation is important to protect and to reduce simplicity in a class. Imagine, if the item (data, operation or class) is public to everyone, any changes on the public item (data, operation or class) will effect other's operation involving the item. Thus, Encapsulation is an approach that can lead us to Abstraction.
Both Abstraction and Encapsulation are important to achieve the concept of OO. We can reach Abstraction thru Encapsulation. This is a term that we have to bear in mind.
Abstraction is a term used to define approach to hide non-essential information of an item (either data, operation or even class). Abstraction is important to allow simplicity and to improve visible of the item (data, operation and class). Thus, a class present herself only the essential items which are useful to other classes. This approach as well is known as information hiding. Please be reminded this way; we should ask WHAT to order when we go for dinner but we will never ask HOW the food is being prepared. This is similar to Abstraction approach.
Why does information hiding so important? This is to reduce complexity. Imagine, if you wish to eat an apple, do we really really intend to know how the apple is planted and later harvested and reach to to your hand? Our objective is to eat an apple and not how the apple is planted. By hiding non-important/ non-essential information, our communication with the apple is simplify. On top of this, the apple seller can change how they stock up their apple without worrying if you will or not buying the apple. Object to object communication should be as simple as possible without worrying how the object carry out the method/ task/ behave. In another way, by adopting class abstraction, we are able to protect our content (data, operation or class).
While Abstraction promotes information hiding, Encapsulation is an approach to control access to the item (data, operation or class). Even with Abstraction, a proper access control to the class content is important. As in, who is able to see what in a class is dependent on Encapsulation. Encapsulation is important to protect and to reduce simplicity in a class. Imagine, if the item (data, operation or class) is public to everyone, any changes on the public item (data, operation or class) will effect other's operation involving the item. Thus, Encapsulation is an approach that can lead us to Abstraction.
Both Abstraction and Encapsulation are important to achieve the concept of OO. We can reach Abstraction thru Encapsulation. This is a term that we have to bear in mind.
Sunday, 21 October 2012
Credit Card, Debit Card and ATM Card in Brief
A student asked, what is the difference between Debit Card, Credit Card and an ATM Card. Speaking of which, not many can differentiate these cards in modern financial market in a well manner. In fact, we have been too used with Credit Card and ATM Card in Asia and even in our own local mart, Malaysia. So, what exactly these cards are and their basic purposes for you in a lay-man term.
Credit Card refers to a card that allows you to exchange goods with credit which you have to settle within the given time frame. This available credit is per-determine when you have your Credit Card applied. The available credit limit is dependent on your cash flow capabilities and subject to various consideration by any awarding financial institution. Credit Card differs from a Clear Card; where bout Credit Card allows much flexible repayment period as compared to Clear Card which much be repaid during or before the final agreed payment due date. In common, the awarded Credit Card will carry the brand Master Card and Visa branding. Both type of cards have their own significant differences which are beyond the scope of this short discussion.
ATM Card or in full refers to Auto-Teller Card allows the holder to access to their financial account monies by withdrawing or to perform substantial transaction on the Auto-Teller machine (ATM Machine) on any allowed transactional time. This card is meant to facilitate and make your banking experience faster and easier. In any simple mind, ATM Card is meant to withdraw money without visiting the bank counter. Though, the transaction is subject to the limit of your banking account and as well to certain non-conventional banking rules (E.g.: Limit of withdrawal, substantially lower amount allowed for account transfer and etc).
The last but not least, Debit Card refers to card that allow you to withdraw and perform any retail transaction without the hassle of visiting any physical ATM Machine. With a seamless transaction taking place on the back end, performing any retail transaction is similar to making a purchase thru Credit Card, but in this case, Debit Card is limited to your account balance. Any transaction amount is deducted directly from your account. This scenario is similar to you visiting ATM Machine, making withdrawal and pay the item you have in your shopping list.
As a consumer, which card should you possess and what are the impact to you? And as a merchant, which card brings benefit towards the overall transaction in your business range.
As a consumer who are limited to the ATM Card may choose to apply for Debit Card. Debit Card indeed save you the hassle of visiting ATM Kiosk or reducing the risk of having physical monies on oneself. At the same time, in many cases, Debit Card offers significant values to the card holder by providing privileges and rebate to the Card Holder. By then, Debit Card will stand to gain from using the card against the conventional ATM Card. But bear in mind, in Malaysia, there is no rule that specify that Debit Card is not subjected to any annual fee.
Although, in our current market, the growth is still young and many banks have not start charging one, your may risk to one in the future when the market is mature enough to absorb this fee. On top of this, Debit Card annual renewal fee is significantly higher as compared to any ATM Card. In average, ATM Card will cost you RM 8 per renewal per year while similarly, Debit Card will cost you RM 12 per renewal per year. Some may argue RM 4 difference is too little to neglect for the benefit that offered, but this provides a significant room for more fees in the future.
For those who are eligible for Credit Card and belongs to the type of consumer that is well aware on their personal spending, you are much encouraged to apply one of this card. Credit Card is a tool that expose a consumer to debt or financially, leverage. Credit Card allows better benefit in terms of saving, privilege and other intangible benefits. These benefits are offered due to the nature of earning that a financial institution get while extending debt to a consumer. While many are aware, Credit Card debt or aka Personal Debt is among the highest income generating among all types of debts extended to a consumer. Looking into this lucrative margin, a better benefit is common to attract more debt taker and defaulter.
Since we reckon Credit Card incurred debt, why do we still indulge to one? As the leverage suggested, debt allows us to leverage the possibility of the monies we have. Purchasing an item without the physical monies in the account is an advantage while we allocate the amount to service back our debt. This type of debt is similar to overdraft. Though, it is a clear beneficial overdraft instead of using Credit Card to build up debts for personal desire items.
There is no absolute winner for any type of cards you wish to own. Cost is totally different with RM 8 for ATM, RM 12 for Debit Card, RM 50 - RM 100 (for common classic Credit Card for primary card holder) + RM 50 Government Tax. With the highest cost on Credit Card, the card still offer the best for the card holder in many cases. With different card and their primary objective, a smart consumer must consider the ownership of the card well. Owning one is easy but to service and the cost of maintenance may not be sustainable to some for long run. Thus, be a smart consumer and assess the best cause for the best impact to our ever shrinking wallet.
Credit Card refers to a card that allows you to exchange goods with credit which you have to settle within the given time frame. This available credit is per-determine when you have your Credit Card applied. The available credit limit is dependent on your cash flow capabilities and subject to various consideration by any awarding financial institution. Credit Card differs from a Clear Card; where bout Credit Card allows much flexible repayment period as compared to Clear Card which much be repaid during or before the final agreed payment due date. In common, the awarded Credit Card will carry the brand Master Card and Visa branding. Both type of cards have their own significant differences which are beyond the scope of this short discussion.
ATM Card or in full refers to Auto-Teller Card allows the holder to access to their financial account monies by withdrawing or to perform substantial transaction on the Auto-Teller machine (ATM Machine) on any allowed transactional time. This card is meant to facilitate and make your banking experience faster and easier. In any simple mind, ATM Card is meant to withdraw money without visiting the bank counter. Though, the transaction is subject to the limit of your banking account and as well to certain non-conventional banking rules (E.g.: Limit of withdrawal, substantially lower amount allowed for account transfer and etc).
The last but not least, Debit Card refers to card that allow you to withdraw and perform any retail transaction without the hassle of visiting any physical ATM Machine. With a seamless transaction taking place on the back end, performing any retail transaction is similar to making a purchase thru Credit Card, but in this case, Debit Card is limited to your account balance. Any transaction amount is deducted directly from your account. This scenario is similar to you visiting ATM Machine, making withdrawal and pay the item you have in your shopping list.
As a consumer, which card should you possess and what are the impact to you? And as a merchant, which card brings benefit towards the overall transaction in your business range.
As a consumer who are limited to the ATM Card may choose to apply for Debit Card. Debit Card indeed save you the hassle of visiting ATM Kiosk or reducing the risk of having physical monies on oneself. At the same time, in many cases, Debit Card offers significant values to the card holder by providing privileges and rebate to the Card Holder. By then, Debit Card will stand to gain from using the card against the conventional ATM Card. But bear in mind, in Malaysia, there is no rule that specify that Debit Card is not subjected to any annual fee.
Although, in our current market, the growth is still young and many banks have not start charging one, your may risk to one in the future when the market is mature enough to absorb this fee. On top of this, Debit Card annual renewal fee is significantly higher as compared to any ATM Card. In average, ATM Card will cost you RM 8 per renewal per year while similarly, Debit Card will cost you RM 12 per renewal per year. Some may argue RM 4 difference is too little to neglect for the benefit that offered, but this provides a significant room for more fees in the future.
For those who are eligible for Credit Card and belongs to the type of consumer that is well aware on their personal spending, you are much encouraged to apply one of this card. Credit Card is a tool that expose a consumer to debt or financially, leverage. Credit Card allows better benefit in terms of saving, privilege and other intangible benefits. These benefits are offered due to the nature of earning that a financial institution get while extending debt to a consumer. While many are aware, Credit Card debt or aka Personal Debt is among the highest income generating among all types of debts extended to a consumer. Looking into this lucrative margin, a better benefit is common to attract more debt taker and defaulter.
Since we reckon Credit Card incurred debt, why do we still indulge to one? As the leverage suggested, debt allows us to leverage the possibility of the monies we have. Purchasing an item without the physical monies in the account is an advantage while we allocate the amount to service back our debt. This type of debt is similar to overdraft. Though, it is a clear beneficial overdraft instead of using Credit Card to build up debts for personal desire items.
There is no absolute winner for any type of cards you wish to own. Cost is totally different with RM 8 for ATM, RM 12 for Debit Card, RM 50 - RM 100 (for common classic Credit Card for primary card holder) + RM 50 Government Tax. With the highest cost on Credit Card, the card still offer the best for the card holder in many cases. With different card and their primary objective, a smart consumer must consider the ownership of the card well. Owning one is easy but to service and the cost of maintenance may not be sustainable to some for long run. Thus, be a smart consumer and assess the best cause for the best impact to our ever shrinking wallet.
Tuesday, 16 October 2012
Efficiency vs Maintenance
There have been a a great arguments between the ease and efficient programming versus the needs to balance an ease of system maintenance. As a programmer myself during my early days, we have been well trained to develop an efficient system. Boombastic and cut-throat approach have always been my liking to reduce programming lines and size of my system. At least, these have been louded as the standard procedures for me during my early days in my programming world experience.
We tend to compare whose system coded with the minimal line and still producing the required output. We as well tend to boast on how efficient our system to save memory utilization and as well as how quick our system is to response to any requirement. Too far to see will be the balance between the efficiency and the ease of maintenance of the system or codes in eye-naked view.
So, an important question is; what is ease of maintenance? There are a few approaches or at least strategy that allow us to improve the maintenance of our system. Shall we not able to achieve these, at least we have contribute to the minimal level to simplify the maintenance processes. Below are what's in my mind so far.
01. Consistent format & Programming Style
To establish a consistent programming trend and standard among team members of a collection of developers has remain a challenge to many. Not bounded to any small development team, but as well to many big organization. Individual programmer style will kill off the standard that a system requires to be. A standard style will improve readability and enhance the system logic to any third party auditor or developer. Thus, standardization is important. Imagine a newbie joining the team and the system has been standardized to ease the whole learning curve. Beneficial?
02. Is all about Making Sense
It has been a norm that we like to improve our programming time by giving short and sexy variable, method or even class names. Some denote a, b x, and yadas for various reasons. While we may act as a developer, we may not be the final recipient end to maintain the system. An expressive wording will certainly help to improve system understanding. You may under estimate this effort or self pro-claimed that you are a good programmer that will meet things end, but do can you guarantee that you will perform well when your system grow big and your time resources shrink fast? You may think, but may not be the real.
03. Comment, Comment and keep Commenting
We do not like to write comments on what we have done. Some organization have documentation practices to describe various logical steps. Even our Quality Control Manager (QCM) will have their set of documentation, so why not us? Computer world is heading for automation from time to time. We have Unit Testing and Automated Test to improve quality of the system. Still, a few lines of comment do help when it comes to the dirty work of a programmer. Short but expressive. Be generous on commenting. If your language sucks, try to use some mathematics formula instead. Be creative.
04. Redundancy is not Wasting
I believed we have been advised to keep redundancy low. We started on this topic when we learn Database thru the process of Normalization, if you recalled. Soon, we migrated the similar topic to Programming where we spend effort to reduce redundancy. We understand redundancy kills when it comes to maintenance topic, so, why the hassle I reiterate this discussion? Not all redundancy kills. Redundancy on certain code is important to breakout the "coupled" effect of some methods or interaction between classes. Assuming two methods are loosely coupled, the chances of both to go against each other are higher. In this case, a redundancy of code may safe you more time than any others. So, think twice before we start to kill off redundancy from the table.
The listed items on above will be the simple entry on how to improve maintenance topic in this ever growing demand of Computer World. These are small steps of us as a responsible programmer for the benefit of the system and development team. A small thought of mine, thus weight no offense to you. Move up and be creative?
We tend to compare whose system coded with the minimal line and still producing the required output. We as well tend to boast on how efficient our system to save memory utilization and as well as how quick our system is to response to any requirement. Too far to see will be the balance between the efficiency and the ease of maintenance of the system or codes in eye-naked view.
So, an important question is; what is ease of maintenance? There are a few approaches or at least strategy that allow us to improve the maintenance of our system. Shall we not able to achieve these, at least we have contribute to the minimal level to simplify the maintenance processes. Below are what's in my mind so far.
01. Consistent format & Programming Style
To establish a consistent programming trend and standard among team members of a collection of developers has remain a challenge to many. Not bounded to any small development team, but as well to many big organization. Individual programmer style will kill off the standard that a system requires to be. A standard style will improve readability and enhance the system logic to any third party auditor or developer. Thus, standardization is important. Imagine a newbie joining the team and the system has been standardized to ease the whole learning curve. Beneficial?
02. Is all about Making Sense
It has been a norm that we like to improve our programming time by giving short and sexy variable, method or even class names. Some denote a, b x, and yadas for various reasons. While we may act as a developer, we may not be the final recipient end to maintain the system. An expressive wording will certainly help to improve system understanding. You may under estimate this effort or self pro-claimed that you are a good programmer that will meet things end, but do can you guarantee that you will perform well when your system grow big and your time resources shrink fast? You may think, but may not be the real.
03. Comment, Comment and keep Commenting
We do not like to write comments on what we have done. Some organization have documentation practices to describe various logical steps. Even our Quality Control Manager (QCM) will have their set of documentation, so why not us? Computer world is heading for automation from time to time. We have Unit Testing and Automated Test to improve quality of the system. Still, a few lines of comment do help when it comes to the dirty work of a programmer. Short but expressive. Be generous on commenting. If your language sucks, try to use some mathematics formula instead. Be creative.
04. Redundancy is not Wasting
I believed we have been advised to keep redundancy low. We started on this topic when we learn Database thru the process of Normalization, if you recalled. Soon, we migrated the similar topic to Programming where we spend effort to reduce redundancy. We understand redundancy kills when it comes to maintenance topic, so, why the hassle I reiterate this discussion? Not all redundancy kills. Redundancy on certain code is important to breakout the "coupled" effect of some methods or interaction between classes. Assuming two methods are loosely coupled, the chances of both to go against each other are higher. In this case, a redundancy of code may safe you more time than any others. So, think twice before we start to kill off redundancy from the table.
The listed items on above will be the simple entry on how to improve maintenance topic in this ever growing demand of Computer World. These are small steps of us as a responsible programmer for the benefit of the system and development team. A small thought of mine, thus weight no offense to you. Move up and be creative?
Sunday, 14 October 2012
System Design
In brief, Design Stage can be summarized into the effort of looking into two sides of the wall; System Flow Design and Interface Design. In real, there should be a balance of both to enhance the system capabilities to serve the intended objective.
System Flow Design
Personally, this will be the foremost design process that need to be detailed by the System Analyst (SA) and as well the Business Development Team (BD). Detailing the logic flow of all business processes in the system or within system boundary, any mishap will result into inefficiency of the system or producing unintended output. Top down analysis and later bottom to top construction are normally involved.
The system is broken down into chains of affecting modules or collections of features. Each module or collection are manned by silos involving matrix of resources from various department. Silos are developed to provide the required knowledge to power the modules/ features. Each processes involved in the modules are finely detailed and later "chained" to provide a seamless business flow or in some organization is identified as the sub-systems.
Once documentation and logic is prepared from various silos, the sub-systems are merged into the final process. Commonly known as system integration, the phase does not only involved a completely developed system. During design, sub-systems are integrated on "paper" to, to address the problem in the final production output.
In many times, one or several sub-systems are modified accordingly to venture into a better interaction among sub-systems. Generally, secondary sub-systems are involved in the processes. Secondary sub-systems are known to be less vital as compared to primary sub-systems which served as the back bone of any final system. "Print" sub system for instance may required re-organization or modification in order to serve the purpose of other primary sub-system. This is important to allow better utilization of the "Print" sub system and to allow non unique features from depositing in the "Print" sub system.
Interface Design
This area of design has been a heat topic since being introduced in many system development life cycle. In a unique scenario, this phase of designed is normally to be conducted by User Interface Expertise who venture their knowledge domain in understanding Human Behavior, Design and Program Functionality. Due to the lapsed of expertise, the individuals involved in Interface Design often mistaken as Graphic Designer or Business Development Executive.
Not to be mistaken, Interface Design requires high degree of understanding of the system design and user's interaction experience. In this phase, it is vital for the personnel to identify the key features and plan on the system experience. A good design will lead to a better system utilization. At some points, a good design will improve user experience by reducing system errorness due to poor and misleading system design.
User experience is important to garner system utilization and influence in decision making. This is especially true when it involve high degree of user interaction among the system features. Take an instance on web application; a poor design will likely discourage new user participation and reduce the penetration rate of any new application into the market. On the same note, a good Interface Design will improve development time sheet by a great mile. A good user acceptance will likely be resulted from a clear and indicative system design.
Conclusion
System Design phase is not all about solid processes mix and match, but is a process that involve a good combination element of functions and implementation. Good feature without a solid base for implementation, will not take off to produce the best result of a system. Thus, as a developer, to plan is to design. To design is to be well implemented. Stuffed in the middle of between scratch and final out, design is the only phase that allow full connection to reduce the possibility of a failed system.
System Flow Design
Personally, this will be the foremost design process that need to be detailed by the System Analyst (SA) and as well the Business Development Team (BD). Detailing the logic flow of all business processes in the system or within system boundary, any mishap will result into inefficiency of the system or producing unintended output. Top down analysis and later bottom to top construction are normally involved.
The system is broken down into chains of affecting modules or collections of features. Each module or collection are manned by silos involving matrix of resources from various department. Silos are developed to provide the required knowledge to power the modules/ features. Each processes involved in the modules are finely detailed and later "chained" to provide a seamless business flow or in some organization is identified as the sub-systems.
Once documentation and logic is prepared from various silos, the sub-systems are merged into the final process. Commonly known as system integration, the phase does not only involved a completely developed system. During design, sub-systems are integrated on "paper" to, to address the problem in the final production output.
In many times, one or several sub-systems are modified accordingly to venture into a better interaction among sub-systems. Generally, secondary sub-systems are involved in the processes. Secondary sub-systems are known to be less vital as compared to primary sub-systems which served as the back bone of any final system. "Print" sub system for instance may required re-organization or modification in order to serve the purpose of other primary sub-system. This is important to allow better utilization of the "Print" sub system and to allow non unique features from depositing in the "Print" sub system.
Interface Design
This area of design has been a heat topic since being introduced in many system development life cycle. In a unique scenario, this phase of designed is normally to be conducted by User Interface Expertise who venture their knowledge domain in understanding Human Behavior, Design and Program Functionality. Due to the lapsed of expertise, the individuals involved in Interface Design often mistaken as Graphic Designer or Business Development Executive.
Not to be mistaken, Interface Design requires high degree of understanding of the system design and user's interaction experience. In this phase, it is vital for the personnel to identify the key features and plan on the system experience. A good design will lead to a better system utilization. At some points, a good design will improve user experience by reducing system errorness due to poor and misleading system design.
User experience is important to garner system utilization and influence in decision making. This is especially true when it involve high degree of user interaction among the system features. Take an instance on web application; a poor design will likely discourage new user participation and reduce the penetration rate of any new application into the market. On the same note, a good Interface Design will improve development time sheet by a great mile. A good user acceptance will likely be resulted from a clear and indicative system design.
Conclusion
System Design phase is not all about solid processes mix and match, but is a process that involve a good combination element of functions and implementation. Good feature without a solid base for implementation, will not take off to produce the best result of a system. Thus, as a developer, to plan is to design. To design is to be well implemented. Stuffed in the middle of between scratch and final out, design is the only phase that allow full connection to reduce the possibility of a failed system.
Monday, 1 October 2012
SDLC - Brief of Design Stage
System design and system development cost the most in any system development. Costing a development team resources, failure to reckon a system development objective will drive the development team away from the original system output. Thus, focusing on both stages are as important as briefing the system in details during the planning phase.
I believe many system developer will focus primarily in the development stage. While we are doing our job well, we tend to forget that, without a good mold, the output is as bad as the input. Considering the importance of the design stage, it is vital for all the development members to enhance the efficiency of the design processes.
So, what are the basic things that need to be done in design stage? Most and most will be the basic requirement fulfillment of the system needs. System requirement is indeed digested into implementable way using various strategy. From a naked eye, it may involve two different types of design; logic or system flow design and as well as user interface design.
Focus should be mainly on system flow design from the programmer perspective. A well documented system flow and business logic are important to allow the system to deliver the needed. At the same time, this will enhance the quality of the User Acceptance Testing (UAT Testing). There happen to be many flip flops here and there during this process as logic will be revised and keep revising. I believe this is a challenge for most. Thus, the role of a System Analyst and Business Analyst are important to assume the role as a gate keeper to ensure a proper flow of information and logic are ensure.
Coming on par of the system flow design, one should not forgotten the user interface design. It may not be relevant to many of the developer out there, but as a system designer and a project leader, interface is as important as any. No one insist of buying an ugly system if they are not forced into the deal. Thus, a good to use and feel-good system are attractive bargaining power to attract user or owner of the system.
I will drill more on both stages one by one soon.
I believe many system developer will focus primarily in the development stage. While we are doing our job well, we tend to forget that, without a good mold, the output is as bad as the input. Considering the importance of the design stage, it is vital for all the development members to enhance the efficiency of the design processes.
So, what are the basic things that need to be done in design stage? Most and most will be the basic requirement fulfillment of the system needs. System requirement is indeed digested into implementable way using various strategy. From a naked eye, it may involve two different types of design; logic or system flow design and as well as user interface design.
Focus should be mainly on system flow design from the programmer perspective. A well documented system flow and business logic are important to allow the system to deliver the needed. At the same time, this will enhance the quality of the User Acceptance Testing (UAT Testing). There happen to be many flip flops here and there during this process as logic will be revised and keep revising. I believe this is a challenge for most. Thus, the role of a System Analyst and Business Analyst are important to assume the role as a gate keeper to ensure a proper flow of information and logic are ensure.
Coming on par of the system flow design, one should not forgotten the user interface design. It may not be relevant to many of the developer out there, but as a system designer and a project leader, interface is as important as any. No one insist of buying an ugly system if they are not forced into the deal. Thus, a good to use and feel-good system are attractive bargaining power to attract user or owner of the system.
I will drill more on both stages one by one soon.
Subscribe to:
Posts (Atom)