“Just follow our ABC process, we guarantee success!”
How many times have we heard that one? In a world where there is relentless pressure to deliver, the hope of a guarantee is attractive. And to be fair, the various software development methodologies out there certainly aren’t snake oil; they have every intent of helping organizations to be successful. Yet things still go wrong.
Not that we want our software projects to fail. We all enjoy being a part of something successful, and being successful requires that we approach our craft in a professional, repeatable manner. Yet these repeatable processes can break down and lead to failure, mostly because of a couple simple traps.
Relying on overly-stringent procedures is one trap. While it is productive to have clarity in roles and guidelines for people to understand and follow, make sure that you provide some latitude so that the process can be adapted.
Many software projects get bogged down in following rote procedures – ultimately enforced by the “process police.” I worked for a company years ago that had something published called The Guide, but it ended up being The Rulebook that allowed no compromise. Once you have a scenario like this, it becomes difficult to adapt and optimize to meet the needs of a specific project. There is resistance to trying anything outside the approved standard.
Best practices are another trap: Today’s best is tomorrow’s mediocre. The term “best” can create the perception that the practice cannot be topped or modified because it is already the best. There is built-in inertia where adaptation becomes a long, hard slog for anyone attempting to improve the process. I prefer things to be labeled as technical practices or process-related practices, not best practices.
And don’t have these practices mandated by a select few who push them out to the masses. There should be more of a collaborative feel where the circumstances that led to something working for one group are explored, so that the conditions of what made it work are well-understood.
Following a single, formal, strict process for many companies is beginning to cost too much. Why? Because many companies have a “do things right the first time” mindset that translates to each project defining everything possible so that, “We don’t have to come back to the project later.”
Unfortunately, in an effort to nail the project, every possible feature is stuffed into the project plan and the notion of small, quick project goes out the window. Every project becomes big and expensive, with a consequence of valuable time and money being expended in building features that the business won’t need or care that much about.
One size does not fit all. Keep your processes flexible and adaptable.