Tuesday, March 1, 2011

Cynical Developer Process


We as developers often realize when a specific enhancement, feature or project is a complete waste of time. Our reluctance is often based on a more clear understanding of the potential pitfalls and complexity surrounding a given feature. This reluctance is an underutilized indicator of the eventual time over-run, estimation, and success of a project. In order to leverage this key indicator I present the Cynical Development Process, in which a developers instincts about complexity are valued as highly as the sales-force desire to include a "trivial" enhancement, or even the customers desire for a feature laden rich application.

Chapter 1: Cynics are Psychics

Often when asked to add a feature to an application developers ask the question "Why?" This might seem counter-intuitive to their role, after all it's our job to say "How high?" rather than question the customer's instincts as to requirements. This is because as developers we often know things about an application that the sales force doesn't. On occasion this can be communicated as "Why? It's already there." or "Why? It's a stupid feature that will break other features." The point of our questions isn't to question the customer as such, after all, if said customer is willing to pay for a feature, who are we to turn down a paycheck? Rather the point is to wonder if the amount that the customer is paying for that feature is of a standard ratio to the complexity and amount of work to add that feature. Many features, while seemingly simple, have far reaching effect on other aspects of the program. A "simple" database change can often require not only a complete re-testing of a component, but may also multiply the testing and maintenance of that component for years to come. How many reports need to be rewritten when you add a payment type?

Lesson 1) We have all been a part of a well implemented project that failed. It happens. 

This is apparent in how many successful companies operate. The first question must be "Build the right 'it' rather than Build 'it' right"

Google's Patrick Copeland provides the following manifesto that all Cynical Developers can benefit from and I'm sure agree with:

the pretotyping manifesto
innovators beat ideas 
pretotypes beat productypes 
data beats opinions 
doing beats talking 
simple beats complex 
now beats later 
commitment beats committees



No comments:

Post a Comment