Pivoting at Speed to Scaled Agile and DevOps
Typically, the two biggest impediments to scaled agile and DevOps are over planning (including over thinking) and dogmatism. Which projects should we “pilot” for scaled agile, how long should the pilot run, what are the details of how we will implement, etc., etc. Of course, this over-thinking ultimately impedes the type of progress that scaled agile hopes to achieve in driving business results.
But what if you don’t over think and intentionally decide to be agile about being agile? How much faster can you move? What if I don’t have all of my rituals figured out to the nth degree and risk forgetting something crucial? Is it too risky?
Over the next several posts, we’ll share with you our experiences in taking a large strategic initiative from a waterfall approach to scaled agile in just a few weeks. The initiative scope was a targeted nine-month system and process integration effort to drive business transparency and, ultimately, business value. Impacted were: five business systems; six independent global development teams; and numerous business stakeholders that spanned the globe.
What we’re here to tell you is that implementing scaled agile doesn’t need to be like turning an aircraft carrier. That it can be done in an agile fashion and show results. We’re also here to tell you that the approach taken doesn’t need to be by-the-book, but it is a journey that requires a you to pivot with a healthy dose of pragmatism and commitment.
Everything you need to grow your career.
With your free Red Hat Developer program membership, unlock our library of cheat sheets and ebooks on next-generation application development.SIGN UP
Bon Voyage! Full Steam Ahead!
Let’s go back to the start… We have our voyage planned. We we have all of the right players engaged. From our systems integration partner, to the business stakeholders, to the IT staff that support the systems that will be integrated. Sure there’s some risk, but we need to get moving because we have a deadline to meet. We start the design work and then development along with it. We start development a little bit late, but it’s OK because we can make up the time by doing development concurrently with completing the design work.
We’ve all been in projects where this is the norm. We just need to get going. But what do I need to watch out for? In our case everything started out looking fine. The project status reports showed green, the spreadsheets that were used to track progress showed that work was being completed. Where work wasn’t being completed, the managers committed to making up the time later. From our perspective, however, something didn’t quite feel right about the progress being made.
Now, if I know my requirements up-front, and am relatively sure that things will remain static as my project progresses, there should be no reason that a waterfall development and implementation approach shouldn’t work. It’s a solid approach. But it is also an approach that, when the environment around you begins to change, can be disastrous. Remember the Titanic? An impeccably built ship that if had not sailed in icy waters would not have sunk.
But in order to know that, there are several flags that we needed to pay attention to:
- bottlenecks of single key resources
- business decisions that needed to be made that impacted requirements
- business decisions being revisited and reversed weeks later
- different development teams integrating work at the last minute before delivery
- and finally status reports saying everything was OK
Eh, Captain, I think we have a problem.
So the air started to get cold – we can live through that, right? Like a temperature drop by 20 degrees in a few hours with nothing on the weather report, you know that something’s not quite right but you can’t put your finger on what it is or even how to fix it. And then you’re hit by the snow and wind from the storm front that is now on top of you. You didn’t see it coming because there was nothing on the doppler radar. The broken radar, of course.
By broken radar I mean that we had insufficient visibility into the day-to-day progress of the development teams, we couldn’t see which business decisions were blocking which pieces of development work, we weren’t able to easily identify which pieces of code from various systems rolled into higher functionality, and we weren’t able to elicit key business requirements in time to complete the work as scheduled.
This broken radar meant that the folks in the engine room (i.e. individual developers on multiple teams) were making decisions as to the priorities of work to take (i.e. which code to write) with no one on the bridge having an overall view of what was happening. A sure way to run into an iceberg. What did we do?
We fixed the radar.
How? Here’s the three point summary:
- Understand dependencies between the business features across integration points.
- Trace the software development activities to the business features.
- Align the open questions (i.e. missing requirements) to the business features.
By doing these three things, we started to have a picture of what work needed to be done first and what the impacts of not completing that work were to the rest of the project. This is fixing the radar.
Once this was done, we were able to start having fact-based realistic conversations as to what was possible and what was not. Oh, not to mention the specific impact of not getting certain business decisions made by certain times.
In today’s dynamic business environment, having radar is critical to making the right decisions at the right time. We didn’t have the luxury of having everything figured out in advance, but with the visibility the radar brought, we were able to see the iceberg that was right in front of us.
Next time we’ll get into the details of what we had to do to turn the ship.
Join the Red Hat Developer Program (it’s free) and get access to related cheat sheets, books, and product downloads.