I can’t tell you how many times I have heard technology professionals say that they are “trying this agile thing out,” and that they think of their organization as “small ‘a’ agile but not capital ‘A’ agile.” These are organizations that are hoping to institute change by instituting rituals: two-week cycles for producing stuff; estimating work in hours; talking about continuous delivery and continuous integration; propping up a Raspberry Pi in their environments to watch builds; and conducting standard agile ceremonies. But an organization can check all those boxes and still not be agile.
Common pitfalls include:
- You conduct retrospectives, but your teams don’t feel safe enough to talk about the elephant in the room (an issue that blocks you from delivering on a task or feature) because they worry about political boundaries — or fear retribution.
- Your team is holding on to old ways of doing things because they are worried that automating old release engineering practices may make their jobs unnecessary.
- Your team does not feel empowered enough to implement continuous improvement, and allows huge blockers to persist. This lowers morale and increases attrition, particularly of good people.
- Progress reports to leadership are not rooted in transparency and continuous improvement. Your middle managers feel like they have to brush problems under the carpet to make status reports look good.
- Your leadership has an affinity for bright and shiny objects, constantly launching new initiatives and remaining blind to incomplete work or technical debt.
- You feel stuck with leadership guidance that attempts to dictate scope, schedule and resources, and it’s unclear how you are empowered to address tradeoffs.
Need I go on?
A healthy, functioning technology organization (or frankly, any other type of org) is one that embraces an agile mindset at its core, and across every level. In my mind, this involves three core concepts:
- Continuous delivery of value
- Empowered teams
- Elimination of waste
Continuous delivery of value
To me, the concept continuous delivery of value has at least two dimensions. First, it involves a culture of always asking, “Is this the most important use of my time now, today, this week, this iteration?” Way too often in my career have I heard, “We need time to work on this plumbing functionality for the next three months, and we will be able to deliver value to our users after that.”
No. I have seen teams with an agile mindset address even underlying plumbing or architectural work in an iterative fashion. And there's a good reason for doing that: Without shorter feedback loops, teams risk delivering software that doesn’t actually meet user needs.
Continuous delivery of value also refers to a culture of finishing what you start. (The pithy “stop starting, start finishing” comes to mind.) Releasing small batches of work is a great way to smooth out bottlenecks in an organization’s development practices, shed light on systemic issues, and increase the quality of output. When you adopt the practice of releasing small batches, you create more than a smooth delivery engine, though that is certainly the desired outcome — you also create a vibrant workplace where people take pride in accomplishing results, not just doing work.
The focus on the team is a core tenet of working the agile way. Well rounded (and often cross-functional) teams that come together and stay together for a period of time become forces to be reckoned with, taking on large initiatives and delivering quality and quantity that’s head and shoulders above their neighboring (or competing) teams.
The performance and business outcomes from these teams stand in stark contrast to those of organizations where middle management believes in dispensing “resources” (oh, how I cringe when we refer to people in such inhuman terms!) to projects, constantly plucking people from one initiative and dropping them into another.
While this approach may provide a sense of control over utilization of the organization’s most valuable investment, the lack of focus on the team unit can be detrimental to long-term success. Teams need to feel empowered to deliver with clear mission, explicit success criteria and incentives, and a reliable support system to make tradeoffs and remove blockers. I am a firm believer that valued, happy teams build great software!
Elimination of waste
Finally, the focus on waste elimination is often ignored, but it's a key pillar of organizational agility. Any business that has been around for a few years has vestiges of past efforts, and these require constant pruning. It could be technical debt: shortcuts and architectural decisions that were necessary at one time to deliver on an urgent business need, and that, ignored over time, can be a dangerous source of sluggishness. Waste can be (for example) redundant meetings created by a leader who has long departed, continuing even though they're no longer productive. Waste can be arcane processes for doing things, with little to no actual ROI. Waste can be in the form of laborious status reports on in-progress work, rather than automated sprint reports from curated backlogs.
Thriving businesses need to make a conscious effort to seek and root out efficiency killers, be it in the code or in the ways people work. And don’t forget, your executive leadership may need constant reminders to sponsor tech debt burndown initiatives, so you are empowered to care for the foundational elements of your product. This isn't a break from delivering iterative business value; it's something that ultimately enables faster delivery of business value.
To summarize, your digital transformation initiative will fail unless it is rooted in an agile mindset. Talk to your managers and your teams today, and find out what they're worried about. Don't just sponsor agile ceremonies: go further. Inculcate a spirit of transparency; remove people or processes that lower safety in teams; give teams a clear sense of purpose, and empower them to “fail forward” or learn quickly from mistakes; and make sure that your teams feel supported and heard.
At the core of DevOps is culture and communication. Embody the agile spirit, and you will get not only the best possible business outcomes, but also a healthy and vibrant workplace for your people.
Padmashree Koneti is the senior director of product operations at Puppet.