![]() |
Questioning "Best Practices" for Software Development |
![]() |
![]() |
A very popular term within the IT community is "best practice". It's a wonderful marketing term, how could someone possibly argue about adopting a best practice, but does the concept really make sense? I'm not so sure. Consider model reviews, an activity which many traditionalists would consider to be a best practice. And you know what, they're right, on a traditional software project reviewing models and documents is a best practice because it's a technique which enables you to validate your work early in the lifecycle when problems are less expensive to address. But, model reviews don't seem to make much sense on agile projects. When you have adopted Agile Modeling (AM) practices such as Active Stakeholder Participation, Model With Others, Collective Ownership, Apply Modeling Standards, and Display Models Publicly you discover that model reviews don't add much value to your project. |
|
Why does this happen? Model reviews compensate for poor communication, poor collaboration, and for individuals (or small groups of individuals) working on their own without regular input from others. Traditional teams suffer from these problems: they often have specialists such as business analysts, database designers, testers, and programmers who create artifacts and then hand them off to the next specialist(s) downstream from them and they often allow specialists to work on "their" artifacts in relative seclusion from the rest of the team. This approach is fraught with risk, and model/documentation reviews compensate for those risks. If you choose to work this way then model reviews are in fact a very good idea and clearly are a best practice for these teams. Agile teams, on the other hand, don't make these mistakes. Agilists are often generalizing specialists with a wide range of skills, they don't need to hand off work to others instead they collaborate with them to get the job done. Agile teams communicate and collaborate openly, they share artifacts and work on them together, they typically don't assign ownership to individuals and thereby don't risk the "owner" going off in a different direction from the rest of the team. Because agile teams don't suffer from the problems with model reviews compensate for they find that model reviews aren't a best practice and are arguably even a bad practice or worst practice.
When you observe what's going on within the agile community it becomes clear that many "best practices" really aren't. For example, consider the following practices:
Ideally, we should talk about best practices at all but instead should talk about contextual practices. Depending on the context, sometimes a practice is "best" and sometimes it's not. Calling something a "best practice" implies that it's a good idea all of the time, something we inherently know to be false. Having said that, the term "best practice" clearly has more marketing value than the term "contextual practice", and in this industry we know that marketing typically wins over truth, something that is clearly not a best practice.
I actively work with clients around the world to improve their information technology (IT) practices as both a mentor/coach and trainer. A full description of what I do, and how to contact me, can be found here.
Copyright
© 2005-2009
Scott W. Ambler
Agile Data (AD) |
Agile Modeling (AM) |
Agile
Unified Process (AUP) |
Enterprise
Unified Process (EUP)
![]()