Quality Erosion: The concerning trend among software engineers

At the end of the 1960s, the exponential growth in demand for more advanced and complex software generated a crisis in the industry. Without a solid foundation for software development, a series of challenges emerged, resulting in the first technological crisis. Projects were exceeding budgets, deadlines were missed, software quality was plummeting, and maintenance difficulties became constant. It was evident that something needed to be done to reorganize and improve the approach to software development.

It was in this context that the term “Software Engineering” emerged, as defined by Friedrich L. Bauer: “Establishment and use of sound engineering principles to economically obtain software that is reliable and works on real machines efficiently.” Software engineering emerged as a response to the challenges faced by software projects, introducing design patterns that are fundamental to this day. These patterns aim to assist engineers in developing more scalable, robust, fault-tolerant, and easily maintainable software.

However, despite significant advancements in the availability of frameworks and libraries that facilitate the application of these patterns, many companies still struggle with immature and problematic software. The current reality is marked by projects developed hastily, with accumulated technical debt and decisions made prioritizing product and business over software quality. We, as engineers, need to acknowledge our share of responsibility in this scenario.

When exactly did we abandon our concern for technical quality in favor of quick delivery? Why are we neglecting the application of design patterns in favor of unrealistic deadlines? Why are we accepting compromising the quality of something we know will not be sustainable in the long run?

It is time to reassess our values and priorities, recognizing the fundamental importance of software engineering in building reliable and efficient systems. Only then can we overcome current challenges and deliver value sustainably to businesses.


References:

Frederick P. Brooks, Jr. The Mythical Man-Month.

Friedrich L. Bauer. Available at https://www.computer.org/profiles/friedrich-bauer