Digital transformation requires Agile and DevOps
by John Browne, on Aug 28, 2020 5:00:00 AM
Note: this is part 5 (and the end) of an on-going series about digital transformation in the time of pandemics. You can read part 1 here. Part 2. Part 3. Part 4.
Like success, DX is a journey, not a destination. At some point, a largely analog organization can reflect that they are largely or mostly a digital organization. As stated earlier, much of this has to do with exterior factors such as customer interactions and experience, vendor/supply chain integration, and market analysis and feedback for product development. But DX requires internal transformation, too, and within the realm of IT the transition of software engineering from traditional waterfall, siloed, development to a combination of agile with DevOps—incorporating CI/CD (continuous integration, continuous deployment) brings so much increased value that they can be considered a sine qua non for DX in the enterprise1.
Both agile and DevOps are terms that can have widely varied interpretations by different stakeholders and communities. An easy way to think about them is that when implemented together, all the stakeholders in a piece of technology are brought into the creation and operation phases. Agile brings—in addition to management concepts like sprints, backlog, and scrum—the requirement to co- locate and co-operate dev, test, and users (in the form of the product manager or owner) into the actual team. Gone is the waterfall model of first defining all requirements, then creating complex and time- consuming specifications, disappearing for the duration of the coding tasks, and finally—sometimes years later—throwing the resulting piece of software “over the fence” to the user community, good, bad, or indifferent.
DevOps further co-mingles the actual operations staff for an application into the development process, making all aspects of ops such as hosting, deployment, elasticity, monitoring, and
management an integral part of the total development process. It’s no longer enough for developers to reach the end point of a running executable package and let users and operations teams deal with it. The agile/DevOps team owns every aspect of the application from requirements to real-time monitoring.
How Agile/DevOps can transform the enterprise
Microsoft has aggressively implemented both agile development practices and DevOps in their Visual Studio Online team. Some of the benefits they’ve discussed publicly include:
- No bug is more than one sprint away from a fix. Under the older wa- terfall process, product releases were often a year apart, which meant that a bug could be causing problems for a very long time before users got an update. Using agile, the VSO team runs three-week sprints, so any bugs discovered can be prioritized for the next sprint.
- Planning and testing are baked right in. The VSO team uses a schedule similar to this:
- Week 1: sprint 1 planning
- Weeks 2-3: sprint 1 coding
- Week 4: sprint 1 test and deploy; sprint 2 planning
- Week 5: sprint 2 coding
- Weed 6: sprint 2 test and deploy; sprint 3 planning
- And so forth.
- Real time customer feedback. By deploying an update on a limited set of servers, the team in effect creates a “beta” group who get new features. This limited test lets the VSO team monitor usage of the new features to see how popular they are, before deciding whether to de- ploy the new features to the entire universe of users.
- Auto-stop. Azure AI code can monitor social media accounts like Twitter for negative comments and VSO related hashtags right after a deployment begins, alerting the team to any serious problems ei- ther with the release or deployment. Workflows can then halt further deployment until the team determines what the issue is and how to address it.
- A/B testing: CI/CD makes it simple to create slightly different versions of the product, deploy each to different servers, and monitor the us- age/response. For example, changing the menu structure in this kind of A/B test can quickly determine if a change makes it easier or harder for users to find a feature. In the past, this would require setting up usability tests in a lab, recruiting testers, and analyzing the data for a future release.
These are only a few examples of how Agile plus DevOps (which must include CI/CD to get full advantage) can be transformative in software product development and maintenance. In turn, these engineering practices make digital transformation possible for the enterprise, as the “old way” blocks digital agility.
If digital transformation truly is the fourth wave of computing—and to all appearances it seems it will be—then organizations who fall behind in embracing DX may find themselves at an unrepairable disadvantage.
Western nations embraced wired telephony early in the 20th century, and government assistance (such as the AT&T monopoly) allowed for rapid build out and adoption. Developing nations in regions like sub-Saharan Africa were slow to adopt, owing to weak economies. Yet with the advent of the cellular network, those same countries were able to leapfrog many developed nations by implementing state-of- the-art systems initially, rather than trying to continue to support older, legacy telephone systems.
Thus is it ever with legacy. Those who adopt first, will also have legacy first.
As with nations developing communications systems, older institutions find their path to DX is burdened by their legacy software applications while newer entrants are able to fully embrace digital transformation out of the gate. Not only do they get the full benefit of DX for their processes, customers, and employees, they can take advantage of the latest innovations in software engineering practices like agile and DevOps.
For the enterprises burdened with legacy code, the first and most important step in moving to agile/DevOps/CI/CD is to move away from apps bound to physical desktops. Those legacy desktop applications are blocking true DX. And rewriting them is expensive and risky; merely virtualizing them in the cloud solves none of the real problems blocking DX.
The only sane answer is to migrate critical desktop client-server apps using automation. Mobilize.Net, the world’s foremost authority on migrating legacy code, can help.
1 Predicts 2020: Agile and DevOps are Key to Digital Transformation, Gartner, 2019