Dear agile consultant – hiring criteria for coaches and mentors

play at your own riskDear consultant who uses “agile” as part of your brand,

I am a possible customer who embraces agile principles, practices agile techniques and has done so for years.

I admire the tenacity and talent it takes to build a business in consulting.

The best of you offer your clients techniques, language and a way of thinking that can better lives and turn around companies: advising them in ways to change their own organizations, bolstering their courage to experiment, helping them learn to iteratively learn, inspiring them to foster teams, empower individual contributors, incrementally improve, and helping them grow past dependency on your services.

Here’s how I judge whether a thought leader is a worthy mentor:

  • Your reputation among those of your peers I know and respect.
  • Do you provide context/share credit: “This is where it originated, this is who popularized or researched it, this is who’s written well on it. This is my version of it.”
  • Do you espouse principles: “This is about defining work that builds equity because it offers real benefit to end users and a way of working that entrusts individual contributors of diverse talents to collaborate within teams to deliver that benefit.”
  • Are you frank: “Most companies who try this fail. Most managers who try this will not change their own behavior enough to allow their teams to succeed for them.”
  • Do you embody the principles: “It is about your team(s). Not me. I do not have right answers only experience, a willingness to listen, and techniques to help us figure out what you need to do to help yourselves.”

Conversely, these are the bad smells:

  • Celebrating the widespread adoption of “Agile” without acknowledging most “agile” adoptions are crap.
  • Celebrating scale not individual team excellence.
  • Focusing on techniques not principles as if “stories” and “iterations” were magic.
  • Talking about software tools before disciplined engineering practice.
  • Talking about “value” and “productivity” as if a leader’s understanding of these terms were not a/the major obstacle to their workers ability to perform.
  • Jamming agile practices into a contradictory way of thinking: “Agile process manager” anyone?
  • Coining new jargon for a slight spin on existing practices: It looks like a timebox, smells like a timebox, tastes like a timebox. “I call it creato-inno-rations™.”
  • Putting yourself above the problem: Just because you were really good when you practiced doesn’t mean you are a brilliant coach. Just because you’re a brilliant coach doesn’t mean you can do my job better than me. Just because you can do my job better than me doesn’t mean paying you to not do my job provides my company value.
  • Overheated claims of personal invention/Not giving credit to others. Sorry guys (and I mean guys), Mary Poppendieck was talking kanban and software development fifteen years ago. You’ve advanced the craft, you’re changing minds, and you may be very good at what you do but you are not Archimedes.

As a potential customer, I need your honest criticism, I am impressed by your ability to learn from others. I respect determination and humility more than bravado.

Give credit where credit is due and do exceptionally well.

Styling jetpack sharing google plus button

Nothing profound.

I use jetpack so I wanted to use the provided sharedaddy module.

The google plus button is a new addition and displays the medium button with default annotation.

I don’t have the traffic to display annotations. I want to use the small button.

So per google’s docs, I edited the sharing-sources.php file

from

[crayon lang=”php”]
public function get_display( $post ) {
return ‘

function removeCountsFromGooglePlus() { if (jQuery('.googleplus1_button iframe')) { jQuery('.googleplus1_button iframe').attr("src", jQuery('.googleplus1_button iframe').attr("src").replace(/size=/,"annotation=none&size=")); } }

Note: (9/2012) Google updated their api to change from count=false to annotation=none. Snipped above updated to reflect this…

jQuery(‘.googleplus1_button iframe’).attr(“src”, jQuery(‘.googleplus1_button iframe’).attr(“src”).replace(/count=true/,”count=false”));

Agile’s broad adoption and mediocrity – the fault lies…

I have to admit, I cringe whenever I say “agile” or “scrum” (™?) Even as I practice both every workday and care deeply for the values they represent.

Successful movements take on a cloying “fill me with your knowledge” cast. A perpetual newbie state where new adherents come on faster than existing practitioners have opportunity to develop experience and wisdom.

I really don’t need to have another conversation about how to phrase the first sentence of a user story.

And I definitely feel some of the same heat rising from the attention to lean. Buzz, buzz, kanban, buzz…

But can we blame the thought leaders, the coaches, the industry deriving wealth from a movement for the failings of that movement? Is it the corrupting influence of success or rather broad adoption itself?

I think the latter.

First, let me acknowledge that iterative improvement is a lengthy process and has to start somewhere. That your current state is entirely flawed is a given.

You don’t have to be excellent at what you do at this exact moment to begin improving your own practice and your workplace. A broad swath of not soul killing workplaces is at least as valuable as a small set of shining cities on the hill.

But whatever the starting point, taking on agile practice is dedicating yourself to a mission of fundamentally changing the nature of our work to something both disciplined and highly accountable but also collaborative, creative and sustainable.

And broad adoption means that a lot of people who call themselves “agile” just don’t rise up or even aspire to rise up to that mission.

If you claim you’re doing XP: have 24 hour builds, the developers all work solo and your test coverage is 10% then you’re either at the start of a very long journey (which I deeply admire you for) or you’re lying to yourself and you just plain suck.

If you claim you’re doing Scrum and the developers haven’t talked to a business person in months, can’t articulate what your team achieved in the last month, and you require “stabilization” sprints before you can deploy working code, you are either at the start of a very long journey (which, again, I deeply admire you for) or you’re lying to yourself and you just plain suck.

It’s not one of a thousand consultancies, professional coaches, certification tracks, associations or conferences fault if you suck.

It’s not Jeff Sutherland’s or Ken Schwaber’s fault if you suck. As a matter of fact, they and their peers have done a great deal to give a great many of us a chance at sucking less.

The mentor/mentee relationship is powerful but it’s up to each of us to do our work with courage, integrity and passion. It’s up to each of us to hold our peers to a standard of competence and care.

“The fault, dear Brutus, is not in our stars, But in ourselves, that we are underlings.”

Estimates and the desire to be lied to

A manager who does not accept estimates with range for uncertainty demonstrates a desire to be lied to.

A mundane corporate drama

We’re at a staff meeting of a company reliant upon but not about software.

Halfway through the hour long meeting, they start talking about a new software dependent product. The product has been a bullet point and a few sentences for months but now has some artwork and wireframes.

After a general conversation, the sponsor turns to the development team, “How much work is this?”

The team makes an educated guess – whether on the spot or after some closed room review. They express this as:

  • a rough sense of effort (easy, hard)
  • analogous to some other project or effort (at least as much work as)
  • a broad timeframe (month, quarter, week)
  • a range (it will take 2-4 days/months)
  • The team also describes some of the risks and uncertainties in general terms.

“Yes, but on what date will it be done? How much will it cost?”

***

What is an estimate?

A prediction made at a point in time with best available knowledge.

An estimate is fraught with more or less uncertainty. Early on an estimate has a very high degree of uncertainty — as high as an order of magnitude. As work proceeds depending on the risks involved, an estimate can become more accurate.

An estimate is subject to risk tied to the nature of the work, the organization, and/or external conditions.

Formal estimates (intended for consumption outside the team itself) should be expressed at an appropriate precision for the point in time they are made and with an appropriate range of error. Formal estimates should always include some analysis of the risks that might affect that estimate.

In our drama, the range of error is wildly large.

  • What is being built has never been built before — or — if it has, not by this particular team.
  • The build requires new learning and original problem solving.
  • The product launch is dependent upon third party tools, existing systems or data.
  • The ‘team’ doesn’t represent all the skills and access required to complete the software.

More fundamentally:

The sponsor doesn’t know what they want and to the degree they think they know what they want it will change during the course of the project.

And, even more fundamentally:

The sponsor isn’t the end user and doesn’t exactly know what those end users will find useful or desirable.

***

An estimate is a planning tool. Not a bid. Not a commitment.

A bid is a proposal to do a certain amount of work for a certain cost. It may or may not lock in a minimal required delivery. If so, it is managed as a revenue stream and losses against that stream are made up by other streams. A certain overhead for profit is planned in. A contract formalizes this as a business arrangement.

A commitment is a determination by a group of people to meet a certain goal. It is a real commitment if people make it themselves, there’s a clear and demonstrable definition of completion, if they believe it is achievable, if it is achievable, and if achieving it actually makes a difference for the individuals involved and for their company.

***

“Yes, but on what date will it be done? How much will it cost?”

“Give yourself a margin for safety – say 10% to 15%. I want a date I can trust.”

***

Why do estimates become a contract?

  • Companies lock in resources and budgets months before any work is under way.
  • Managers are under pressure to provide hard dates and costs to their bosses.
  • Managers may be used to working with outside vendors on a fixed cost basis.
  • Managers may be experienced in another kind of business with well-established, repeatable processes.

When people are under pressure they embrace certainty – even when they know none exists. Short of that certainty they want to know their staff cares, will work hard and is committed to delivering for them.

And they want the team to demonstrate their commitment by making a commitment.

But if the manager is capable of trust and new learning, has good intentions, and is focused on achieving their goals a team can turn this dysfunction around over time.

If not, seriously, look for another job because this one will cause you pain and stress. It will likely waste your hard work. It will rob you of joy and it may drive you from the software field altogether.

Rather than refuse to commit or make a bullshit commitment, commit to working toward your mutual success:

  • Communicate an understanding of what a sponsor is trying to acheive.
  • Demonstrate through your actions that you are working to help them achieve it.
  • Acknowledge their need to make schedule and budget commitments to the degree they really need to do this
  • Provide your estimates but be honest about the risks and uncertainties.
  • Attack the idea of “done”. The software may (should) be releasable before the full scope is built and it will require work after it is released.
  • Challenge and test assumptions about what features/implementations are needed.
  • Demand the sponsor’s participation in negotiating scope all along the process.
  • Make your progress visible both in tracking metrics against the goal and in demonstrating actual working code. Revise your projections as you go based on better information.

And don’t just build what your told. Build what people need. Waste as little as you can to get there.

Agile, Scrum and 4DX

Our company is adopting a practice called “The 4 Disciplines of Execution” (4DX). Superficially, it’s goals and techniques are very Scrum-like with a focus on rallying self-directed teams toward a single, important company goal.

Team Scoreboard

Layout of our combined Scrum/4DX team scoreboard

Like Agile, it champions practices but emphasizes values that give those practices reasons for being. 4DX is more focused on outcomes than specifics of performance – which is a nice puzzle piece to slot along side into a lean or XP discipline.

I’m fascinated to watch the course of a top down process change. I’m also wary of what happens when groups that don’t feel an urgent need for change or share the values of team, collaboration, and focus bang their heads into this particular demand.

Still, I am hopeful and excited. After a few years at my company once again championing a team-up Agile adoption, I feel tremors as the rest of the company shifts to meet us.

Part of being lucky is being ready.