Wednesday, October 4, 2017

Deadline Driven Predictability

Have you heard any of these before —
“This team, oh they will work hard to meet any target, no matter how impossible it seems.”
“Folks, we are committed to this deliverable, the product team has already promised the customers, we need to somehow make it happen.”
“If we pull this off by release date, we will be hailed as heroes”
“It will be hard, but the team will figure out how to get it done in time.”
“Team, just for this release, this one time, I am going to ask you all to work a few nights and weekends. We will even bring in lunch if needed.”
My guess is most of us have heard these or even said them(I know I have done both). You might say that these statements represent management that puts short term targets ahead of the well being of the people being managed. You might even argue that this short term thinking undermines long term predictability and quality of the product being delivered. But then, so what, the team pulls the rabbit out of the hat, we meet our commitments, pat ourselves on the back and repeat the cycle again. What is wrong with that? We are getting things done. We are feeling like heroes. The team is able to show management, how awesome it is. Every level of management can do the same to the level above. We are all getting in line for bonuses and promotions. Could this really be a bad thing?
What about the people? Well, if we stop pushing our people to the edge, does not mean our competition will. This means we will not be working miracles, but our competition will be. That cannot be good. If everyone, including our competition is relying on people put in extra hours, these people don’t have much of an option, do they? What are they going to do? Quit? Quit, and then go somewhere else where they have to do the same thing. It does not matter to us if they quit anyway, we can always hire replacements. Maybe someone that costs us less. We will help them pack up there stuff and kiss them goodbye as we look for replacements. Developers are dime a dozen.
It is not just that we are afraid of failing in comparison to our competition. Even within our organization, my team, me as a manager, my boss, my boss’s boss, will all seem like people who cant get sh*t done. If I seem like a manager that cannot get sh*t done, I will never get promoted. If my boss looks like she/he cannot get sh*t done, I will never ever get promoted. Even if promotion and bonuses were not in the picture, I have a responsibility to push the team to get results. Once we have made a commitment it has to be kept, regardless of how much new information and surprises show up.
We have no right to tell our bosses and customers that we are going to miss the deadline, when there are unused hours of the day that we can squeeze out of developers. Deadlines motivate people, and by motivate I mean gives them the incentive to work longer hours as the deadline gets nearer. Here is an idea — Let us go Agile. This way we work in sprints of 2 weeks. Which means, deadlines, every 2 weeks. Let us make the sprint so often, they will forget that they ever walked. We cant get ahead by walking, we have to be sprinting at all times.
Of course, things happen, people have to take time off, new work comes in, customer issues pop up, we get pulled into estimation meetings etc. Regardless of all this and regardless of scope creep and discovering that things were more complex than we thought, we have to meet our deadlines. They are called deadlines for a reason. We cant extend the deadline, we cant cut scope. There are only two options. Throw more people at it, or, “work harder”. People are expensive and we have other areas that are struggling to meet commitments anyway. That leaves one option — “work harder”.
We have faith that we can make anything happen. We don’t need predictability, we make our own predictability. If we say that a certain feature will be delivered in a certain release, it will be delivered one way or another. Our predictability is built by the team working its tail off. It does not require any of the fancy “sustainable pace” or “stable systems” talk. Feel free to take your predictability and go home. We are going to meet our commitments anyway.
There are greater things at stake with this release. We do not really have time to waste on this “process improvement” that might not work out anyway. We can talk about that next release when we have less pressure. This is the last release where we will push the team this way. From next release onward, we can look at ways to make things better. We know we have said that a few times in the past, but this time we really mean it. Since we already know the capacity of the team from this release, we will commit to the amount of work we are getting done this release for the next release. We cannot tell our customers and bosses that we will do less, reducing capacity is unacceptable. Yup, next release will be different.
We trust our teams, they are empowered. They are fully empowered to figure out how they are going to meet the commitments that we have made for them. Our team is a hard-working team. They can do the impossible. They will never let the management of the team look bad. The management, in turn, would never let senior management look bad. When the team does the impossible, we will celebrate them, give them compliments, take them out for a happy hour. After all, they need to be rewarded and if we don’t, they might not be inclined to do this again. “This team, oh they will work hard to meet any target, no matter how impossible it seems.”