Do we expect developers to write code differently than they live their lives?

by Codewiz51 March 13, 2010 09:16

As a principal software developer/analyst at my company, I am beginning to draw some conclusions on observations that started thirty years ago when I worked at Celanese Chemical Company: people do not work any differently than they live their lives.

The corollary in this day and age is that software developers do not work differently than they run their lives.  If you are impetuous and implusive in life, your code will reflect that underlying trait of your life.  (I am not saying this is detrimental to the immediate quaity of your work, but it does affect the long term survivability of your code.)

I can give a lot of anecdotal evidence that supports my case, but anecdotal evidence doesn't actually have anything to do with fact.  It simply justifies our decision making process.  No, what I am talking about goes a lot deeper.  Assuming you can actually code (and I mean really code), how you live your life determines the type of code you write.  Are you mean, arrogant or self centered?  These traits will be reflected in your code: lack of caring about the future (just get it to work), no crafting of extensibility (no spec calls for it), no comments or derisive comments (I wasn't an english major, I write code).  You get the picture.  Often coders like to hide behind comments like "it's the schedule", "no money/budget", cruddy work environment.  But mostly, the code we write reflects us, and will continue to reflect our attitudes no matter what environment we work in.

So, reading a lot of manuals, blog posts and becomming very technically proficient can lead to a wonderful life as a developer - for a while.  But to move your craft to the next level, think about how you live your life and how it might affect your code.

As an example, I'll offer up a sacrificial project I wrote for a company that I did not care for (nor was I ever a respected member of their team.)  I architected a component so that it could easily be extended with plug-ins.  I documented the simple interface that needed to be implemented by any plug-in component.  The component was derided and my work was denigrated, yet the component still lives today.  And it has several dozen plug-ins written by a number of developers.  I coded the project the way I install new wiring in my house: new circuit run to the fuse box, ground fault detection, lots of dirty work, no short cuts that might cause a fire.  Not because I like to brag about thorough work, I do it because I don't want anyone to get hurt or my house to burn down.

Comments are closed

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen | Modified by Mooglegiant

Disclaimer

This blog represents my personal hobby, observations and views. It does not represent the views of my employer, clients, especially my wife, children, in-laws, clergy, the dog, the cats or my daughter's horse. In fact, I am not even sure it represents my views when I take the time to reread postings.

© Copyright 2008-2011