What does a typical software project in the QSM historical database look like, and how has “what’s typical” changed over time? To find out, we segmented our IT sample by decade and looked at the average schedule, effort, team size, new and modified code delivered, productivity, language, and target industry for each 10 year time period.
The QSM benchmark database represents:
- 8,000+ Business projects completed and put into production since 1980.
- Over 600 million total source lines of code (SLOC).
- 2.6 million total function points.
- Over 100 million person hours of effort.
- 600+ programming languages.
During the 1980s, the typical software project in our database delivered 154% more new and modified code, took 52% longer, and used 58% more effort than today’s projects. The table below captures these changes:
|1980 - 1989||1990 - 1999||2000 - 2009||2010 - present|
|Effort (person hours)||18,019||13,541||8,658||11,414|
|Team size (FTE staff)||7.3||6.7||6.7||6.9|
|New/Modified Code (KESLOC)||75.3||58.8||36.2||29.6|
- Schedule: Project schedules have decreased dramatically from a high of almost 18 months in the 1980s to 10-11 months after the year 2000.
- Effort: Average person hours per person month for Analysis through Build and Test started off high in the 1980s but decreased through the 2000s before increasing slightly from 2010 to the present. Overall, the trend is toward projects expending less effort in the Analysis through Build and Test phases.
- Size: from the 1980s to the present, average new and modified delivered code volume was reduced by about 65%.
- Team size: Average team size changed only slightly since the 1980s, dropping by only half an FTE person. We suspect the influence of project size reduction has been offset by increases to architectural and algorithmic complexity. While smaller systems generally require fewer developers, technical complexity tends to increase the demand for team members with specialized skills and diverse subject matter expertise.
- Primary Language: For projects put into production during the 1980s and 1990s, COBOL was the dominant programming language. In the 2000s, JAVA eclipsed COBOL and has continued to be the most frequently used primary language. People are often surprised at the enduring presence of COBOL, but the majority of recent COBOL projects in our database represent maintenance releases of existing systems rather than new developments.
This piece is part of a larger article on long term trends in software development, which will be available in the latest edition of the QSM Research Almanac. The article will examine how core metrics of software development have changed over time, such as delivered code volume, project schedule, effort performance, and development productivity. It also compares the predictions of the 2006 QSM IT Software Almanac to what we discovered in the 2014 version, as well as our predictions for the future.