Conclusion


The choice between up-front work and refactoring should be made case by case. There is always some up-front work and some refactoring. It is up to the software engineer to make the right trade-off, based on the following heuristics.

  • If you can postpone decisions, you will be able to make better decisions at a later time.

  • Invest in more up-front work if the implementation cost of the functionality is likely to rise rapidly in the future.

  • Investing is dangerous unless you know the domain well and can make informed projections.

The choice comes down to selecting the method that implies the least risk. Good, experienced software engineers are able to make this choice. Instead of using the disparaging term "big design up front" (BDUF) we should be investigating how best to determine what is "just enough design for increments" (JEDI). This will enable us to make better-informed decisions.

Maybe software engineering should look not only to other engineering disciplines for analogies and techniques, but also to the way risk and return on investment are analyzed in the financial world.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net