Organizations have adopted Agile and DevOps for the promises of faster time to market, reduced risk, and lower costs. But embracing these methodologies can lead to an unintended consequence — increased complexity in the software development lifecycle. This often has negative impacts on business performance. Fortunately, there are proven means to reduce this complexity and reap the full benefits of Agile and DevOps.
Traditional applications development methodologies like Waterfall employ centralized tools and standardized processes. While relatively slow, these tools and platforms give stakeholders a common set of measurements across the applications lifecycle. With the move to Agile and DevOps, tooling decisions become distributed across various teams in the organization. Different tools are used from group to group, multiple platforms and processes employed.
This decentralization allows individual teams to work faster to develop their specific applications. In most organizations, however, applications don’t stand alone — there are integrations and dependencies across a range of apps. It can quickly become complicated to manage a software release that touches multiple applications, each developed with different tools, technology stacks, and processes.
Even organizations that opt for standardized tools are not immune to this complexity. Enterprises that use JIRA work management software, for example, can suffer from ‘sprawl’ — many instances of JIRA, all customized and configured differently. This can make it difficult to create a common workflow across all the JIRA instances, limiting visibility and impeding governance.
Left unchecked, the complexity that arises from using Agile and DevOps can negatively impact organizations in many ways:
While the quality of individual applications may not be affected, many business services are built by combining multiple apps. When these applications are developed using different tools and methodologies, there are typically no standards in place for end-to-end performance or security testing. Quality and architectural issues may not emerge until late in the development cycle, creating launch delays while teams race to address these shortcomings.
Companies are always looking for ways to improve the development process. To achieve that continuous improvement, they must be able to measure the performance of each team. Traditional development processes and centralized tools use common measurements and KPIs, making this evaluation relatively straightforward. That’s not the case with decentralized teams using different tools and KPIs. Measuring team performance becomes a challenge, as does identifying and implementing best practices across workgroups.
Data security is a top priority in applications development. As organizations transformed from Waterfall to Agile and DevOps, however, many found that decentralizing development impeded their ability to track and manage security testing. Different teams employed diverse testing methods, and domain expertise varied from group to group. As a result, validating security for complex applications became more difficult, creating an unacceptable business risk.
Teams must collaborate efficiently when preparing to ‘go live’ with new applications and business processes. Traditional, centralized tools and methodologies simplify that collaboration, providing greater visibility across teams. In an Agile environment where each team operates its own practice independently, it’s much harder to pull data together from disparate tools and systems. Visibility becomes limited, making it more difficult to manage the overall process. The resulting scramble to gather information and measure performance is often time-consuming, requires extra resources, and adds costs to the development initiative.
While complexity can impede Agile and DevOps performance, organizations aren’t about to abandon the compelling benefits that those methodologies offer. Instead, companies should focus on a few proven means to reduce complexity and improve performance:
Many of our Micro Focus customers are well down the path of their DevOps journeys. While they may be experiencing the impacts of complexity in their development process, it’s not viable for most businesses to ‘rip and replace’ existing tools and methods. Instead, a more practical approach is to bridge the old and new, modernizing development while leaving many current tools and processes in place.
At Micro Focus, we use powerful tools like Octane to capture and integrate data from the existing toolsets. From there, we work with customers to create a common set of metrics that provide better visibility and facilitate governance across all teams.
With this enhanced visibility, organizations can establish KPIs that measure the most important aspects of the development process. KPIs are also used to drive desired behavior across all teams.
For example, a customer may wish to compare the agility of each team. They could create a KPI that measures how many defects are discovered in an agile sprint. A related KPI might identify the number of fixed defects in that sprint. Together, these KPIs would establish each team’s efficiency and identify best practices to promote across the entire organization – an endeavor that has become more important and challenging as so many workforces pivot to a remote-working model.
Another means of reducing complexity and driving efficiency is by using automation to complete labor-intensive activities. Testing, one area that often creates bottlenecks, lends itself well to automation. Many organizations rely heavily on manual testing, and automating that process can increase both speed and efficiency.
A financial industry customer, for example, may be developing an online banking application that takes several days to test fully. Automating that process may reduce testing time to a few hours.
Automation can also transform the deployment process. Manually completing deployment tasks is time-consuming and error-prone. Once automated, both completion times and error instances drop dramatically.
Employing automation also allows organizations to conduct broader and more frequent applications testing, reducing risks and lowering costs.
Even if most functions are decentralized in Agile and DevOps environments, some benefit from taking a centralized approach. Security is one such area. As mentioned earlier, different teams using disparate testing tools and methods often create security challenges. Many organizations opt instead for a centralized methodology, establishing a center of excellence model with specialists using common tools and processes. This approach offers greater visibility and governance while reducing business risk.
Performance engineering requires deep domain expertise and is another function that can benefit from centralization. A centralized team can embed consistent performance testing across all development activities as part of the continuous integration process, delivering measurable improvements in speed and efficiency.
Organizations can leverage increased visibility and ongoing measurement to tie applications development activities and performance back to business priorities. This allows for better-informed decisions throughout the development process. For example, can prioritizing a particular application generate significant upside revenue or win new customers? Are investments in existing projects delivering an appropriate return?
Achieving this visibility requires a toolset that can harvest and integrate data from existing tools and processes. That data can be dashboarded and shared with all stakeholders, facilitating better prioritization and decision-making.
Organizations today face unique challenges — volatile markets, disrupted supply chains, and a wholesale migration of the virtual workforce. In this hyper-competitive environment, businesses need to achieve the speed, flexibility, and cost benefits promised by Agile and DevOps.
Complexity is the primary obstacle to delivering those benefits. Integrating data from existing tools can significantly reduce that complexity and create the visibility that allows for common KPIs, improved governance, more informed decision-making, and better alignment with business goals.