Here’s something Customer Teams often experience:

head in hands

Product Team: “Oh hey guys, we’re working on this feature. It might be kinda like this. Or this. Or maybe neither of those. It’ll be out this year.”
Customer Team: “Ok.”

(one month later)

Product Team: “Ok Management & Customer Team, here’s what we have. We think we’re getting pretty close to launch!”
Customer Team: “Great, so what we see here is basically what we’ll be launching?”
Product Team: “No. This, this, this and this are going to change before launch.”

(two months later)

Product Team: “Ok guys, we’re launching this on Monday, cool?”
Customer Team: “I…but…no! We don’t have documentation! Have you thought about how that will affect existing workflows? What if people dislike it? Shouldn’t we communicate these changes to them?”
Product Team: “Oh god, COME ON guys. You’ve had SO much time to get ready for this. Why do you want to ruin our lives?”

Of course, from the Product Team team’s perspective it might have looked like this:

Management: “Build this.”
Product Team: “Ok. Hey Customer Team, we’re working on this feature.”
Customer Team: “Ok.”

(two weeks later)

Management: “This other thing came up. Focus on that instead.”
Product Team: “Uh, ok.”

(three weeks later)

factory cartoon

How people THINK software is made

Management: “Guys, we really need to get back to that project!”
Product Team: “Couldn’t agree more!”

(two weeks later)

Product Team: “Ok Management, & Customer Team, here’s what we have.”
Management: “Great! Let’s just change all of this.”
Product Team: “…right.”

(one week later)

Marketing: “Guys, when is this going to be ready to launch? I need to plan press outreach!”
Product Team: “We can’t really know, as it might change.”
Marketing: “That doesn’t work for me. Give me an estimate.”
Product Team: “Um, two weeks?”

(two weeks later)

Product Team: “Ok, we think this is probably done but-”
Marketing/Management: “GREAT! Launch it!”
Product Team: “…ok. Customer Team, we’re launching this.”
Customer Team: “I…but…no!”
Product Team: “Why do you want to ruin our lives?”

As much as us makers would like unlimited time to make, there are external factors. Marketing and Management are reacting to these factors, and to a certain extent you have to deal with prescribed deadlines.

So how do you keep Management and Marketing happy without screwing over the Customer Team?

Separate “code complete” from “ready to ship”.

Default to a minimum of a week between “code complete” and “ready to ship”. For big or potentially controversial releases, plan for a month. Use that time to prepare communications with customers, knowledge base articles, etc.

This is not going to be an easy case to make to management. But once you make this a rule and a habit, you’ll decrease the number of conflicts between your various teams. You’ll win the war, rather than constantly focusing on the battles.

Facepalm photo courtesy of Tuomas Puikkonen

Head in hands photo courtesy of Alex Proimos.
Factory image courtesy of Emily Balsley.