One of the challenges development teams face as they expand DevOps practices beyond pilot cloud-based applications is how to manage the building of complex, enterprise applications that span both systems of record (like mainframe-based transactional systems, or traditional data center hosted applications) as well as cloud-based systems of engagement.
In order to succeed, enterprises should put in place a robust set of practices built to rapidly design, build, deploy, and scale innovative applications that help software delivery teams create a culture of innovation and agility that enables them to more quickly iterate and pivot in response to market demands. To make that happen, teams often must integrate new cloud-based applications with traditional applications that existed for years.
One of the core challenges involved is integrating the teams that are likely to be involved in the project—the cloud application team and the traditional application team. Typically, those teams are delivering functionality at different speeds—cloud or mobile application updates may be delivered on a weekly or even daily basis, while enhancements to back-end systems may happen on the order of months or years. This is what we mean when we talk about “multi-speed IT.”
In these circumstances, APIs for the systems of record must be provided to allow a cloud application to integrate with the existing system. The goal is to provide the APIs on the traditional application in time so that the cloud application can access them and new function can be released.
Often, API programs are treated as an afterthought rather than as a first-class citizen within IT, resulting in the development of poorly designed APIs that can cost hundreds of thousands of dollars in ongoing maintenance due to infrastructure costs and expensive engineering resources.
A cloud-based API integration platform can alleviate challenges by implementing a consistent development environment. In that one environment, teams can create, run, manage, and enforce an API program. To reach that goal, however, teams must work together to ensure that function works across all of the parts of the application.
Running a Multi-Speed IT Project
When teams practice multi-speed IT, they are not required to work in an agile manner or release a new function on the same schedule. The keys to multi-speed IT are managing and tracking dependencies, ensuring communication across the teams, and delivering high-quality function across the cloud and enterprise applications in a synchronized manner. Introducing automation, including for application release and deployment, can ensure better collaboration across functional groups, especially between development and operations. Developers benefit from rapid feedback when new builds are automatically deployed into test environments, while operations benefit from running the same test process in production to avoid mistakes.
Tracking and Managing Dependencies
When a multi-speed IT project is being planned, each team manages its overall project separately. However, planning must also occur across teams to identify dependencies and time frame expectations. Each team manages its ranked backlog. When new work is added to the cloud team's backlog that requires either a new or changed API on the traditional system, the cloud team must communicate that requirement to the traditional application team. The traditional application team must determine when to deliver the dependency so that the cloud team can position the item in the backlog and ensure that the dependency will be available when needed.
Project-Level Daily Standups
Communication is key to ensuring that a hybrid application can come together in production. Each team runs its own daily stand-up meeting, and the results of those meetings are brought to a project standup meeting. The project-level standup meeting addresses the same questions as the individual team meetings:
- What was accomplished since the last meeting?
- What will be accomplished by the next meeting?
- What is blocking progress?
- Will any upcoming work block progress for another team?
The discussion must revolve around the integration that is needed between the parts of the hybrid solution.
Multi-Speed Development and Continuous Delivery
When you deliver a hybrid application to production, automated testing must cover the integration points between the cloud application and the traditional application. Be sure to also test how the application responds when the traditional APIs are unavailable.
For More Information
Combining IBM’s Design Thinking approach with the powerful IBM Cloud infrastructure, advanced APIs, open communities and DevOps, the IBM Bluemix Garage Method integrates the learning fostered in the collaborative, creative environments of the Bluemix Garages to help enterprise organizations accelerate all phases of app design, development, and delivery: from identification of feature priorities to ideation to deployment and iteration, across cloud-native as well as hybrid and multi-speed IT development.