Programmers have endless debates over whether their profession is art or engineering. A professional programmer's job title may contain the word "Engineer"—a division in the company may lump all of software development into the classification of "Engineering". Yet if you've been around programmers for any length of time, you've likely heard the word "elegant" used to describe otherwise ineffable qualities of software. These qualities adhere to aesthetic principles which relate more closely to taste and style than they do to functional requirements.
Software bridges an uncertain and misunderstood gap between the very practical needs of a business (to produce payroll reports, to control large machines in a factory, to model the plastic casing of a consumer device) and the more abstract requirements of the people responsible for designing, implementing, deploying, and maintaining the software (easy to change, simple to understand, able to be monitored). This gap isn't the schism between engineering and art; in many ways, the qualities which developers would like the software to exhibit represent tradeoffs present in many engineering disciplines, while the business requirements the software must meet have an unreality of their own.
Yet any software written to meet business goals must meet at least one fundamental standard: to provide sufficient value to justify the investment required to build, deploy, and maintain it. If a widget producer spends $100 million dollars to build a new widget factory but can only realize $50 million in revenue over the lifetime of that factory, the investment has failed. (The numbers are worse than they seem at first; presumably the initial investment was the net present value of a much larger sum. In other words, the widget company would have been better off investing in something which returned even 1% or 2% than investing something which lost money. This may seem like a very peculiar and pedantic point, but merely breaking even on an investment is often a failure from a business perspective.)