Dear All Product Managers, You Need Version Control!
Recently, my team over at Richi have had a reoccurring problem in our development process; changing of product requirements. It doesn’t matter which development method you are using, Scrum, Kanban, Waterfall etc, everybody has experienced requirements changing over time, but that’s not the problem.
We have version control, right?
We have had to learn to embrace change, but how are these changes monitored ? For engineering, we use version control systems such as Subversion, Git, Perforce etc and designers have dedicated software such as Adobe Version Cue and PixelNovel Timeline. What about Product Managers ?
Countless times I have seen specs changed by a PM, meaning designs are updated by designers and changes implemented by engineers. Everything seems fine and dandy, except it’s not. Two months pass and more changes from the original spec are made, by this time everyone is rushing to finish development and get the product shipped, slowly forgetting about what or why these changes were made.
The same thing happens too often
Here is where my favourite part happens, the QA testing period before production push. On one magical day, the PM decides to start testing the prototype, and notices the product doesn’t have all the features they had asked for, or it’s not functioning according to “The Spec” !
What ? Shock horror ensues and a bug ticket is promptly created and assigned to the engineering team, vaguely saying the feature from “The Spec” is not as expected. Great, the PM thinks, and happily goes back to identifying more problems that diverge from “The Spec”.
Except, it’s not so great. The engineer gets an email alert about the bug ticket, suitably titled “Bug 9999: Missing feature X”. As the engineer’s eyes gaze upon this magnificent bug ticket, he starts to get a gut wrenching feeling and his heart slowly starts to sink. “WTF” passes his lips a few times, “this isn’t a bug ticket, it’s a change request!”.
Here’s the thought process for the engineer:
- Engineer: Is there even a spec for this ?
- Engineer: Let me check the spec.
- Engineer: No there isn’t, I must of missed something, let me check the other specs.
- Engineer: Still nothing, this really must be a change request, better raise the issue with the PM.
- PM: Of course it’s in the spec, check spec Z.
- Engineer: I checked spec Z, there is nothing there.
- PM: Oh wait, it’s in spec Y.
- Engineer: No, still can’t find it.
- PM: I found it ! It was in spec X all along.
- Engineer: Spec X ? Why is it there ? I’m working on spec Z functionality.
- PM: Oh, I didn’t think changing that spec would affect this spec.
- Engineer: My Spec X doesn’t have it, did you just add it to the spec ?
- PM: No, it was there from the beginning !
- Engineer: Well, why does mine not have it ?
- Engineer: Let’s just check the version history.
- PM: What do you mean version history ? This is it, 1 version, my version with my changes.
- Engineer: …
Ok, so this example is a little exaggerated, but we’ve all been there or had a similar situation. Is Microsoft Word revision control the best PMs can do ? As an industry, we must have better tools we can use to handle changing requests but keep engineering, design and product all happy at once ?
Part of the job for a PM is to manage to product and communications between different dependencies effectively, not forget what changes were made, or how the new changes affect other parts of the product.
Are there any solutions out there that work well equally for a startup as it would for a large corporation ? This post was not set out as a rant about Product Managers, they have a hard enough job as it is, but instead was born out of frustration. I’m hoping there solutions out there, but none that I have come across seem to fit the bill, so for now its back to the drawing board.