The traditional way of stating it is the Project Management Triangle: the three competing criteria of scope, cost, and schedule; typically expressed as "cheap, fast, good -- pick two".
At the end of a design, development and deployment process, the expectation that a product is is relatively free of design flaws and operates with a specified functionality is perfectly reasonable. The same expectation is completely unreasonable with respect to a project, process, or profession.
What professional based on sciences, hard or soft, does not go through a process of exploration, forming inaccurate and imprecise conceptualizations, following less-than-optimal (or just plain wrong) tactics, discovering what works through trial and error, and repeating the process over and over again till either resources run out or a sufficient level of performance is attained?
No process is ever free of flaws, although it can asymptotically approach higher quality levels.
That is true of the medical profession where tactics often involve guesswork and protocols, and much of the activity is basically debugging a mostly wetware machine. It is true of civil engineering and architecture where applications of novel engineered materials have to be field validated and can fail abruptly after years of service despite strict adherence to standards. It is true of the automotive field where age and changes in operating conditions commonly affect performance to the point of failure, through no fault of the engineering or repair services applied. Software development is not fundamentally different from these professions in such respects, it just has a greater part of its focus involved in contriving novel, purposeful machines.