Software customers deserve no less. Some people think that treating software development as engineering means we'll all have to use formal methods-writing programs as mathematical proofs. Both common sense and experience tell us that that is overkill for many projects. Others object that commercial software is too dependent on changing market conditions to permit careful, time-consuming engineering. These objections are based upon a narrow and mistaken idea of engineering.
Engineering is the application of scientific principles toward practical ends.
If the engineering isn't practical, it's bad engineering. Treating software as engineering makes clearer the idea that different development goals are appropriate for different projects. When a building is designed, the construction materials must suit the building's purpose. I can build a large equipment shed to store farming vehicles from thin, uninsulated sheet metal. I wouldn't build a house the same way.