[lug] Career advice

Nate Duehr nate at natetech.com
Sun Jan 3 12:20:03 MST 2010

On Jan 1, 2010, at 11:16 AM, Steve Rogers wrote:

> A problem with some "software architects" is that they come to believe that they're designing the system and the programmers are just implementing it.  Computer programming is a design activity.  A good software architect should understand coding and testing, and be good at them, though she might not do much of it on a particular project.  One who never codes is likely to lose touch with the realities.

It's a scope/responsibilities problem... Architects should design frameworks that programmers should/must follow from empirical study of where a particular company/group's code usually falls down.  Examples would be coding design standards, requirements for test suites, etc.  All things that employers rarely want to pay for because they (think they) can't measure the improvements brought about by such practices.

Software as a business is seriously flawed in many ways still.  When was the last time you saw a programmer who's monetary incentives were tied to whether or not they released buggy software?  When was the last time a bug in software cost you or your company serious money and the vendor didn't care?  Neither of these things happened at SMALL software companies in the 80's... release something buggy/nasty and your tiny company went under, thus fixing both incentives.

Giant software houses and multi-national companies writing code these days cushion/delay the inevitable for so long, the next version is out (with new bugs) before people have a chance to dump the company and their software.  That and vendor-lock-in techniques... companies can't easily move from one 1/2 million dollar fully-integrated business system to another...

But in the end, it's all about incentives.  The company incentives and disincentives are usually set up wrong to push software quality forward, if you ask me.  A new (just as buggy but in new ways) version of Software X makes the seller just as much money as a non-buggy one.  People refuse to "vote with their dollar", and the industry as a whole spends more time making sure people are "locked in" and can't vote with their dollars than just fixing their code.  

Linux and Open Source being the opposite -- everyone can (and does) change the code without an architect (in the vast majority of projects out there) involved other than in the very largest (and not surprisingly to me, the most successful) projects, and the quality suffers from the opposite side of the spectrum.

Nate Duehr
nate at natetech.com


More information about the LUG mailing list