Many techniques in general project management also apply to software project management, but Fred Brooks identified some characteristics of software projects which make them particularly difficult :-
Invisibility : When a physical artifact such as a bridge is constructed the progress can actually be seen. with software, progress is not immediately visible. Software project management can be the process of making the invisible visible.
Complexity : Per dollar, pound or euro spent, software products contain more complexity than other engineered artifacts.
Conformity : The 'traditional' engineer usually works with physical systems and materials like cement and steel. These physical systems have complexity, but are governed by consistent physical laws. Software developers have to conform to the requirement of human clients. It is not just that individuals can be inconsistent. Organizations, because of lapses in collective memory, in internal communication or in effective decision making, can exhibit remarkable,'organizational stupidity'.
Flexibility : That software is easy to change is seen as a strength. However, where the software system interfaces with a physical or organizational system, it is accommodate the other components rather than vice versa. Thus software systems are particularly subject to change.
Invisibility : When a physical artifact such as a bridge is constructed the progress can actually be seen. with software, progress is not immediately visible. Software project management can be the process of making the invisible visible.
Complexity : Per dollar, pound or euro spent, software products contain more complexity than other engineered artifacts.
Conformity : The 'traditional' engineer usually works with physical systems and materials like cement and steel. These physical systems have complexity, but are governed by consistent physical laws. Software developers have to conform to the requirement of human clients. It is not just that individuals can be inconsistent. Organizations, because of lapses in collective memory, in internal communication or in effective decision making, can exhibit remarkable,'organizational stupidity'.
Flexibility : That software is easy to change is seen as a strength. However, where the software system interfaces with a physical or organizational system, it is accommodate the other components rather than vice versa. Thus software systems are particularly subject to change.