≡ Menu

IT isn’t about Analysis and Programming Anymore

I’ve talked about the changing nature of IT in a previous article, but it’s amazing to me how fast some of the changes are taking place. Ten or twenty years ago the key skills for someone in IT were systems analysis and programming — mostly technical skills. But more recently the need for those skills in a typical IT shop has declined drastically. Now the key skills are project management and system integration — skills which are not nearly so technical.

Changes in the Way We Deal with Food
There’s a parallel to be drawn between IT and the way we get our food in the United States. A couple of hundred years ago we were a nation of farmers. Most people participated in the growing of their own food. They prepared the ground, they planted the seed, they tended the growing plants, and they harvested their food. Only then did they think about cooking and eating the food.

Now the farming process is performed by a small minority of people, mostly operating under the control of a few large corporations. We don’t participate in the growing any more — instead our focus is on shopping and cooking. It’s no longer important for the average person to know how to best prepare a field for a certain crop, to know how to correctly place seeds in the ground and then tend to them to best encourage their growth, or to know how to harvest the resulting crop to avoid damaging the food. Those skills have been outsourced.

Changes in the Way We Deal with Software
Forty years ago there was virtually no packaged software. The IT world was all about systems analysis and programming because everyone had to develop their own software. The IT organization determined business requirements, designed systems, and then built those systems from the ground up, writing every line of code. Since the software was all home grown, it was up to the IT organization to do systems integration as the systems were built. Part of every business requirements document was the detail on how the system needed to interface with other business systems.

Today most software comes from a few large companies. And just as the need for detailed information on farming has become less commonplace, the need for systems design and programming has moved from the everyday IT shop to those large companies like Google, Microsoft, Oracle, SAP and Apple which specialize in designing and building software. Your average IT shop does very little systems design and programming. In fact, I’m guessing that the majority of IT shops in small and medium-sized businesses do no programming at all — they just configure newly acquired software, adjust parameters to optimize the software to their operating environments, and use high-level systems tools to integrate systems into something that resembles a cohesive whole. You’ll still find IT systems design and programming in larger companies, but it’s mostly where those companies use home-grown software to provide a specialty product, service or process that differentiates them from their competition.

So just as we’ve gone from a nation of farmers to a nation of shoppers and cooks, our IT organizations have evolved from designers and programmers into a group of project managers and system integrators, with a few support people included to help resolve day-to-day issues.

What’s the Impact of This Change?
Looking back at the impact of the change in the food process on our lives, we see the following:

  • High volume farming is more efficient but the compromises made in high-volume farming lower the quality of the food. Because the time from crop to plate is longer, the high-volume farmers optimize their seed and harvesting around that longer time. You won’t find anyone who will tell you that corn bought at a store tastes as good as corn you just picked. Yes, the corn from the store is OK: it generally tastes like corn and it provides most of the nutrition that fresh corn provides. But you can’t beat fresh food grown without the compromises made on a high-volume farm. That’s why there’s a demand for local organic food — it brings back some of the advantages of growing your own: fresher food and fewer preservatives.
  • In an attempt to satisfy the majority of the market, the high-volume farmers focus on a more generic range of tastes. If you grow your own tomatoes, you can pick the seed that gives you exactly what you want: big tomato or small, just the right amount of acidity, the perfect texture. Your range of choices in store-bought tomatoes is much smaller.
  • With meats, the high-volume farms optimize their production in a way that is often inhumane. Chickens are confined to tiny cages for their entire lives. Cows and pigs are mistreated and sometimes tortured. All of this is hidden from us because we only see the finished product — not the process used in its production.

Now let’s look at these same issues in the evolution of an IT shop:

Large software companies are more efficient at creating products like inventory systems, customer relationship management systems, payroll systems, and accounting systems — essentially any software that’s large and complicated. A standard software product can be developed for any business process that’s relatively consistent across an industry. With software you don’t have the issue of preservatives, but you do have the problem of freshness. One of the compromises you’ll make in using off-the-shelf software is that any improvements or bug fixes will take longer to implement. You don’t have the option of choosing to use your IT resources to make an immediate improvement to the way that a particular screen works or the way that a particular process step is handled.

Trade-offs are made in developing a product that has to satisfy so many companies in so many different industries. An off-the-shelf software product is never as good for your individual company needs as a product that’s been custom built. Sure, it’s less expensive — it would cost a small fortune to develop a custom-built product, and most small and medium-sized companies can’t afford it. But you definitely have to compromise when you buy an off-the-shelf solution, even if you configure it for your company, and even if you tailor it (actually change the software code — not something I would recommend).

Is there a backlash? Is there a demand for “local organic software”? I haven’t seen it yet. Maybe I’m wrong, but U.S. businesses don’t seem to care about where their software comes from. And as for the compromises required to tailor the software to your exact needs, most companies don’t see enough cost/benefit to justify going the custom route. And the freshness issue is one that companies seem to live with.

And how about inhumanity? Much of the off-the-shelf software being used today was developed using inexpensive developer labor in other countries. Those developer jobs you no longer need in your business don’t just move to the software development companies — they move offshore. So while I haven’t heard stories about programmers being confined to tiny cages their entire lives …. No, wait a minute. Do cubicles qualify?

Comments on this entry are closed.

  • Ben de Haan January 22, 2011, 9:09 pm

    Thanks for another insightful post Harwell. I’ve been following your blog for around 12 months and it’s clear to me that you have a wealth of experience.

    When I first started out as a developer I found myself wanting to custom develop everything. Probably because I was keen to get my hands dirty writing code and was still getting my head around the basics.

    Nowadays when starting a project the first thing I do is look for a pre-built system, software or library to take care of the requirements fully or in part.

    As you mention systems have to be designed in a generic fashion; almost every project I deal with requires some form of custom development that a chosen generic system wont cater for.

    Open source software, software that includes a developer API or Web Services allow us to extend or ‘bolt on’ any custom features which really gives us the best of both worlds. We leverage the off the shelf software but still have the flexibility to design custom solutions.

    This is what I look for when developing / integrating systems.

    regards
    Ben

    • Harwell January 27, 2011, 1:07 pm

      Thanks for your comment, Ben. I agree that open source software gives us some good building blocks that are somewhere in between off-the-shelf and custom. By all means take advantage of it wherever you can. Just be careful to build on open source software (extend it) rather than to modify its base. Otherwise you’ll run into maintenance issues down the road when you try to upgrade your open source base to the latest version.