Programming Analytics

A feed of interesting tidbits from IT, software engineering, business intelligence, and videogaming.

I spend a lot of time working on software architecture.  All day long I come up with new ideas, investigate them, discard them, and research other peoples’ solutions to compare them to mine.  But, no matter how many programming blogs I read, no matter how many new design docs I write, I won’t be successful if my team doesn’t enjoy their jobs.

“Happiness” is a fad that Dilbert used to make light of back in the ’90s.  He would endlessly pour scorn on those poor saps who had to manage “Office Fun Squads!”  … and of course he was right.  If you try to make your jobs enjoyable by hiring an HR person and giving them the responsibility for “fun”, it won’t work.

Given that enjoyment is elastic, let me comment on the fun that I know about: the satisfaction of good programming.  Software development is an art, and there is no one right way to write software.  So give your programmers the freedom to be creative.  Get rid of the petty nuisances that distract from their day to day tasks.  Tell them when they can spend extra time polishing a program, and when they need to wrap something up and deliver (“Real Artists Ship”).  

You can’t force creativity.  If you keep your programmers chained to a desk grinding out software, it won’t work.  If you burden them with lots of day to day nuisances, they won’t produce.  Remember, it’s not the mountain in front of you that slows you down, it’s the pebble in your shoe.