Thursday, December 6, 2007

Being a Craftsperson or a Laborer

I'm coming to realize that the world of software development is very similar to the world of construction. Given that particular comparison, it is obvious that it probably isn't a very compelling comparison, either.

There are a lot of vocational programmers out there, keeping the wheels of business information running. Business needs those legions of framers, plumbers, electricians, and drywallers to keep systems talking to each other. And lest I come off even more arrogant, some of them are amazingly good at what they do. But, just like in construction, these people are not, generally, paid to innovate and their working environment is never optimal.

Joel Spolsky said it well:
...if you’re not very, very careful when you graduate, you might find yourself working on in-house software, by accident, and let me tell you, it can drain the life out of you.

The next level comes in software companies around the world. Life is usually better here, though the developers may or may not be. The work is usually more interesting because, to a greater or lesser degree, innovation is what allows that business to stay in business. Unfortunately, most companies, over a period of time, lose the need and ability to innovate: The need because the rely on it being too expensive for other businesses to change from their software and the ability because process and formality overwhelms spontaneity and creativity.

These are your commercial builders. Their scale is usually larger, the complexity of the result is much greater. There are a few, very good people leading things up with a mass of...you got it, framers, plumbers, electricians, and drywallers.

Then there is the top tier. These are the best companies to work for. Innovation isn't something that is talked about in meetings as a "goal", then promptly followed up with enough crap to stifle any desire to do anything; innovation is the norm. Management exists to ensure that technologists get what they need to do their job. Customers look at the results and say "Wow." Businesses choose to change to them, because not changing will cost them more.

They are places where you can write about your job like this:
And with that, I'm going to get back to my "day job" project(s), which are sadly confidential. But they're so cool that if I did tell you about them, you'd be so overwhelmed that you'd have to go sit in one of our $5000-ish massage chairs, like the dude sitting next to me right now.

Not surprisingly, the percentage of really good people who work in the top tier is much higher. The top-tier survives at the top because of that talent (not just in development, mind you). These are the master craftsmen, brought in to do the finish work on one-of-a-kind structures around the world.

I love crafting software. I love software development. I am, however, getting tired of needing to unplug the blocked sewage because the company won't invest in the business it is in. I've heard and tried to buy into the argument "if you cut investment, you'll make more profit", but those companies with $5000-ish massage chairs are proving otherwise.

1 comment:

Eric said...

Of course, $5000 chairs can be a warning sign if you're working for a small startup.