This article is for software developers who are frustrated with the state of agile, and I know that’s nearly all of us. We all need to take a look at what got us here, and what we can do about it.
The majority of software developers I’ve worked with immediately resort to air quotes when saying the word “agile.” By now, we all probably have our own horror story to tell. It’s a shame because we were promised all of the pitfalls of waterfall would be solved – ambiguity in requirements, long delivery times, inability to pivot, etc. We even embraced the idea of agile at first, spearheading the first agile framework, Xtreme Programming. The original agile principles outlined in the Agile Manifesto, as well as Xtreme Programming, were grassroots movements born out of the experience of software developers in the 80s and 90s. They were not overly prescriptive in their approach and had a focus on technical excellence – calling for pair programming, test driven development, and continuous integration. By far though, the biggest change from waterfall was an iterative approach to software development, with a focus on team empowerment, small releases, and regularly integrating customer feedback into the development cycle. These were great ideas and I think most developers and organizations would agree, while not perfect, it is better than the alternative.
Unfortunately, agile software development was hijacked by organizations and consulting firms trying to capitalize on the trend. New agile frameworks were pitched and “Digital Transformation” became the next big thing. Certifying bodies popped up, generating millions of dollars in revenue issuing digital certifications for 3 day classes. Almost overnight, it seemed that the loose values defined in the Agile Manifesto had been replaced with overly authoritative frameworks. Teams were bloated with roles that added little value, and some organizations even started trying to track how well a given team was ‘doing agile’. Comparing story points completed by one team to another, auditing a team’s stories to make sure they were written according to company standards (yes I’ve seen this), chastising the team for not planning well enough if work was pulled into the sprint that wasn’t originally defined during sprint planning. Hours and days wasted in large scale planning sessions under frameworks like SAFe, where the vast majority of what you planned becomes irrelevant after the first week of implementation. So what happened?
I’ve seen a lot of finger pointing.
Excessive focus on process manifesting in Goodhart's Law
One place I don’t typically see software developers pointing our fingers is back at ourselves. I think this is a mistake, and I’d argue we share a lot of the blame, maybe even the majority of it.
As a software developer, we sometimes get lost in our craft, unable to see the forest for the trees. It is important for us to understand that if the business could get away with it, we wouldn’t be employed at all. The organizations we write code for exist to provide a product or service to their customer. So,the code we write is not of primary interest – it is a means to an end.
Lucky for us, in this digital age, businesses cannot survive without software development talent. But a large portion of our industry has forgotten that we are here to serve the business first and foremost. What follows is a list of behaviors I’ve seen exhibited over the last decade from software developers.
At the heart of agile is team empowerment and trust. Trust must be earned, and constantly reinforced. It is no wonder that overly prescriptive frameworks have been adopted with some of the behavior our industry exhibits, and in some cases even celebrates. We have allowed ourselves to become code monkeys, taking orders from others that supposedly represent and understand the business better than we do. And if we continue to reinforce that stereotype that developers need to be managed, maybe we deserve the current state of agile. When the business cannot trust us to deliver value, and we cannot articulate our value clearly, the business will look for other ways to measure us. And that measurement often comes in the form of tracking our output through micromanagement.
If we want our teams to be empowered, then we must regularly show our value. At the end of the day, you will be left alone to work however you’d like to work, as long as you can produce positive outcomes. It may take some time to build that level of trust, but I’ve yet to work anywhere that doesn’t allow me to call my own shots once I’ve established that trust. You must demonstrate that you are more than a code monkey that needs to be managed, and that you understand the needs of the business.
Stop letting scrum frameworks put you in a box. Just because our role on the team is developer doesn’t mean we can’t contribute beyond measuring our productivity only in the number of story points we complete each sprint. Some things I have done to build the level of trust I mentioned earlier are:
If we don’t like agile frameworks, then let’s make the frameworks unnecessary. Let’s prove they are redundant and wasteful by taking initiative and showcasing our ability to bring value to the business without them.
To learn more about how Callibrity can help your organization, email us at contactus@callibrity.com to schedule a time to connect.