Enabling quality in Agile Projects

What we know.

The Agile approach allows software developers to move forward with incremental updates delivering the most wanted features to market quickly, iteration by iteration.

It is quite enough for the developers to know about the overall features of the future application to design proper software architecture. The proper software architecture takes into account such non-functional requirements as:

  • interaction responsiveness,
  • usability,
  • scalability,
  • application security,
  • data security,
  • supportability, also known as the cost of changes.

All these things you need to achieve the best user experience serving Consumers.

On the other hand, the developers require well-described functional requirements for the current iteration and the next one to deliver each particular feature to the market as the development iteration outcomes.

One day, a Product Owner comes to developers with the urgent request to add mission-critical features unknown before but now demanded by end-users. The Development Team accepts the challenge as they committed to be agile and supportive. So, new functionality becomes a part of the application.

Such application extensions do not always fit the chosen software architecture. At the same time, baselines are tight and stakes are high. So, the developers apply a quick fix (we call it 'kludge') to implement a particular feature. Each time developers implement quick-fix the technical debt increases producing hard-detectable defects.

Nobody likes surprises.

Once, developers get back to Product Owner saying the product is unstable, so they need the 2-week development iteration to remove technical debt. It means no business value will be delivered this time, just an application stabilization, some IT-magic under the hood, and the invoice for services.

The Solution.

DevOps engineers can significantly change the game in favor of the application quality. Continuous Integration, as a part of the CI/CD pipeline, enables code quality and code security analysis building the application. The second part of CI/CD, Continuous Deployment, enables quality gates that run automated functional, integration, load, and security tests to detect defects in early stages before the broken feature reaches Consumers.

Have no such automated tests yet? Our DevOps can help you with it.