It’s Not About the Code

Since Lance Armstrong’s first autobiography, It’s Not About the Bike, which explored his journey as a promising young rider, through cancer and on to a Tour de France win, cyclists have bandied about the phrase and its opposite, “It is about the bike.”  When not about the bike, it might be about the journey, with the bike as a means to an end; when about the bike, it may be about the elegant beauty and simplicity of the machine, or still too, the bike may serve as a symbol of the freedom and athleticism of cycling.  In either case, they’re both right.

As software engineers, it’s often all about the code.  The code is usually what lured us into the profession.  It’s what we zealously protect in source code repositories; what we review for correctness; what we refactor for simplicity and even elegance.  We love new, and sometimes old, programming languages.  We love to talk about code, and we love to write code.

But, is it really all about the code?  Should we spend every moment of our working day coding, and only coding?  If so, we run the risk of being nothing more than a commodity coder, or “just a programmer,” and viewed, quite rightly, as simply a necessary evil to our employers.  With the commodity view of coding, it’s easy for an organization to outsource its software development.  When an organization wants only low-wage commodity coders, it’s also easy to proclaim a shortage of “qualified” candidates and lobby for H-1B reform

Except at the most junior levels, what does a software engineer or developer typically do?  Code, yes, but also analyze, design, architect, estimate, test, debug, mentor, write, teach, schedule, document, learn, coach, plan, prioritize, coordinate, evaluate, review, hire, … the list goes on.  Are these activities trivial and incidental to the purity of our calling, or an integral part of the art and science of software engineering?

Fortunately, many organizations do recognize the skills, both broad and deep, that are expected of their software engineers.  We engineers, in turn, need to ensure we’re more than simply coders.