I’m moving up the software ladder. Nine months ago I was writing desktop applications for Factset; three months ago I was writing websites for Tagged; and now, I write Facebook applications for LOLApps. This trajectory predicts a soon to-be career in creating tiny web widgets and, inevitably, living off of single lines of code.
With every shift up the ladder, it seems like the pace kicks up a notch, and change comes about much more rapidly. The programmin’ is also a bit easier, but there are more technologies and layers of software to worry about, out here on the guzzlin’ edge of the web. And of course, the competition gets heavier and stiffer.
One thing which does stay constant, though, is how the companies are run, and how employees go about their days making software. From the companies I worked/am working for, engineers care about the same basic things: smart coworkers, interesting and fulfilling projects, work/life balance, and reasonable compensation. (1) These tasks should be acknowledged and consciously addressed by management; keep the engineers happy and they’ll happily go the extra distance to put that additional polish into their projects.
Sadly, most engineers make terrible managers of personnel. The leap from managing static computers that obey your every exact command to emotionally unstable, continuously demanding humans is a big one, and I get a sense a lot of engineering managers don’t particularly enjoy dealing with their subordinates. The relationship becomes either
- overmanaged – “Since I’m your manager, I’m obviously the better engineer, hence you’ll do exactly what I say and be my personal code monkey” – or
- undermanaged – “I’m too busy doing my own engineering projects, you go figure things out on your own and keep your observations to yourself”.
Frustrated, ignored, unvalued, or overworked, the once-idealistic engineer gives in to the alluring prospect of a new job with more money, more responsibility, and more management.
Maybe I’m asking for too much, maybe I’m just projecting my complaints to broad generalizations and reality is simply that most software companies (well, companies) are poorly managed. I’d imagine, then, those who are able to keep their people happy hold a pretty huge competitive advantage in hiring and retaining talent. If you were running one, wouldn’t that be a good investment?
- Sui says software guys are spoiled by all the perks we’ve come to expect out of our jobs; my only defense is that we do make a hefty chunk of change for our employers. (↩)
o rly?