Businesses today must focus on delivering value to their customers as early as possible—and certainly before the competition does! This reality drives the transformation from traditional development methodologies such as waterfall, to methodologies that offer increased flexibility and faster delivery, such as Agile. Many businesses today are also adopting DevOps in their organizations, as they aim to get to continuous delivery of value.
This transformation doesn’t happen overnight. Most large businesses today find that they have a mix of different software development methodologies across their different products and portfolios. Often, each product team uses the methodology that is most suited to the work that they are doing. For example: a team working on a legacy product that has been developed with a waterfall methodology will continue to use waterfall, while teams working on newer products will tend to use a more agile methodology.
Each team has their own working practices, and they are supported by the development and lifecycle management tools that are most suited to the way that they work. Waterfall teams will manage requirements, develop test plans, and run tests, and enter defects into the bug tracker so that the developers can fix them ready for the next test cycle. Agile teams will work on developing user stories, testing the code, and fixing defects as soon as possible, within the same iteration. For the most part, everything works smoothly – at least, within the confines of each team. But for the organization, this can pose some significant challenges. Some of these challenges include:
What happens when an agile team needs to work with a waterfall team, for example, when an agile product needs to integrate with a legacy service that is developed using waterfall? Each team has its own schedule, and its own way of dealing with requirements, user stories, testing and defects.
How can a business executive make strategic decisions across the organization when different parts of the organization are measuring their progress in different and inconsistent ways?
An agile enterprise must gather all of the ideas for potential investments into a single place so that they can be critically evaluated and prioritized. Once a decision has been made to move an idea forward for development, progress must be tracked throughout the process. In addition, it must be regularly re-evaluated to ensure that the idea continues to be relevant and provides the intended business value and benefit. This often forgotten step is vital given the dynamic nature of today’s business climate.
Executives, enterprise architects and project and portfolio managers need a way to manage and track these strategic investments without getting in the way of the teams. Rather than demand that all teams align to a single toolset across the organization, businesses must find a way to aggregate disparate project data into a single place. They must also be able to monitor progress without being intrusive or obstructive.
Similarly, agile team members must be able to share information and communicate with their waterfall team colleagues if their integration is to be successful. Each team will work with their own lifecycle management tools, but they will need insight into the other team’s plans in order to align with each other efficiently. Accomplishing this is what leads to truly having an Agile Enterprise.