Software is a peculiar thing. It is made by engineers, but how to estimate costs and how to understand the end product is very different from other engineering sectors. This difference comes from the level of complexity that comes with even reasonably-sized software. The digital age just began. It might be a while until we can estimate and understand software projects, if ever.
This paragraph above is true and well-understood in the software industry by everyone who is paying attention. I refer you to two recently-published and very well-written articles about this. Every layman should be able to read them. They look at this problem from two different angles – the estimation of what reasonable costs and the expected stability of delivered software should be, and the understandability of software, especially when data science and machine learning are being used.
The Age Of Invisible Disasters:
Nobody dies on a failing CRM project. At least not so far as I know. So why should you care? Everyone still gets paid. You should care because within government, the only sector where failure gets any real coverage, I count £20b in failed IT projects over the last decade alone. Because within publicly quoted companies such failures are a bonfire of shareholder value. Because the ability to deliver technology projects will become the determining survival factor for many companies. Finally, you should care because if there is a skills shortage (or as I prefer to say, a talent shortage) and talent is tied-up with moribund IT projects, the lost opportunity cost to business is vast.
The terrifying, hidden reality of Ridiculously Complicated Algorithms:
If, as Jure suspects, machine judgement will become measurably better than human judgement for important decisions, the argument for using it will only grow stronger. And somewhere in that gap between inputs and outputs – the actual decision making part of the process itself – is something that can shape our lives in meaningful ways yet has become less and less understandable.
So – both estimations and understandability of software are currently really poor. That makes this a weird time to be involved in the software sector. It makes it exciting to predict the near future. But also, it makes it highly costly for businesses to do any software development. It isn’t, however, stopping the digital advancement. Information is power, and who gets it right, can thrive.
Are you getting this angle from the software developers or software companies you talk to? I’m guessing the answer is no. I’m guessing they are telling you that your software project will certainly succeed, that maintenance will be no big deal, and so on. I get it, as framing the planning of software projects like I and the two articles above did, might not be the best marketing approach. This is business, after all.
But if you want to know if your software developer actually understands the situation, ask them about software complexity. Put the finger where it hurts. They either should somewhat admit to this weird state of their sector, and maybe tell you how they try to keep complexity at bay, or they are overselling and you should politely decline their services.