Combining the Best of Agile, Waterfall and DevOps Techniques
via DevOps.com by Harbinder Kang
The spotlight currently may be firmly trained on agile and DevOps techniques, but large banks around the world still maintain core systems where traditional waterfall development techniques are used to upgrade and maintain software.
So, which development techniques work best in an environment dominated by legacy systems but where innovation is fundamental to future success? How can banks combine the best of agile, waterfall and DevOps methodologies to deliver new products and services to customers at pace, without compromising mission-critical operations?
Time is of the Essence
One of the drivers for migrating from waterfall to agile is the need to deliver new features in shorter time frames to better satisfy the rapidly evolving needs of a business. This can be a challenge if, for example, an organization is reliant on a legacy platform that is updated using a waterfall methodology.
In such a scenario, upgrades might be delivered every six to 12 months, which means long lead times associated with implementing change. This also creates issues around transparency in the upgrade process, because it is difficult to provide clarity on the changes that will be introduced in the next version of the software.
One possible solution to this problem is to evolve the platform so that it can run in the cloud as a service-oriented architecture-based platform, which enables the adoption of agile and DevOps techniques when delivering updates to the software.
This will allow the organization to deliver changes in response to clients’ needs in shorter iterative cycles, mitigating risk and enabling them to plan work in a more iterative fashion. While there is still a need to look ahead, the scope of work is not so fixed as it was in the past and can change along with new and different priorities.
A Quicker Journey to Value
This is important as businesses don’t always know what they will want in the future and need to be able to adapt different systems as the business and technology landscape evolves. Not only does the new approach accelerate the time taken to deliver value to customers, it also means features can be delivered incrementally at the point of need.
Once implemented, this type of platform can support ongoing development of new features. Clients can collaborate with the developers of the software vendor to deliver features incrementally, allowing them to understand timing and to request the delivery of features for testing ahead of a full project completion.
Feedback allows the development team to improve specific features reviewed and to apply what is learned to features yet to be developed. Clients can review the product through mini-demos early in the process to understand functionality, user experience and other areas of interest. They also can have input into the prioritization of features, so there is transparency of project progression.
Changes in Working Practices
Naturally, this implies changes in working methods within the client’s business to allow for greater collaboration. It also requires more diligent and efficient testing and version control practices, particularly for those firms working in a regulated environment where changes to one element of a system can impact other areas.
However, it’s important to remember that moving in-house developers from one environment to another will not happen overnight. Most traditional banks, for example, need to retain waterfall development skills to maintain and upgrade core systems while building agile and DevOps techniques alongside to build out the new customer-facing apps and services.
In fact, abandoning waterfall and adopting agile for all development could introduce unnecessary risks to a process that previously has worked well and doesn’t require short cycle times. Often there can be merit in having two streams of development: one for existing back-office core systems and one for satisfying the rapidly evolving front-office needs of the business.
Whichever blend of development skills, core systems and subscription services organizations choose to maintain, having a platform approach that brings data from core and new applications together will be increasingly important.