next up previous
Next: . Up: The Software Dragons (ErrorLog:Documentation:Introduction). Previous: .

How to overcome Dragons

Dragons cannot be destroyed quickly. On the other side they become big and powerful not immediately too. This gives a possibility to overcome them.

Small Dragons are difficult to find. The host of small ongoing problems disturbs to see a system behind them. Dragons hide themselves before they have enough power and size. To see Dragons you should attentive seek them. You must study the nature of Dragons and their behaviour.

The big aid can be the previous experience. The projects devoured by Dragons can show the source and the conditions of the Dragons' growth. Of course the best way is to learn on errors of others. The same mistakes repeat again and again in different projects. It is good to know how things can be done proper, the better knowledge is how they may go wrong. You should become aware of problems in your project. Even of small problems. If you know about a possible mistake, you can avoid it. If you know some examples and recognise a Dragon that generates such errors, you can make systematic protection. It helps you to avoid a class of errors, even you cannot predict the possibility of some errors from this type.

Dragons have evil nature. In case you don't protect your project from them, they will use week places to attack. Your defence should be optimal. It is not good to spend extra resources to make unnecessary protection. It is worse to spend much more resources to rescue your project from Dragons that are already breach bad protection. You shouldn't forget that if an error is possible, you must prevent it. In other case you get this error sooner or lather only because Dragons have evil nature. Don't feed your Dragons.

For instance each programmer knows (or at least should know) that memory allocation can fall. This is a rare event, but it is possible. An enormous amount of errors in different programs exist only while programmers hadn't insert a small code unit that checks the situation where no memory is returned.

Other similar example is the rule to assign an initial value to each variable. The unexpected value can influence the behaviour of program in rare cases and in an unpredictable manner. As in previous example it is simple to code an initialisation for each variable. In case these protection steps are ignored, the cause of program failure is difficult to find. The search of only one not initialised variable in a big program may (and many times had) waste many man months.



Subsections
next up previous
Next: . Up: The Software Dragons (ErrorLog:Documentation:Introduction). Previous: .
2002-03-18