The 20 factors whose quantified impacts on software projects have been determined from historical data are the following:
Programming language used
Program size
The experience of programmers and design personnel
The novelty of requirements
The complexity of the program and its data
The use of structured programming methods
Program class or the distribution method
Program type of the application area
Tools and environmental conditions
Enhancing existing programs or systems
Maintaining existing programs or systems
Reusing existing modules and standard designs
Program generators
Fourth-generation languages
Geographic separation of development locations
Defect potentials and removal methods
(Existing) Documentation
Prototyping before main development begins
Project teams and organization structures
Morale and compensation of staff