There is a nearly infinite number of software development domains. One domain where there is a variety of applications, ranging from embedded real time control systems, to simple database applications for holding temporary date is "flight software" for spacecraft.
There is a recent report NASA Study on Flight Software Complexity, Final Report. an interesting quote from the cover page is:
This statement is likely applicable for ALL software intensive environments, no matter the business or technical domain. There's a summary presentation at the NASA PM Challenge site Flight Software Complexity. The NASA PM Challenge site is a good source of program and project management knowledge (for the most part).
What's the Point Here?
The point here, is that growth in software complexity is a natural occurrence in many domains. Dealing with this growing complexity is the role of the software development and software project management community.
While there are many voices claiming to have the solution to the complexity problem, the jury is still out, since only anecdotal evidence is around. For the world of complex system, many of the current approaches to are value tools.
- Iterative development processes
- Test driven development
- Full fidelity simulation and emulation
- Emergent requirements and responses to those requirements