With the high cost and high risk of “predictive” (eg, waterfall) solution development methodologies, agile development methods have become the predominant approach for delivering new applications. Agile methods are an “adaptive” approach to developing software – build some, test it, show it to the users and then iterate to improve it. New requirements are accommodated at any time by adding them to the prioritized backlog of user stories.
For larger projects, a Scaled Agile approach is usually adopted which specifically addresses management of multiple teams and emphasizes the importance of architecture – not as a Big Architecture Up Front, but as an ongoing enrichment of the technical platform. Due to the scale of these projects, the resulting codebase can grow quite rapidly – which is great until refactoring cycles to accommodate new platform standards overwhelm the teams with Technical Debt.
At Everware-CBDI, Agile development is a “service-first” approach which applies User Stories to resource-focused Microservices. We leverage our Agile Service Factory (ASF) seamlessly into the teams to accelerate the development of highly standardized code – one User Story at a time. This allows feature teams to focus on business functionality while in parallel architecture teams are configuring the ASF with newly developed technical standards. This approach results in a continuously agile architecture that dramatically reduces the impact of Technical Debt. In fact, most of our Agile projects do not need “hardening” or “technical refactoring” sprints that reduce functional velocity.