Is design Dead?

"If you listen at your code good design will will appear".

This is the base in extreme programming where common design techniques are commonly ignored is not that extreme programming does not have design but the design been established as we advance in the project. Is listening to the code easy?

 Most of the time it's not, the system can grown without control and modifying or repairing the code is harder  and harder, bugs are hard to identify and solve. But to be fair, a bad planning or design will lead to this inevitably or maybe even worst. 

A good design or plan should counter all of this, all problems should be planned ahead and the code design should be adaptable enough to overcome this problem the project size is does not become bigger and bigger. Obviously this perfect design does not exist,  but the side effects can be minimized with a good enough design. 

One advantage in extreme programing is simplicity, "Do the Simplest Thing that Could Possibly Work" and "You Aren't Going to Need It". This reusable components enables a flexible design. Building only the things you need now, but leaving the parts modular for easy access and maintenance, like adding new features that you will need  in the future, but not now. 

 Diagrams are used for communication, not for yourself, this is the way you communicate with other people your approach to the problem and this involve having an idea before you even start to program, which is nos incompatible whit extreme programing, but it is recommended to follow the next ideas.

  • keep them short
  • don't try to address all the details (just the important ones)
  • treat the resulting design as a sketch, not as a final design
They are also useful for documentation, if the diagrams are short is easy to keep them updated, shared with every member in the project and that they are really used because they find them useful, not because you force people to use them.

Comentarios

Entradas más populares de este blog

The Hundred-Year Language

Mother of Compilers

Episode 61: Internals of GCC