Developers often design systems, and design and build software which affect many people lives; however unlike physical architects and engineers, they are often regarded as an expense and interchangeable production line workers who's judgment and ideas are often pushed to one side; this is short sighted, because computer systems are now part of the infrastructure and not a luxury, for many businesses.
A lot of the problems I have experienced are due to lack of investment in Developers (e.g. suitable training, R&D time, a sensible career path, resources) and allowing account managers and sales staff "to get away with murder".
I see the linear Waterfall approach as too rigid and inflexible; however I regard many Agile approaches and practices (e.g. SCRUM) as too extrovert oriented and cost-plus. I prefer an iterative layered approach (like Feature-driven development), where you have an overall picture (e.g. a specification), map each layer, build any components which it is not practical to source externally and assemble the product layer by layer, testing as you go, much like a physical engineer would.
I suspect a lot of Agile is really Social Engineering of the customer, managers, sales and development, when what is actually needed is competent people, systematic planning, a big dose of realism, and respect.
Keep Up with TechRepublic