Focus on cross-organizational dynamics, pathologies and development (agile adoption)

I agree with the conclusion of israelgat’s post on Agile Manager, Persona of the Agile Team:

If the spread of Agile in your company has stalled, providing qualitative and quantitative data on the benefits of Agile might not be the best way to win over support for broader adoption. Instead of hard sell of Agile benefits, focus on cross-organizational dynamics, pathologies and development.

Why do some Agile projects succeed while others fail? Is it the company? Is it Agile methods?

Failure DartsMy response to the question:

Why some Agile projects succeed while others fail? Is the reason of that in the company itself or is there something wrong with Agile methods?

What is success and what is failure in this question?

Agile is a set of human values embodied in a wide array of practices. To call it a tool is to dismiss the tenacity, honesty, courage, empathy, trust, generosity, pride, discipline, respect and loyalty that inspire the practices and that explain why those practices can change people and organizations.

But being Agile is also fundamentally about specifics. What is the best adaptation of a set of disciplined practices for a specific team in a specific context to achieve a specific goal? How to evolve those practices day by day, acknowledging our shortcomings and our immediate obstacles, working to our specific strengths as individuals and as a team.

The definition of success is critical. If it is undefined, unachievable, subject to forces outside of the efforts of the team, or subjective in the eyes of people who don’t participate in the project then success or failure is arbitrary. Outside the scope of the participants.

In many cases, failing fast, failing decisively is a kind of success in that no amount of additional expense ensures meeting subjective, arbitrary or external measures and, at the end of the day, even meeting those measures doesn’t necessarily benefit customers and end users.

Completely understandable though why human beings who value material means, family and interests outside of the workplace would opt for the long, slow ambiguity over short, concise defeat. Besides there’s always the hope that time will allow for the change that makes success possible. This is the constant tension in inspecting and adapting – in any given situation is it better to shove, nudge or work around an impediment.

That said, even a smart project with a great team and a perceptive product owner can fail in the marketplace, or fail to impress funders, or fail to fit in the corporate culture, etc. etc.

So, Agile projects can fail as all human endeavors can fail. They fail because the participants call whatever crap they happen to be doing “Agile”. They fail because a team doesn’t adapt fast enough or because they try to force change too fast. They fail because a great team is working for a bad product owner. They fail because a great team and product owner are building the wrong product or the right product for the wrong company or at the wrong time or in the wrong place.

Provide a specific example and you can get specific answers. Provide a generic question and the answer is, “Yes, all of the above.”

More well-wrought crap lovingly crafted for your disposal

– or – building the wrong thing, really, really well.

The epitaph of many agile teams.

Antique CarYou can optimize your construction practices as much as you want but if there is no discernible need for what you’re building…

The goal is not to build crap well. It is to find a way each day to do less and less crap and more and more not crap.

If this were easy, there’d be a lot more software that people should really get there hands on.

Let’s all look in the mirror on that one…

Agile software development: business value and human values

I’ve written about agile software development as an ongoing, perhaps excruciatingly gradual, conversation on the definition of value.

We need a place at the conference table. But we also need a forum and language to discuss the human values behind the way we aspire to work.

“… I’ve got to have more experience with junior [children] than a lot of the people who are telling me what I should be doing with them… I think I could help bring a lot to it and nobody ever asks…They just go ahead and proclaim and we have to follow.” -– Anonymous Teacher

This quote is from a study on the failure of education reform movements, called What’s Worth Fighting for in Your School?, by Andy Hargreaves & Michael Fullan.

Reform often fails because reformers don’t engage individual contributors in the goals. Rather, they impose practices upon them. The attempt to improve the classroom actually makes the teacher less effective and sets them against reform.

Sound familiar?

Cape Kiwanda, Pacific City, OregonThe landscape of broken agile adoptions is composed of attempts to make software development “faster, cheaper, better” without embracing the experience and creativity of our core asset, the software developer.

We need to focus a little less on specific practices and a little more on building consensus among our peers over a shared set of values which despite human fallibility and economic necessity inspire us to do good work.

The Manifesto for Agile Software Development is an attempt by thought leaders to capture these principles. As with all documents, it is an artifact of a moment created to address that moment’s opportunities and constraints.

If we take the “Manifesto” as terms and conditions, something to read and sign before we advance to practice then we glide over the surface of things. It’s not what was written but why people felt the need to write it.

If we take the “Manifesto” as a complete expression, then as happens with codes of ethics, we will use its silence on certain concerns and nuance in the interpretation words themselves to excuse actions by others and even justify the harm we do ourselves.

The “Manifesto”, as with any other artifact in agile, is simply a reminder to have a conversation.

Martin Fowler discussing gender disparities in the industry:

How about a community where women are valued for their ability to program and not by the thickness of their skin? How about a community that edgily pushes new boundaries without reinforcing long running evils?

Bob Martin lobbying to add a fifth principle to the Manifesto itself:

“We value craftsmanship over execution” (or “craftsmanship over crap”)

But the discussion isn’t between thought leaders. It involves every practitioner.

We are here to create long-term value. To build businesses, careers and an industry. This is a labor of years not the current iteration.

If your concerns are entirely short term, then there are less disingenuous ways to extract wealth from people’s effort than to claim you are “agile”.

If you are agile, then you are accountable to the creativity and well-being of the teams with whom you collaborate. You are accountable for the security of end users and the benefit they derive from the software you create.

We are not tools. We are knowledge workers. What we create carries with it the way it was created. What we create is in some profound way us.

Agile software development and “value”

Release BurndownAs advocates of agile software development we focus on practices.

The hype on those practices is they produce software, “faster, cheaper, better.” And we sell our efforts with the promise of, “delivering value.”

We speak of value as if the definition is shared, self-evident, contained within our backlogs and measured by our burn ups.

At the same time we minimize the hard and long the struggle to achieve mastery, identify and address a material need, and sustain creativity and quality.

So, we win the opportunity to labor with our teams to incrementally deliver potentially shippable units of code to stated business priorities.

When those priorities are pointless, so is the software.

When those priorities are tactical and subjective, the values behind agile practice — sustainable effort, maintainable code, self-directed teams, collaboration and trust — become irrelevant.

The truth is there are definitions of “value” that sell us out whether or not material success accrues to someone as a result of the software development effort.

And so, an agile adoption that is true to its participants is an ongoing, perhaps excruciatingly gradual, but substantive conversation with the larger organization on the definition of value.

A set of practices is only companion to the human values that give our work meaning.