Steve,
I'm pretty sure I have nothing to say that will actually solve your
problem, for which I apologize in advance. I do have some questions,
mostly in rant form, which you may or may not feel like reading; it
largely depends on whether you find Eeyore funny, or depressing.
On 3/8/14 9:45 AM, Steve Toalson wrote:
> First post ever..... Been 'coaching' for 2 years. Spent all of 2013
> with a GREAT team. So Great, it was time for me to move on to work
> with other not so great teams. :-)
>
If it were me, I'd probably try to reflect for a bit that whatever crap
happens this year, 2013 was still great. You may not be as prone to
pessimism and catastrophizing as I am, so you probably already notice this.
> Anyway - I'm still connected to this team. Just prior to my
> departure, they learned of a significant deadline - 4/1. They needed
> to have all of Release 5 features delivered by that time. Team has
> kept working and making good progress. However, our Product owner, and
> her Business partners continue to uncover new stories. (#2 - we
> welcome changing requirements). At this point, their metrics tell the
> story that they will NOT make their deadline. As an agile
> evangelist, the answer seems straight forward - 1) Cut
> stories/features (scope) and deliver what they can on 4/1, or 2)
> extend the deadline. The business has responded vehemently - No and
> No. So much for them being partners with us. :-(
>
So the business side put a lot of stock in the developers' estimates
when those estimates showed the team making the deadline, but refuses to
accept them now that they show the team missing the deadline (because of
newly-discovered additional work). Why did they accept the estimates at
the beginning? Why not now? Do they think (after working with this
team for at least a year) that the developers were
sandbagging—deliberately inflating their estimates? My guess is no,
because if the business did think that, they would have either directly
accused the developers of sandbagging, or indirectly showed they think
so by trying to cram more into the Release 5 (or moving the deadline
earlier).
I think the business side thinks two things:
1) Bad things will happen (to them, to the organization) if they
don't have everything in the backlog done on April 1st.
2) There's no way to get everything in the backlog done on April 1st.
The problem comes when they think the two thoughts together, because the
conclusion is unavoidable:
3) Bad things will happen (QED).
This conclusion is intolerable. They reject it (for emotional reasons,
not rational ones), which means (if they want to appear rational to
themselves or others) they have to either reject (1) or reject (2).
Rejecting (1) means bucking their bosses or customers or whoever it is
that helps them make their mortgage payment and feed their kids, so
that's out. So they reject (2), since it's much easier to fantasize
their way around: hey, it's software: anything could happen, right?
Didn't a college kid write the first graphical web browser in under a year?
The problem, of course, is that (2) is true, so they're willfully
believing something important that's false, which is literally insane.
Is there some way to inoculate people against this particular brand of
insanity? Are there Aesop's fables of software development that we
could tell that would do the trick? (I like the one where Aesop
volunteers to carry the food and water on a march: it's very heavy in
the morning when he's fresh, and very light in the evening, when he's
tired. The link to test automation seems obvious to me.)
I wish I could take the business side to a track, have them run a
quarter-mile, then make them run it twice as fast. Unless they walk the
first time, my guess is they'd discover it's impossible. After they
failed, I'd offer them big bonuses for succeeding. When that didn't
work, I'd threaten their jobs if they fail again. When that didn't
work, I'd explain how vitally important it is to the business that they
at least stop running it more slowly each time. For some reason, many
people on the business side always think they can get more out of
developers, no matter how productive the developers are. Maybe, deep in
their subconscious, they really *do* believe that programming is just
typing, in which case a programmer's only real physical limit is four or
six characters per second, or 112 - 168 KB of code per day, or about
5,000 - 9,000 lines per day. (Unless you make the slackers work
overtime, of course, and isn't dictation software getting better every
year?)
I don't know a guaranteed way to make people face reality; I suspect if
I did, I'd be rich, like Oprah. Or at least maybe powerful, like
Oprah. Life-or-death situations sometimes clarify things, but sometimes
just make people cling harder to their illusions. Same for
employed-or-unemployed situations. Yelling, threatening, crying, going
on Dr. Phil, even mockery: sometimes these approaches work, sometimes not.
The best suggestion I have, therefore, is to talk to them a lot. Ask
them a lot of rational questions. Can they demonstrate how they can get
all of what they're demanding in the time frame they're demanding it?
Why are they certain that the estimates in their plan are better than
the estimates from the developers (who know the work and how it's done
in much more intricate and intimate detail)? Can they (or you) can get
another group of developers to estimate the work? Maybe you should
encourage them to put the work out for bid to an outsourcing firm, and
listen to their reasons against doing so.
How is it that their estimate for the work coincides so wonderfully with
the arbitrary due date (and, I'm guessing, has continued to do so as
each new story was added)? Why don't they think it can be done a week
before that? Or a week after that? Or next week? Clearly, their
estimates are changing; why do they think they're getting better at
estimating and not (as is obvious to anyone outside the situation) worse?
How would they adjust their estimates if they lost one of the
developers? How would they adjust their estimates if they lost all but
one of the developers? How do they think barking unrealistic orders at
the developers affects the chances of those scenarios actually
happening? How do they think it affects morale, and how do they think
that affects productivity? Do they observe Google going broke by
listening to their developers and being nice to them?
Are they paying attention to how quickly the work is actually being
completed? April 1 is 24 days away. Does progress match their
estimates better than it matches the developers' estimates? The other
way around? Or are *both* estimates too optimistic? Is it worse to
give advance notice that not everything will be done before the
deadline, or better? (Not that customers and bosses ever love negative
surprises, but maybe the business side needs the time to line up job
interviews or something.)
Did they make a commitment to someone higher up in the organization? To
someone outside the organization? Did the commitment include
(implicitly or explicitly) all the newly-discovered stories? What are
the actual consequences of not having everything done April 1st? What
are the actual consequences of having everything done when the team
thinks it will be?
Another good question is, "Has what you're doing right now *ever* worked
for you?" Especially if you already know the answer is "No."
You'll have to repeat yourself. Get resigned to it. Think how much
repetition it takes to teach someone a foreign language, and count
yourself lucky by comparison.
> The worst part now, with my absence, the Project Manager is Commanding
> the team to do whatever is necessary to deliver all stories by 4/1.
I'd put a poster of King Canute up on the wall. Heck, I'd tell the
story at the start of every meeting. The developers on the team may
have more interest in job security than I do, true. Though they should
really ask themselves why: is there really no job out there that's
better than the one they're in? Do they think things will go back to
being sane after 4/1 (a GREAT day for an arbitrary deadline, by the
way)? Wouldn't they rather go into job interviews talking about how
they just wrapped up a successful year, rather than explain how they
were on a team that missed an April Fool's Day deadline and got
fired/quit/sacrificed the month of April fixing critical bugs in the
field for pissed-off customers?
(We talk derisively about rats leaving a sinking ship, but from the
rat's point of view, it's a no-brainer: he can be a live rat, or a
drowned rat; those are his only options, and one is clearly better.)
I sincerely wish I'd sent my resume out immediately the couple of times
in my career that I've seen regression like this in an organization.
It's a big hole below the waterline, with nobody patching it and nobody
pumping. You'd be doing the individual developers on the team a service
by pointing this out to them.
> I am a very sad coach. I want Agile to succeed.
I'm guessing you also want world peace. You may have to adjust your
time frame for the widespread adoption of either if you don't want to be
sad.
There's a regressed Agile team in my past (this probably fails to
surprise you). I can't help thinking about them. I'm still mad about
what happened to them, but in the future that will probably dull to
sadness like yours. Something wonderful happened, and then it was
mindlessly killed. It's like a children's cancer ward writ small. Some
members of the team were stuck in that organization, and couldn't even
quit. Some of them did quit. (Their departure didn't affect the
schedule, which is interesting.)
Are you still in the same organization?
Can you go over the heads of the crazy people? Do they have a boss
inside the organization? Was she or he supportive of the team's Agile
performance? Can you get them to see how unrealistic the current plan
is? Can you do an anonymous survey of the team to demonstrate that none
of them believe in the schedule? Can you get the higher-up to admit to
some flexibility that either the developers or the business side are
unaware of? Can you express to them the plain facts that they have a
time budget, the stories have pretty well-known time costs (especially
in the aggregate), they thus can't realistically get all of them, and
they're going to have to prioritize?
> What I see is that, given dire circumstances, management is content
> to revert to our old ways. So much for being agile.
>
"Content" is probably an overstatement; I'm sure their Maalox
consumption is going up. The old ways are just less awful-feeling to
them than the new ways (or than they think the new ways will be). I see
this irrationality in myself occasionally, so I think I understand it a
little. But, as coaches, we know about stress-induced regression. We
know it's a little late to deal with it after the regression has
happened. What can we do about it beforehand?
Is there some way to rule such crazy behavior out of bounds, like a type
violation? Is it enough for the developers to just keep repeating,
"These are our estimates, this is when we think you can have each of
these items if we do them in the order you gave us"? (One of the things
that angers me most about this type of situation is not just that the
business side rejects the developers' estimates, but that they want the
devs to *accept* and even *endorse* theirs.)
> Would really appreciate any perspectives folks have to assist.
I'd understand if, after reading this, you add an exception to the above
statement.
--George