Early in my career I worked for a company that tried to adopt the ISO 9000 standard to drive the software development process. I was already working on a disaster project, with both poor design and implementation. Rather than help correct course on the project the attempt to adopt the standard added to the chaos. Progress on the project was already crawling, ground to almost a halt. The sign-off process required by the standard significantly slowed decision making and getting things done. Reams of write once, read never paperwork was generated. When an ISO 9000 auditor was brought in, the project manager generated lots of post facto records simply to comply with the standard and pass the audit.

All the work to comply with the standard resulted in negative quality results. All the projects in the department were delayed in delivery, with negative to no increase in quality. The paper work requirements proved to be an excessive burden for the quality goals for the projects in our department. The incentives as setup for the audit and standard did not generate a virtuous cycle of improvement, rather it created incentives to circumvent the process and emphasised compliance with the process, rather than doing what was right to deliver the projects meeting the delivery and quality goals of the company.

More recently I have worked for companies that have adopted aspects of agile processes. In general, the more the process is attempted to be applied cookie cutter as described in its idealized form, the less successful it tended to be. Agile process tends to be more successful, when practices are adopted when they make sense for a project, and with flexibility to adjust and adapt the practices to fit the character, development, and goals of a team.

Key learnings about process:

  • Don’t do process for processes sake. A process is there to serve a purpose, not to be the purpose.
  • Don’t lose the point of a process.
    • If you don’t know the why of the process, you don’t know if it’s really needed.
  • Good process addresses and leverages human behavioral tendencies.
    • Making the process the path of least resistance, it helps with adoption.
    • The longer the process and more complex the process the less likely people are to follow it.
  • Strive for tools that support the process.
    • Make it easy
    • Make the process unnecessary
  • Just enough process to herd the cats, but no more.

Resources