Sunday, March 2, 2008

good design determine programmer productivity that create reliable system

An enterprise system is complex and it has to be able to handle day to day business processes and activities. The reliability of the system is so much dependent on how the system was designed and developed by the programmer. Programmer need to code well and able to create a system with the most reliable code. However, in practical to be able to achieve a highly reliable system is very costly to the organization. The reason is because a lot of testing need to be done to ensure that every source code is validated. Microsoft particuallary has been trying to improve the reliability of Windows by patches and patches after the final release. Why need to do in that way? Why not to produce a system which is 100% free of bugs? The answer of this question is too simple to say that it is very time consuming and costly to examine every possiblility of the failure in the system. We have no choice but keep complaining about the reliability of the system and luckly there are software developers who are keeps fixing it. This is how the software industry works. If some one were to change it, it is the last breakthrough of information technology.

To start to design a stable and reliable system, 3 things need to keep in mind at first. 3 rules: guidelines need to be followed, always keep things simple and last but not lease always keeps design a good database structure by having 3rd NF.

Guidelines are the findings and experinces of the system designer in which makes the best to design the system. It also covers the rules that draw the requirements. Guidelines are important because the things to be followed and the things to be avoided during the system development cycle, guideline are very depending on each organization, therefore you set your own rules.

KISS, keep it simple, the secret that always work in every situation in our life. Keep it simple does not means to ignore requirements but to avoid doing things in a hard way. We need to be smart in finding alternative which is elegant and simple enough to our self to accomplish thing. For example, i can save time by having alble to find 5Min's solution using Google. Smart isn't it?

Database design is very very important. We hardly see an enterprise system without using database. A large system particularly are very used to having a database server to serve everyday data intensive client. Moreover, an efficient and high performance database system is critical to the success of the system as a whole. Therefore database design is extremely critical to determine the reliability of the system and the productivity of the programmers. Why? The reasons are, programmer need to code less and perhaps it is easier to code if the database design is in properly designed. I once experience to do develop a system in which the database design is not in the proper way. In this case i had to write additional code which is not necessary to make it work and i had to spend much my time to check the data to ensure it was consistent across the system. Why we need to check by us since a relational database system is so good in enforcing constrain in every database manipulation that keep data integrity. Therefore a good database design must have this 3 things, 3rd NF, one primary key for each table and have relational constrain.

A lot of problem will happen during the system development if the initial system design is not good enough. The worst thing is that the database design is in bad shape, i wonder how many debugging time has been wasted during the system development.

No comments: