Interrupting (or distorting) your velocity

We interrupt this broadcast...

How is your velocity? Do you focus on the highest priority actions in your projects? in your workday?

This Tuesday, The Daily Stat from The Harvard Business Review reported that R&D engineers completed only 73% of their planned daily tasks.

Maybe it is not applicable to software engineers, but I don’t have grounding for refuting the stat in our space as well.

The short brief goes on to say that interruptions caused 58% of that lost effectiveness, resulting in about 96 minutes of lost time each day.

In my agile teams (and as far as I know a standard practice everywhere), one of the factors I consider in estimating velocity is time lost to interruptions.

So we might also figure that using a flexible velocity that doesn’t rely on 100% productivity will take care of us…

Getting our priorities straight

What really caught my attention, though, was the last sentence in the briefing:

Although urgent tasks tended to be completed, the researchers […] found that less-important tasks were somewhat more likely to be completed than more-important tasks.

Slow down and read it again, if you didn’t catch it. Tasks considered “urgent” DID get completed. That’s good… and it is consistent with what I would have figured.

Where are your priorities?

But less important tasks were somewhat more likely to get completed than more important tasks.

Do we just ignore this because, after all, we are agile software developers and our teams, coaches and customers are awesome at prioritization?

Are we better than R&D engineers, more gifted, or less “human” that we are not affected in the same ways they are?

More interestingly, I wonder why it might turn out this way? What are the characteristics of high and low priority tasks that might make this situation happen on my projects?

Has it already, and I never really analyzed the data this way?

The anatomy of low priority tasks

I have one theory about why this may happen, and if it has merit it might even be LIKELY on just about any project.

As I think back through various projects and the tasks that were not high priority, I noticed a few characteristics:

  1. They were often “bonus features”
  2. They sometimes involved using libraries not needed elsewhere in the solution, or required integration with external services (Amazon, Google maps, etc.)
  3. They may have involved some dressy UI tricks
  4. Developers generally thought they might be “easy” changes

In other words, they were the PERFECT kinds of tasks a developer might “volunteer” to do in the evening or over the weekend for the sheer joy of development. You know, the tasks a developer might pull as a “freebie” to the project.

If that’s what is happening, I can imagine we might see this kind of statistic on just about any project.

Of course, that brings up other issues like what our velocity really is, and how we might address the higher priority tasks not getting done. Honestly, I can’t say I have seen the same effects as HBR is reporting about high priority tasks.

But what do you think about the low priority ones? Can you think of other reasons they could be getting done at a rate higher than you might expect?


Building trust with your customer

Trust means we can depend on future action

It is common to speak of building trust within a project team.

We debate ways to build trust, how we break trust and to what extent this “trust notion” is important anyway.

I have written about trust building with regard to noticing the implicit promises we make each other, and how very “real” they are to us in terms of consequences even though we don’t know they exist.

I know some cynics who say that trust does not exist… but I also accept that is how a true cynic might see it, and I move on.

So in this post, I want to talk about the trust we build with our customers… something relevant to every technology leader. (Actually, the core reference for my post above had to do, in part, with a marketer’s perspective of software developers.)

Revisiting components of trust

I have introduced a distinction for trust as:

An assessment of sincerity, reliability and competence to hold our promises for long horizons of time

You might use a different distinction, but I offer this one as the basis for the rest of this post. It is a standard distinction produced and taught by The Aji Network, which you know if you follow me is an educational discourse of business professionals with whom I have learned and grown professionally.

Actually, when I say “long horizons of time”, it is more specific to say “as long as needed”. If you trust me with a promise not to tell about a surprise birthday party… I am off the hook for that promise after the event.

So what is our task?

You can't keep any promises you don't make

Given that distinction for trust, we only build trust with our customers when they assess we are:

  1. Sincere – we mean what we say
  2. Reliable – we recurrently do what we say
  3. Competent – we’re not claiming a skill we don’t have

AND… we have to hold our promises [for as long as needed].

The thing is, if we don’t make any promises, we can’t build trust.

Now, I’ve heard some people adopt this as an intentional strategy – if we don’t make promises, they can’t distrust us. Actually, the opposite is true — if we don’t make promises, our customers WILL grow to trust us — to NOT take care of them.

We can’t hide demand by ignoring it exists (or saying “no” to everything), and we can’t build trust by saying “yes” and failing to deliver. So what is left for us to do?

The natural human planning cycle: 90 days

Here are two examples from domains outside software projects:

These books have at least one thing in common – they both refer to the human psychological implications of 90 days as a powerful window for planning.

Things change a lot in our business lives, and in the business lives of our customers. That is one reason we gravitate toward agile, or at least to short-cycle projects. Here we have two examples of other domains that suggest a familiar theme – give yourself space for feedback and time to adapt… and don’t pretend to know everything.

So let me offer this natural human planning cycle as consistent with a powerful move to build trust with our customers. Don’t delay a release unless something drastic has happened. Communicate clearly and confidently about what will be “in” the release, but don’t miss the ship date.

Over time, your capacity to recurrently hit ship dates (reliability), with solid features (competence) as you have said you would (sincerity), you create the opening to change the moods and attitudes of customers who might have great reasons not to trust due to historical patterns.

One strategic purpose for building trust with customers

There are many reasons to build trust with customers, but I will leave that to another post.

Today, I just want to link back to a past article I wrote about the role of project managers to hold customers to their end of the bargain – that they take receipt of our products. Not every team has this problem because they have their customers’ trust.

Some teams don’t have the problem because they have psychologically strong coaches who can force acceptance on their customers regardless of trust. (I haven’t directly observed this, but I leave open the possibility that it might exist.)

For the rest of us, not having your customer’s trust means they may become over-demanding, asking for more because they know they won’t get it all. They may get beaten down and stop asking for your help. Or I don’t know if this is worse, but they may take their budgets and look elsewhere for help.

They are not “wrong” in acting that way… but you can get ahead of them by investing in building their trust. Find promises you CAN make, if you can’t do everything. (Who can?)

…and deliver on those promises, consistently, competently, sincerely and recurrently… for as long as needed.