Developer sneaks - who's really controlling the cooking?
Agile development gives a lot of ownership to the developers. I think this is great thing from a product management point of view. One of the developers here at NewsGator recently spoke about this as the developer acting as an "independent contractor" and needing to really understand what the "customer acceptance" criteria really was. For me, that's the perfect mindset - the developer is working to satisfy me (as a proxy for the customer).
I'm not creative enough to make the "sneak" part of this story relate to grilling, but let's look at a hypothetical situation where you've hired an independent contractor to build a deck on your house. Let's assume you had a rough agreement on what you wanted done, and one day, the contractor said, "By the way, I put a little something extra into your deck."
This is pretty much the equivalent of what I call a "developer sneak". Now, in most cases, I would prefer to hear about these things before they are done. But life can move pretty quickly, and developers may prototype something while they are working and get a good result. So the real question is how to harness the good from this and avoid the bad.
From a product management point of view, I think three things are very important here:
- Communicate with the team about what is driving the release - if this is a date-driven release, there really is no room for sneaks
- Always ask "what are the risks" and "what extra testing will be needed" and be willing to say "No" if the answers are not acceptable
- Be clear about the point in the release where no "sneak" will be accepted
In an agile environment, a lot of trust and a focus on the overall benefit are needed. I would certainly never want to hear my contractor say, "I added a jacuzzi and a wet bar to your deck and that cost you an extra $20,000." But it would be great to hear, "I had some no-slip paint, so I went ahead and put some on the steps - no extra charge!"


