Why software is so hard?
Software project are late, expensive and hard to estimate. This is no secret. But why is this industry so successful compared to other engineering disciplines. So why is software entering every aspect of life?
Moving important decisions to the end of the development life cycle is one of the key points of success. Electronic gives some freedom in the design of control loops. With software it is possible to move it further to the right and nowadays even customers can change the drive characteristics of modern cars.
So one common success story of electrical and software engineering is to move the decision what to do further to the right of the development cycle. This is in my opinion a crucial success factor, which also allowed to build general purpose hardware.
The what
Now everyone is building general purpose hardware and the software is going to fix it. No problem at all, at least in theory. However the questions “What to do?” is not answered in many product development projects. Agile processes try to solve this by shortening the feedback loop.
Every major company adapts agile methods, so it should improve in the next years or? In theory yes but the agile process gets tailored to the company and now they have an agile waterfall ;-). Not a single responsibility or decision get’s transferred to the team and the feedback loop is removed entirely from the process. The only difference is a stand-up in the morning and a two week planning cycle. So there will be major delays in software projects. This will take the industry a while to figure out.
Disclaimer: I only have insight in two companies, so far and in one of them there was a pretty good understanding of customer needs and an agile mindset, however agility wasn’t a thing at all. So this posts reflects my personal opinion and is not based on broad experience or research.