Your style is not an excuse to suck

Recently I had to explain to some recruiters why a degree in computer science or EE didn’t always equate to a better developer.  In the course of that conversation I fleshed out a reasonable comparison between Academic and “Agile” developers.  Please note, I am incredibly aware how contrived this example is:

Let’s make believe we are a marketing company.  A customer comes to us and asks us for some help in an ad he wants to release around Christmas.  It’s supposed to showcase some Santa figure, and they need help making all of the backdrop.

An Academic style programmer would use this as an opportunity to research the history of Santa and try to determine the most appropriate tree depending on the climate, era, and Country of origin.  He wouldn’t be sufficiently happy with fake snow, so he would recommend that we made our own.  Not just the snow but the snow blower too.  After all, having total control is what it’s all about.  During the process of determining a layout he would realize that the trees he wanted couldn’t be grown in the time frame he needed… only an import from overseas would do.  He would also be concerned that when Santa was filmed, and in order to have true accuracy, they must reduce the temperature of the room to -2.  This also, of course, is the only way to keep the snow from melting.  He generally will cost you 10x more than you wanted to spend, and will take you 3-4x longer than you want to finish.  I, the customer, really just wanted to look at Santa after all.

On the flip side, an “agile” developer would think to himself… GOTTA BE FIRST TO MARKET OR ELSE! OMGWTF! DOESNTEVERYONEKNOWTHAT!!! *  So, he would look around the room and grab a plastic palm tree and inflate it.  Real snow or even fake snow requires planning or time, which is of course the enemy.  He instead goes outside (since I am in AZ) and takes handful upon handful of sand into the room and throws it on the floor.  Since he got sweaty, that’s how he knows he accomplished a bunch.  With all this free time he has now (being done and all) he is going to spend the rest of the time trying to come up with the newest coolest way to show off who Santa really is.  So, he goes to the blogosphere to pick up new buzzwords that satisfy his world view.  In this case he hears about how cool not having rules are… so he comes back and dresses Santa in blue jeans and a t-shirt that reeks of F&*$ you.  He, generally, won’t charge you at all (open source is the ONLY way to go).  Which is good because his work is sloppy, poorly conceived, and has barely any resemblance of what you actually were looking to do.  Good news though, he will likely be done first.

In this case (again, incredibly contrived) neither developer demonstrated the fruit of what their side of the coin can offer.  Instead they have taken dogma as being the only way to accomplish the task.  Neither is willing to meet in the middle, and neither of them actually accomplish anything of value.  If I took away some of the angst (and yes, I am aware of my bitterness with developers on both sides) what we might see is that there is something valuable to BOTH ways.  Neither programming background / style  has an exclusive domain in this realm.  For every good agile development project I can show you ones that are not.  For every good academic projects that are good, I can show you ones that are not.

If either side was pressed on why they couldn’t complete the task, they would each give you entirely different excuses.  Not enough time, no clear direction, no appreciation for creativity, the idea wasn’t cool enough, blahblahblah.  They are all still excuses at the end of the day.  At the end of the day both developers are hired to produce real tangible results.  If you can do that and be agile, great.  If you can do that and be academic, great.  If you can’t do that at all… shut up.

-A

* First to market is just an excuse.  I would love for someone to show me how Google was “first to market” as a search engine.  Wasn’t Yahoo out? Wasn’t MSN out?  Was Microsoft the first computer to market?  Was Apple?  Notice how in all of these cases a generally superior product beat out over the existing competitors.  Heck, even the Wii is a great example of this.  While two of the tech giants fought to be “first to market”, Nintendo simply produced a better (and different) product.  This is not an always true statement however, and being out on the market first can bear fruit…. but having a good solid product is almost always better.