How mature is your software development process?

posted by Software Quality Associates

PART I: MATURITY LEVELS

One useful way to assess your software development process is to consider how mature it is — that is, which of four general levels it falls into.

SQA has devised the following system based on our experiences at past customer engagements as compared with best practices:

  • Level 1: Heroics. This is unpredictable and essentially uncontrolled.
  • Level 2: Quality Control. Task-driven, with repeatable activities.
  • Level 3: Quality Assurance. Collaborative, integrated and implemented with the complete lifecycle in mind.
  • Level 4: Quality Management. Process-governed, measured and focused on continual optimization.

Each level includes all improvements from the lower levels.

Want a more specific look at these levels? Consider this chart:

As you can see, maturity improves as the various phases of the software development cycle become more integrated, and instead of being task-driven, the cycle is instead process-driven. Software is developed in an orchestrated, consistent way — not via ad-hoc, individual efforts.

Organizations at Level 4 (Quality Management), the column furthest to the right, typically create the best software. And that’s true whether you evaluate it in terms of schedule, cost, quality or customer and employee satisfaction.

Unfortunately, few IT organizations today are beyond Level 2 (Quality Control).

And actually, even getting that far is more than many have managed.

To achieve Level 2, previously mastered tasks have to be repeatable. Common examples include freezing requirements, quality planning, document control, early lifecycle reviews and defect management. And templates, checklists, phase gates will also all need to be in place.

Now imagine your process is being audited, with those elements all considered as part of the audit.

Would you pass such an audit?

The Improvement Continuum

You can also think of maturity as an answer to this question: How predictable is your project delivery?

Concepts of continuous improvement (e.g., Kaizen, Lean, Process Mapping, etc.) as applied to software development activities can really help — reducing costs, firming up the production schedule, enhancing quality levels and increasing customer and employee satisfaction.

And toward making the software development lifecycle both faster and more predictable, best practices can play a critical role. They’re discussed in our next blog entry.


Comments

Post has no comments.

Post a Comment on our blog:

Captcha Image