About 80 percent of software houses around the world are small companies. Compared to the large companies, small shops typically have advantages in terms of agility, performance, motivation, and focus. What they don't often have is validation that the processes they use to deliver software also focuses on qualitythe type of validation usually reserved for large organizations that have adopted capability models like CMMi.
However, Codice Software (www.codicesoftware .com) is a small company that adheres to both Agile methodologies (SCRUM) and process improvement (CMMi). In this article, I explain why we pursued CMMi evaluation during the development of Plastic SCM (a configuration-management and version-control tool), what went smoothly, and what difficulties we had in making our SCRUM process fit within CMMi rules.
Why CMMi?
While companies usually adopt CMMi (www.sei.cmu.edu/cmmi/cmmi.html) to improve their software production methods, they recognize that the quality status is also worth the effort. Fewer than 2000 companies worldwide have reached one of the four CMMi official levels, so joining this exclusive club looks appealing to many companies.
Our motivations to achieve CMMi were:
- We expected rapid personnel growth, so having well-defined procedures would help us grow.
- As a small company entering a competitive market, a CMMi level would give us a competitive edge.
- We didn't want our Agile processes to degrade into code-and-fix cycles.
But we also had concerns. For instance, we didn't have previous full CMMi experience, we were worried about CMMi introducing unnecessary bureaucracy, and we were totally committed to SCRUM, even though from what we could tell, it wasn't fully compatible with CMMi.