Monday, April 16, 2012

Don't Push Always

I'm a manager. My job basically consists of getting other people to do things. Preferably they'll do the right things with reasonable timing. There are about a zillion ways to accomplish this, and I'm not going to get into too much detail about many of them here. Instead, let's look at one small detail: pushing.

We push people frequently. They'll say, "well, that'll take three days", and we say, "do you think you could do it in two?" They'll say, "I know we can do it in six months", and we say, "what can we take off the table so we can ship something in three months?" We often phrase it a bit less crudely than that, but the underlying message is there.

Now, there's nothing inherently bad about pushing a team. There's nothing wrong with saying, "what are the tradeoffs to get something faster/better/stronger?" There's nothing wrong with saying, "can we do better?" Burning out your team is almost always a terrible idea, but pushing doesn't have to mean burning out. It can mean trading off additional team members or money or features in favor of time.

But.

Sometimes pushing gets to be a habit. Every estimate is met with "how can we do that faster?" Every problem becomes something to throw people at. Every feature is something that gets cut to the bone in favor of shipping. It's pushing the team just for the sake of pushing. Even if you're not burning people out, they're still going to resent it. No one likes to be pushed all the time.

Don't push unless there really is a need to do so.

Time isn't always the most important thing. Sometimes there's plenty of time. Sometimes the feature is more important than time. Or keeping the team together is more important than time. Or the security implications or deployability is more important than time. These are all legitimate decisions.

Save the pushing for when you really need to push. Don't push just because you can.

No comments:

Post a Comment