Thinking About Software Process Improvement

In my experience, thinking about software development processes, and their maturity, within organizations, is something to which little to no time is devoted, at least not formally. In my opinion this partially stems from the age of the businesses I have been involved in, young software centric businesses that are either in the start-up phase or just within the established phase of their business life-cycle.

Of course, thinking and doing are seperate matters, but the former naturally precedes the latter. When it comes to the former, the first question that one may ask is why think about software process improvement at all?

In my opinion it comes down to achieving the strategic objectives of a software centric business, that is a business who’s primary output if software regardless of what business model is used in selling and delivering that software. I say this since if one has no understanding or interest in the maturity of a software process, nor how to improve it, then one will most likely not pay attention to the quality of the software that is produced.

The quality of software means different things to different people of course. A business analyst, usability specialist, application developer and end user will most likely give a different definition of what software quality means. The one aspect of quality most will agree on is correctness, that is, how buggy the software is. It is arguably very difficult to achieve strategic business objectives without formal quality assurance, and implicitly quality measurement, processes. In my opinion a starting point for such quality measurement is focusing on measuring the amount of bugs a particular software system has. This is in itself not a trivial exercise, but it may be a starting point for starting to think about software process improvement (SPI), with the achievement of strategic business objectives being the overarching consideration.

Thats enough from me on this topic for now.  For more read this post’s catalyst “Pushing for software quality assurance”, and the referenced research article on “Resistance Factors in the Implementation of Software Process Improvement Project in Malaysia” from the Journal of Computer Science 4(3):211-219 (2008). The research article outlines research on resistance factors to SPI, with software quality assurance (SQA) being a facet of SPI.