Havoc makes a great point about the realities of software development.
Although his article is aimed at people who want to get features into software, I think it should first be read by people who manage software projects (Havoc assumes that they already know but this is probably not the case).
The main insight is that software cannot grow infinitely.
Each additional feature has a cost of implementing it and of future maintenance.
Maintenance cost is non-linear: difficulty of maintaining the code grows much faster than number of lines added.