Friday, May 07, 2004
Appropriate "cargo cult" coding?

After reading Jason's post about Cargo Cult programmers, it made me think about times when this may be appropriate. 

A friend of mine who owns a software company has approached me to do some work for him.  He has a project that needs a few new textboxs, a few elements moved on reports, etc.  I told him I would look at the code see what we can do. 

After looking at the code, it was obviously a cargo coder job.  Win forms app, access backend, inline sql, with a ton of replace(string,”'”,”''”) lines, etc.  Looking at the code I can't help but cringe, but thinking of the apps purpose really put me in perspective. 

This is a very small app used to manage an intramurals sports league.  Now this is not a typical app out of his shop, but definitely closer to what he sees on a daily basis then what I see.  And I can't help but think, is there a place for cargo cult coders? 

The apps that they work on are typically one or two user apps for smaller vertical companies.  This is the kind of app that a coder like me might make into 4 tiers of highly abstracted objects, modular ui, the whole nine yards.  At the end I could step back and look at my masterpiece, and send a bill probably 2 to 3 times that of the cargo cult coder that would do the same app in half the time. 

So now should I preach to him design patterns, the beauties of tiered environments, and really try to push my passion on to him?  I think I could, but boy would he be bored.  But to the same point, if I worked on smaller apps like this on a daily basis, I would be bored.  This begs the question, is there a distinct line between the passionate, and the business side, and is there value in this line?  I think so.  Of course any developer he works with could catch the bug and start reading everything Fowler, and more power to them, but then I think they would outgrow their role, still leaving the need for a new cargo cult coder.  Thoughts?