This week, software bugs took the Netflix website down for a weekend and significantly delayed United Airlines flights all over the country. Massive software failures like these are becoming more commonplace. The reason is that there’s not much engineering going on anymore in the Software Engineering field.
Traditionally, engineering disciplines involved careful verification of designs before they ever saw the light of day. That’s why bridges don’t collapse decades and even centuries after being built. Software is going farther and farther away from its engineering brethren. Some will blame agile methodologies, but I don’t agree. All flavors of agile, iterative, scrum, etc dictate verification as part of their methodology. The problem is the lack of attention paid to verification, impact analysis, and risk analysis when rolling out systems that are increasingly complex.