Principles of Conventional Software Model
Principles of Conventional Software Model
1) Make quality #1: Quality must be quantified and mechanisms put into
place to motivate its achievement.
3) Give products to customers early: No matter how hard you try to learn
user’s needs during the requirements phase, the most effective way to
determine real needs is to give users a product and let them play with it.
6) Use an appropriate process model: For every project, there are so many
prototypes (process models). So select the best one that is exactly suitable
to our project.
7) Use different languages for different phases: Our industry’s main aim is
to provide simple solutions to complex problems. In order to accomplish
this goal choose different languages for different modules/phases if
required.
11) Inspect the code: Examine the detailed design and code is a much
better way to find the errors than testing.
13) People are the key to success: Highly skilled people with appropriate
experience, talent, and training are key. The right people with insufficient
tools, languages, and process will succeed.
14) Follow with care: Everybody is doing something but does not make it
right for you. It may be right, but you must carefully assess its applicability
to your environment.
15) Take responsibility: When a bridge collapses we ask “what did the
engineer do wrong?”. Similarly if the software fails, we ask the same. So
the fact is in every engineering discipline, the best methods can be used to
produce poor results and the most out of date methods to produce stylish
design.
17) The more they see, the more they need. The more functionality (or
performance) you provide a user, the more functionality (or performance)
the user wants.
18) Plan to throw one away .One of the most important critical success
factors is whether or not a product is entirely new. Such brand-new
applications, architectures, interfaces, or algorithms rarely work the first
time.
21. Use tools, but be realistic. Software tools make their users more
efficient.
22. Avoid tricks. Many programmers love to create programs with tricks
constructs that perform a function correctly, but in an obscure way. Show
the world how smart you are by avoiding tricky code.
24. Use coupling and cohesion. Coupling and cohesion are the best ways
to measure software’s inherent maintainability and adaptability.
25. Use the McCabe complexity measure. Although there are many metrics
available to report the inherent complexity of software, none is as intuitive
and easy to use as Tom McCabe’s.
26. Don’t test your own software. Software developers should never be the
primary testers of their own software.
27. Analyze causes for errors. It is far more cost-effective to reduce the
effect of an error by preventing it than it is to find and fix it. One way to do
this is to analyze the causes of errors as they are detected.
28. Realize that software’s entropy increases. Any software system that
undergoes continuous change will grow in complexity and become more
and more disorganized.
29. People and time are not interchangeable. Measuring a project solely by
person-months makes little sense.
30) Expert excellence. Your employees will do much better if you have high
expectations for them.