Software is frozen business

Nov 10 2007

There's this idea that lean, successful organizations should focus entirely on their “core,” their primary reason for existence. But of course, even if you are, say, a news organization, you still need to make sure your people get paid, someone installs the desks and the workstations and the software, and all the myriad little details that go into a day’s work. So before long you have finance departments, IT departments, a person who takes care of travel arrangements, etc. These fall into the general category of “support” departments, and when the budget rubber hits the road, they also tend to get the shaft because they are considered cost centers not central to the business at hand. If you can outsource it, so much the better.

This is all fine and well if your core business truly operates independently of your support departments. If you can outsource most of your payroll and finance and save money and time, great. But if your business depends on having smart and well-trained accountants and analysts to do interesting (and legal) things with your cash, then getting into a vendor relationship where you spend part of your day working around their procedures and haggling with them over the terms of the contract is going to cost you more money over the long term. Because you’ll be hiring people to fill in the gaps and glue the two systems together. And this won't be a fun job, so you’ll be dealing with higher turnover costs.

Software engineering is one of those things that most organizations never gave any thought to. The larger organizations may have had a data processing department stuck somewhere, working on fairly well-defined behind-the-scenes processes. But software didn’t drive your day until we started installing terminals, soon to be replaced by PCs. At that point, software became central to you day. And here's the thing about software: It’s not a commodity. It’s not something general-purpose like a chair or desk. It doesn’t just become a part of your day: Its capabilities — what it makes easy and what it makes hard — determines what you do during the day and how you do it. Finished software is a business process that’s difficult to change.

Think about that for a minute. If you find that the way something your organization does is terribly inefficient, you can come up with a new way to do it and change it, unless it’s built into the software. Here’s a concrete example: The image below shows you part of the article editing interface in Saxotech Online, a web content management system used by many newspapers to run their web sites:

Saxotech story edit interface

You’re seeing that right. Saxotech is designed so that every paragraph of every story gets put into its own box. This runs counter to decades of word-processing interfaces, let alone centuries of experience with the written word.

The reason given for this design is that it allows the system to insert content between arbitrary paragraphs, say by putting an ad after paragraph 3. This seems legit until you realize that you can actually handle this task perfectly well inside the software itself, and you don't have to burden a human by making it part of the interface and thus making their day that much more difficult. Extra keystrokes, mouse clicks and time for each person who uses the system adds up very quickly when you look at it over a year: Never mind the additional performance hit you take by putting every paragraph into its own database row.

Your average blogger has a faster and cleaner content management system available to them than most online newspaper journalists. Do you wonder why blogging grows so quickly in popularity and capabilities? Do you wonder why bloggers can move faster and do more? Is this the kind of system that makes it easy to publish across multiple platforms?

We can’t change this, and the people who can have very little incentive to change it for us. Oh sure, we can bring it up at contract negotiations, but unless the vendor shares both our strategic and tactical concerns down to the very last employee, we’ll always be arguing over details and we’ll never be pleasantly surprised by innovation. You can reward innovation after the fact, but you can’t pay someone beforehand to deliver it to you. You can only hire the best people, encourage them and get out of their way.

That last statement is fairly well-worn. But we have to stop considering software engineers as something exotic, positions only software companies have to worry about filling. If your organization is based on information — meaning it produces or aggregates it in some way — there is no black box or silver bullet you can buy that will eliminate the need for smart people who know how to create or couple together your business processes — your software. You have to have good software engineers to help you shape the information and come up with innovative ways to deliver and present that information.

This is also why open-source software will remain a viable option for some time to come. What you lose in contractual support you gain in freedom of movement and a guaranteed level of innovation. Microsoft, no slouch in developer support itself, has made every effort to push forward its own free or nearly-free solutions. When you add the skills and institutional knowledge of passionate software engineers who have your strategic interests in mind, the results are amazing: Just look at sites like LJWorld, SavannahNow or IndyMoms.

With services like Amazon’s Elastic Compute Cloud you should think long and hard before insisting on managing your own NOC and worrying about SLAs. But note that you’ll still need someone to write the software. Someone to worry about your processes in excruciating detail. Someone to come up with new ways do do old things, and new things to offer your customers, and actually be able to implement those ideas.

I can’t think of anything more central to an organization that produces or distributes information.