High-performing companies that operate in the information technology market stand out for their elevated quality standards and their respect for software project deadlines, thereby allowing greater competitiveness.
The evolution of efficacy in software engineering with regard to methodology in systemic development projects is notorious; it permits a better guarantee of quality and of meeting deadlines. However, there is still much more evolution needed, and it falls to us to reflect and identify where there has been shortsightedness in developing quality in software. Let’s look at these examples of myopia:
Estimated deadlines: Software projects tend to lack details in their requisition, when they are not imprecise, which results in an unrealistic projection of the time that should be allotted.
Developer performance: There is a natural tendency to have various levels of agility and quality in developing codes on our team; nevertheless, all team members should keep themselves up to date with regard to new technology and the evolution of their skills for structuring algorithms. As a result of this situation, despite the need to estimate the labor needed to complete a project, in practice this estimate tends to not be effective, which impacts the quality of the solution and compliance with deadlines.
Changes in project requirements: We understand that unpredictability is one of the characteristics of a software project, since the natural course of a project tends to be seriously affected by external factors such as the appearance of new technologies, new priorities, or changes in system requirements. . . .
Analyzing the short-sighted rigidity of software projects
In the traditional process methods for carrying out engineering projects, we observe a concern with defining the stages in terms of tasks and interdependencies. However, in practice, the Cascade Model (Waterfall, as explained below) meets the formalistic needs of the process but fails at the dynamism in which negotiation with the client exists.
Diagram showing the stages of the Waterfall method
Believing the in shortsightedness of the Waterfall model described above, a group of software engineers proposes the Agile method as a more effective solution for software development, which to them is summarized by the following:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
This new model, Agile, generates heated discussions and questions among professionals involved in software projects, as it focuses more intensely on dynamic interaction with the final client, to the detriment of procedural details for rigorously tested and documented software that respects and confirms previously agreed clauses and negotiations.
Witnessing the end of nearsightedness
The difficulty in maintaining quality in the face of the usual and natural changes required by clients has helped bring about countless tools that support Agile development, such as Test-Driven Development (TDD). It aims to subsidize the search for errors while testing the validation of the design requested by the client, which serves as additional documentation, while also making the programmer think about the restrictive aspects of the requirements as well as other advantages.
A final myopia
Which model tends to be the least shortsighted? Considering the dynamic nature of technological changes and the market, and the need to impress our clients, we believe that it will be the combination of creativity and fluidity in the Agile model, supported by various lessons learned from the traditional Waterfall model.
Innovations mark the future of software developers, and, like it or not, the more nearsighted models and their devotees will soon fall out of favor.