Stop Striving To Be A Good, Efficient, Agile Developer. Seriously.

Dan
Dan ·

Your Product Manager Tells You To Build Feature X.

You get the detailed user stories from the product owner, you estimate your work - good agile developer that you are - and off you go. You code that puppy until it purs and you test it until you've covered at least 90% of your code. You're good. You feel good. And so you should. You've been a good, efficient, agile developer. You commit your code and pick up your ping pong racket because your job is done and what a fine job too.

The DevOps guy - who's actually an Ops guy and does no Dev but somehow he still signs off as DevOps (but let's save this one for another post) - well he goes and pushes your new build into production and everyone is thrilled. You sit back and literally feel the virtual pats on your back as your manager sends off that congratulatory email that the executives can't live without and boy oh boy - is everyone ever partying it up.

You're a dev. You know what I'm talking about.

Now, you being a dev, and the proud owner of a fine analytical brain, tell me - what's wrong with this picture? Who's missing here? Who have we left out?

Yeah. Them. Bingo. The customers.

Fast Forward 3 Months.

Or about 5 sprints and a bit or so.

Remember that brilliant piece of work you did back then? You know, the one you worked at like a champ and you got all that corporate karma points for? Well, mostly your manager. But who's counting that stuff anyways. Well he is. But anyways. Remember that Feature X?

Yup. Looks like no one's using it.

Well ok, hold on. You would've found out no one's been using it after 3 months of production exposure if you would've added some smart analytics in there to track usage.

But since that probably didn't happen, let's fast forward 3 more months. And let's (safely) assume people are kind of figuring out by now that no one's really using that Feature X thingy you built about 6 months ago.

But, But ...

But what?

Oh you mean, what about the 90% test coverage. The really detailed user stories? And all those corporate karma points you got?

Your manager shrugs it all off as he banks his paycheck and mumbles "well, software is not an exact science", at the next quarterly checkpoint.

And off you go into the next release planning cycle and off you go doing the same thing.

Let's not fast forward 6 more months. But let's assume Feature Y will suffer the same awful fast as its predecessor.

I wish this were science fiction.

But it isn't.

Welcome To The Exciting World Of (Forced) Product Management Failure.

The fundamental reason why most software products fail is in our face. It's always been there. Here it is:

Product decisions are manager-centric instead of being customer-centric.

Meaning, the only person using that Feature X will be your Product Manager when he demos it to the executive stakeholders. Period.

I don't care if your internal communication ooses "agile" here and "we love our customers" there.

I don't care if you estimated your stories with OCD accuracy and if you met those estimates with the tenacity of a chubby baby eating his first candy. Which by the way is unhealthy. But you know what I mean.

Not one ounce of the effort you poured into that feature matters if no one is using it.

You were efficient and you executed like a champ - or is it rockstar that's "in" these days? No matter.

Mr. VP ain't gonna take your efficiency to the bank and Ms. Shareholder ain't gonna upgrade her new private jet with your efficient test coverage. If you know what I mean.

Of course you do.

What Customers Want Is Effectiveness.

They want the right thing at the right time in the right format at the right price. They don't care if your code looks like the nastiest plate of rotten spaghetti or if you forget to unit test it.

Hey listen. Efficiency is good. Unit tests are good. Good patterns are good. But once again, they ain't putting food on the table or candy in that hungry baby's chubby belly. Which is unhealthy. I know. Moving on.

Next time your Product Manager hands you those shiny new user stories that are "validated" by the exec team and by that over-zealous steering committee, just ask about the customer. You know? The one that will eventually pay you? Money. Hopefully. One day. In the (near) future.

Lookk, just say something like, "Hey, Mr. Product Manager, did you run these user stories by any potential customers?". Then duck. Or run. Whatever, just say it.

Then go off and build the product that people actually want to pay you their hard-earned money in exchange for the priviledge of experiencing it. Build a product people want to share with their family, friends and co-workers. A product that they'll be almost afraid to tweet about just so they can hold on to it - just for a little longer, just for themselves - like a rare precious jewel.

You wish. I know.

And that's exactly it. Do wish for that. Strive for that. Strive for effectiveness and stop striving for efficiency.

P.S. What are you still doing reading this silly rant? Go off and build something ridiculously awesome.

Get all of our updates directly to your inbox.