Implementors Are The Astronauts

cosmonaut

Hail the Implementor

So it’s down to the wire.  It’s launch day, your managers were barely able to control the unforeseen circumstances but got a launch window.  The operations crew has all of the release notes and their process, and you the developer are sitting there on site or on the phone, VPN’d in to execute the software that you wrote.

You are the implementor, and you are the astronaut of the software world.  Your ass is on the line, you lead the execution of the most important asset your company probably owns.  You got the specs from management, business and the architects and then you went built it and got it ready, and not when the launch comes only *you* can pilot the software.  If there’s a database problem, you fix it.  If there’s a software bug, you patch it and make it go.

In the control room you have your managers, architects, testers and business crew.  They sit in Mission Control.  But the implementors — mostly developers, some DBAs and other tech savy airmen, are the people with the know-how, and the ones that suffer when things break.

Corporations are missing a whole career path

I don’t know why it is that everyone thinks the next step after developer is architect.  It’s not.  The next step after being an artist is not art critic or art gallery owner, its just to become a better artist.

This year at a gig I heard a very narrow minded conversation about the hierarchy of a company — they had different levels of “architect.”  Usually as a developer in a corporate stack you can go two paths – architect or management.    The actual act of developing is considered a lesser quality.  Anyway, the conversation went on about “after lead developer you become junior architect, then, mid-level architect and finally senior architect.  After that is CIO level4 . . .” blah blah.  Bobcat Scout to Wolf Scout to Bear Scout to Junior Birdman.  Pay grades are not skill competency.  This team was also majorly subject to the Peter Principle we all know so well.

Being  Lead Developer — or a developer of any sort — means you make architectural decisions as well.  It is perhaps the most important step — the execution.  There are great architects out there; they look at the big direction of the company and say something like “Alfresco plus J2EE plus Guice plus Postgre SQL  plus Cassandra equals our future” or things like that.  Then comes the nasty little details.

For instance, we had set up a build server and ran into a brick wall with Mercurial versioning and 64 vs 32 bit plugin handling of Sonar.  Developers handled that.  On another project we had to write Hibernate overrides because the persistence libraries didn’t work so well with our database choice.  This didn’t come into notice until after we had deployed, due to another dependency on the servers.  I lost sleep that night (and I am a huge proponent of  having dev environments = production, but many have fought against that idea in the past).    On another project some architect mixed the newest Struts, PrimeFaces, JQuery and a really bad choice of Spring together.  Developers had to deal with that.

Corporations lose a ton of knowledge when they promote and do not reward the people who know how to do something, looking at management of that know how as more important.  Well, these day with PMing a separate career path, the management can’t manage development at all.

A Guy I Knew

I worked with a guy who had a PhD in Chemical Engineering and had massive command of the Java language.  He wrote beautifully designed libraries, and sat at a small desk in our developer area.  My feeling was, compared to the fast talking architect (one of the 10% hands on- paper types) he provided four times as much value, yet was paid less.  A manager lamented “too bad this guy doesn’t present well, he could move up.”  In the meantime he wrote the data libraries and sharding code that supported 100’s of developers, and led a small team to handle it.    They should have just gave him the title “architect” to pay him more and let him be one of the venerated hands-on architects, but they never did. I always will think of this guy as the model lead implementor.

When coaches coach, you still have to have quarterbacks, pitchers, goalies, and shortstops.   And it’s like that in software.  No one in pro sports wants to become a coach, they’d rather keep playing for as long as they can.  True developers and true implementors are like that: the challenge of creativity and giving to the world never dies in them.

The implementor is the astronaut, the brave one, the creative one.  I guess as implementors we all architect, manage, and requirement drill — we do it all no matter how they try to divide the labor.  The industry can try to get around this with labels and pay grads, but the reality sits true: implementors are the astronauts.

Comments are closed.