While auditing a software team, I ran into a maintenance project where the estimation of a modification had been underestimated. Looking into the details, the project manager stated that he underestimated the testing effort required. While testing they run into the typical case of "collateral damage" ... you change something here and it goes wrong elsewhere. Digging a bit deeper, showed that this was mainly caused by a software design where tightly coupling was key. "yes we know, as design is evolving, we need to refactor every few years ..."
Refactoring ... every few years ?!? ... How does this fit into one sentence? The weird thing was that even after pointing out the need for a more loosely coupled design and layered architecture, the team was still not convinced that they should focus on refactoring instead of modifying their estimation capabilities. When it came to refactoring, they did not really knew how to sell this to the customer ... make it part of your definition of "done" and just like continuous integration, do it on a daily/frequent basis that will lower the "pain".
Tuesday, June 26, 2007
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment