October
2005
Keep it Simple to Understand
Nothing is more dangerous for the development process than losing control of the project complexity (think of a star collapsing into a black hole). The team must develop a feeling for complexity and know when a task should/can not be done or when a technology or a design should not be used or followed for fear of complexity taking over.
There is also a soft, human side to it—developers who are uncertain of the application are likely to make grave mistakes anywhere along the development process. They are also likely to pass on this message of uncertainty when working closely with the client. Then you are dealing with suspicious clients…
The “keep it simple” meme should therefore be understood as Keep it Simple to Understand and Control or “keep it easy”. Beware of simple solutions that may be correct and even elegant but are too abstract or just not easy to understand.
Dealing with human nature
The “keep it easy” mantra is best understood when projecting it onto the development and integration process. Everything that simplifies the team’s life should be seriously considered. The opposite is equally true (or even stronger). Therefore the following holds: When a development process can be automated or made rigid (i.e. less prone to human errors) at reasonable cost (here lies the trick) it should be!
Confidence in one’s software
Extreme Programming refer to the confidence one should have in the software that is being developed. How true. It is vital to make sure programmers feel they are standing on firm ground. The verb “feel” is used not to suggest any kind of denial or masking the truth, but rather to the actual psychological state of the programmer. Some degree of inconsistency surely exists in the software and a programmer can undoubtly be unaware of some of it. Nor can a programmer be expected (by himself or others) to have a intimate familiarity with the all the dusty dark corners of the code. Yet he should feel confident to the degree that he will not resent or fear changes. Otherwise changes are likely to be deferred forever making room for ugly patches that are followed by a flok of bugs and yet another decrese in confident.
Confidence is the anti-patch drug.
To be continued…