Do you wonder how productive your software development process is?
Do you wonder whether an Agile or Extreme Programming approach would increase your development productivity?
Are you worried that your job will be outsourced because your company wants to increase your development productivity?
Wouldn’t it be wonderful if you could actually know the answer to these questions, instead of having to guess or rely on opinions, theories, or experimentation?
I recently had an opportunity to attend a Nashua (NH) Scrum Club meeting where Michael Mah from QSM Associates (www.qsma.com) gave a presentation on tools and techniques that his company uses to accurately measure the productivity of a software development process AND to compare the productivity of a project to the industry average for similar projects being done by similar teams. It seemed almost like magic.
First a bit of background…
I have always thought that any software project consisted of 4 key characteristics or dimensions:
- People — The number of people who are involved in the project. This includes everyone who contributes to the development, testing, building, integration, and management of the project.
- Content — The number of features that will be included in the project.
- Schedule — The schedule, or completion date, for the project.
- Quality — The level of quality that must be attained by this project.
And while you may wish to optimize all of these dimensions for your project, the relationship between them is absolute. So if you optimize one dimension, another dimension (or two) must be changed to compensate.
We have all seen this in practice. As an example, consider that recent project where it was on schedule, until a key customer insisted that you add “just a few more critical features”. For some strange reason, the project then finished later than planned. And people were surprised. Wow !!
Now, let’s look at the magic that QSM can do with the same information…
It turns out that QSM refers to these 4 dimensions using slightly different terms, as follows:
- Effort — The number of people who are working on the project.
- Produced Software Size — The number of “stories” for which software was produced, or the content of the project.
- Duration — The duration of the project.
- Discovered Defects — The number of defects discovered during FQA (Final Quality Assurance), or the quality of the code that was produced.
However you can still accurately determine values for these 4 dimensions and use them to calculate the productivity of a software project. So when this information is entered into QSM’s software tool, it generates a series of graphs that compare the productivity of your project to other projects with a similar dimensions. (Please see QSM’s web site for more information.)
This allows you to accurately and reliably analyze the productivity of your project AND to compare it to other similar projects. So you can also predict, as an example , whether it is (or is not) a good idea to move some (or all) of your development team off-shore.
And in today’s environment, where your products need every possible competitive advantage, wouldn’t you prefer to find out this type of information without experimenting?