Software LIfecycle Management
and Christopher Columbus

Predictability in software development

Ernst van Waning
QSM
De Corridor 27
3621 ZA Breukelen
the Netherlands


The commercial development of software is not a process that can be done 'by the eye': the long accepted software crisis is now seen as a chronic situation facing the IT industry. Developing software is hard enough but managing software development projects is even harder to do 'by eye'. Tools are needed to show your development process as it really is: in project execution, in plans and bids and in comparison to other projects in the market. Easy to say, but what does it actually mean?

Software development projects are like ocean crossings, you don't reach your goal on gut feelings! Successful crossings are made with instruments that tell you where you are, where you are going and what weather you can expect. Managing software development projects is very similar, without instruments that can tell you what you have achieved and what you can expect, you are like Christopher Columbus. To his credit, Columbus did reach the other side of the world but on his first trip he had no idea how long the journey would take and when he arrived, never actually knew where he was!


The value of measurement instruments


Further evidence of the importance of measurement instruments can be found by moving from ocean crossings to everyday traffic on the roads, as anyone with a speeding ticket will testify.

A speedometer is a device that tells us our speed when driving and it does this in terms of kilometers or miles per hour. Kilometers and miles are meaningful terms to us and it is essential that we talk about speed in a way that everyone can understand. Legal speed limits are the hard reality of such understanding.

The beauty of these instruments is that they translate measurements into meaningful terms. How the instrument does this translation into speed is only of interest to the designer and not to its user. In fact we have used speedometers for centuries and the way in which measurements have been translated has changed over time, but the concept of what speed is has never changed at all. It's the capability of these instruments to convey meaningful information to the user that makes them so useful.

They make us aware of the situation and enable us to communicate this information effectively to others. Measurement instruments provide us with immediate and a meaningful knowledge about the state of our environment. Knowledge about your own performance and the potential risks you can take, are expressions of the old proverb 'know thyself'. Companies that are well informed about their performance tend to be better at project planning, project bidding and project delivery than companies with less self-awareness. This knowledge alone will lead to better customer satisfaction. Possibly the greatest advantage of this approach is that the knowledge of one's own performance is the key to systematically improve it!


A dashboard for software development


During a project execution we need to see immediately if we are on course or on schedule. In the event that we are off schedule, we need to effectively change course and this requires timely and accurate information to diagnose the faults and to make the necessary corrections.

As every project leader will testify during the course of a project, the world or the perception of the world changes, sometimes even a combination of both. This normally results in change requests. Always accepting change requests will quickly damage the project leader's credibility, but always refusing will inevitably lead to the same result. A better method is to produce information that encourages a culture of rational decision-making. For example, an estimate of the consequences from a change request that is based on actual project performance will encourage more rational decision-making.

The tool that can do this will use statistical techniques to evaluate progress. The tool will provide timely warnings that a project may overrun, estimates of a project's end-date, expected costs, expected quality at delivery time, all based on actual project data. This tool would not only inform you about the current status of a project, but it will also help to determine, (based on actual observations), how the project may look in future stages of the project lifecycle. In the diagrams below the black dots represent the observed project data. The hollow dots are the expectations of how the project will develop in the future, based on the observed project data.



This tool allows you to manage a project on actual project data. The data tells you how much time has been spent on what parts of the projects and how much has been produced in that period of time. This is often the type of data collected on a simple time sheet. When this data is entered in a measurement tool, you can quickly see how your project is performing and where attention is necessary if the project is underperforming.


Effectiveness

Companies that start to manage their projects by using metrics never regret the decision. Everyone involved or even interested can quickly see if a project is performing to company expectations, or if action is needed to get it back on track. This makes project discussions more effective, productive and rewarding. Moreover, it will be become clear very quickly if a project needs corrective action and due to the quality of the data, any corrective actions are more likely to produce positive results.

In turn this means that ongoing project discussions and project negotiations take up less of the total time, leaving more time for proactive project management and more focused attention on projects in need. Apart from spending your time more effectively, you will also be better informed on the performance of your projects. Companies that manage their projects in this way report that they have become more effective, delivering more projects on budget, on time and with the expected level of quality. By logic, these are the companies that have a better record of managing their project risks.
Measuring your performance
All companies in some form collect actual project data and this data tells you exactly how your company is behaving. The tool provides additional advantages of calculating important parameters like the performance of your software development projects and the potential stress that is put on the staff in project delivery.


Better plans, happier customers

As humans we have the remarkable capacity to make rational decisions in environments that lack any form of accuracy or clarity. We can give approximate decisions based inaccurate, incomplete and sometimes rather dubious information. But if this is the case, how has man been able to progress and develop in what is an ever increasingly complex world?

Clients expect, if not demand this sort of behavior. They expect bids before projects start, knowing that correct calculations can only be made after projects have been finished. Plans and bids are therefore always uncertain.


Project information

A sudden bright idea has often been the start of a software project. Discussion follows and comparisons are made about the similarities with other development projects. These comparisons, however, inaccurate are the first approximations for a plan.


When other people get interested a somewhat more serious plan is hurriedly made. As there has been some past experience based on a similar project, a feasibility study will not be necessary. There will be Requirements and Design phases and Corrective Maintenance after the first delivery. The system will probably consist of 80% business code, 5% telecom code, and 15% system code. Experience suggests that the system will have 63000 lines of C and there will be no more than 7 people on the project.


We know very little, if anything about this project, but to see its consequences in terms of project parameters would be extremely useful at this early stage. At the very least, an estimate would give us an idea of the duration and the effort (cost) for such a project.
Duration and effort are expressed in terms of each other and therefore provide useful measure by trading off duration v effort. There are other useful parameters that may not instantly appear at first sight. For example, do we know our productivity for software development or the stress we work under when we develop software? If we do not use metrics or tools as described in the section 'A dashboard for software development', then we will have no way of knowing these. In this case, we could fall back on available market data to find reasonable values to apply to our project.


With any tool the data collection, calculations and metrics are the all important inputs but equally such a tool must have the capability to present our findings in clear, unambiguous manner to deliver the maximum benefit to the decision makers.




The Staffing and Probability Analysis shows the number of people working on the project during its entire lifecycle, a table with expected values, a graph showing the probability that certain constraints will be met (this is not populated as we currently have no constraints) and pointers (that can be adjusted) indicating productivity, peak staff and lines of code.


The solution presented above is a likely project scenario. This means that at a 50% probability we may need more resourcing but also 50% may need less. In practice, it is advisable to produce plans with a higher guarantee of delivering what they are planning. The table below shows the forecast for the entire lifecycle at 50% and 80% probabilities.

  50% 80%   Description
Duration life cycle 16.3 17.3 Months R&D, C&T, 99% error free
Effort 62 80 PM  
Cost 1005 1291 K$  
Peak staff 7 8.5 People  
MTTD 147.6 121.5 days Mean Time To Defect

During the meeting where these numbers are discussed someone states that this project should take much less time: a year would be more than sufficient. The same person adds that if we take the maintenance phase for granted, we would be the first to market.


Ok, how does this affect our project?

  50% 80%   Description
Duration life cycle 12 13 Months R&D, C&T
Effort 216 310 PM  
Cost 3503 5019 K$  
Peak staff 33.1 43.5 People  
MTTD 31.0 23.7 days Mean Time To Defect

The results are that the financial cost and the manpower effort are three to four times higher than in the first plan. The stress on the project to deliver within one year will be very high and partly because of this stress the expected quality of the delivery could be lower. Furthermore, the analysis suggests that a time frame of 13 months is more likely than 12.


Market data

It has been said that a plan without data to calibrate it is pure speculation. In our case we can compare our plans with relevant market data.

Below are four graphs and two tables. The graphs plot the lines of code (LOC) against expected duration, expected effort, peak staff and the expected number of errors found during construction. The three lines show market performance, the central line is the average and the other two show one standard deviation above and below the average.





Looking at the duration and the expected number of errors, our plan appears reasonable. In comparison, the plans for a 12-month project (red circled dot) demand a much higher level of effort and a much higher peak of staff, compared to the market data.


Company data

Can we trust our plans if we compare them to our own records? The graphs below demonstrate how our plans compare to projects we have done previously.



The conclusion remains the same as before in that the peak of staff for the 12-month project is, when compared to our own records, extraordinarily high.

A small amount of work can provide a great insight into a project's feasibility. Estimates of duration and effort are very important for decisions, but when compared with market data or even better company data, the confidence will increase that embarking on such a project is a sound decision.


Benchmarking and performance improvement


Clients of a software development company in the Telecom market received complaints that they were expensive and their software contained a high number of errors. To address this, the company decided to benchmark itself with its peers in the market.


The positive points were the staff's high motivation and technical know-how, effective company management, a genuine desire by the staff to contribute to the company and its goals. In contrast a negative was the amount of pressure applied to deliver projects. Due to this pressure, there was insufficient time to test code and no time to document it. The Development Team was completely separate to the Quality Team. Budgets for education and training were small, but the time pressure meant that there was no time for education and training anyway.




The graphs above show trend lines of the company's market. The horizontal axes show line of code. From left to right the graphs show 'the number of errors found before delivery', 'the pressure on the project', 'the productivity per staff member', and 'the duration of the functional design phase'.


Errors found:
Four projects have a high number of errors. The company saw this as a reason for the client to complain about quality.


MBI (Pressure on projects):
Manpower Buildup Index (MBI). MBI is a measure for the change of effort per time unit, or the pressure on the project. The company's projects are all on the high side. Higher MBIs lead to higher project costs and lower quality.

Productivity per staff member:
In contrast to the market data, the company experiences diminishing productivity as the projects get larger. This company has complaints about high prices and low quality. The company spends little time on documentation and used high staff cost rates. This meant that the staff could not access the information it needed through documentation and relied by asking their colleagues. The end result was diminishing productivity throughout the team and an increasing error rate.

Functional design:
Analysis shows that the company spent an equal amount of time on functional design in four of the projects regardless of the size of those projects

The company introduced a series of improvements. The Development and Quality teams started to work together, investments were made in better tooling and plans were based on metrics. Documentation and its benefits were taken seriously even after the design phase.
Soon the staff became more familiar with the code and the work became less hectic.

Management realized that project pressure could be lowered and this resulted in the company achieving lower operating costs and improved quality for the client.


Conclusion

In today's world, to consider crossing the Atlantic Ocean with only the instruments and knowledge that Christopher Columbus had available would be considered both insane and wholly irresponsible. We would only travel the ocean with every available piece of navigation technology and communications equipment to safely guide us.

In the centuries after Columbus we have worked out what data to collect and how to build the instruments that present a journey's data in the most comprehensible fashion. We know exactly where we are on the ocean, what kind of weather we can expect and when we will arrive. Comparable instruments have not only helped us fly around the world, they have even helped us into space. Good metrics and instruments made it possible to plan a journey accurately in advance and to execute that plan with the flexibility to adapt quickly and effectively to unexpected circumstances. These developments are closely linked with the progress and development of science.

We have also learned to measure and interpret our measurements in other areas. Insurance companies translate measurements (counts) into insurance contracts. Like the development navigation instruments the development of insurance instruments is work for specialists (in many cases actuaries). The insurance specialist needs the right data and then must analyze and interpret the findings in order to translate the results into a viable product contract.
QSM (www.qsm.com) did the same with software development, by finding laws and invariants wherever they are present in data regarding software development. These laws and invariants have found their place in SLIM Estimate, Control and Metrics.

The cornerstone of the SLIM product suite is that it is based on a large set of project data and that you collect you own project data (Control) and use them (Estimate and Metrics). These products give you an insight into the performance levels in the market and an objective view of your own performance. When combined these products allow you to effectively manage the risks involved in software development projects.

The use of measurement instruments has had an enormous influence on the development of our society. The use of measurement instruments for company projects has both a major and a positive impact on the companies using them. Measurement is the knowledge and as the knowledge about the work increases there is the beneficial effect that the staff involvement increases also. The goal of all software development activity is where the plan works through to completion, the project delivers to the plan and the company is at all times focused on delivering the project to meet the 'all important' client expectations.