Utility and Complexity

Utility

Where I teach, students have to take a few economics classes. A few have expressed WHY they have to take economics classes. Admittedly, I’m a part-time teacher so I don’t really know why specifically it’s in the curriculum. I do have an Economics degree so I do appreciate economics (although sometimes I think there are serious problems with modern economics, a topic for another day).

I think it’s important for anyone who works in IT to have a basic understanding of Economics because Economics is mostly about maximizing utility. The purpose for any economic system at a macroeconomic level is to maximize the happiness of its society. At a microeconomic level is is to maximize the utility for two firms engaging in a transaction. You’ll even hear from economists that two firms won’t engage in a transaction unless it increases the utility of both sides.

A firm should only invest in technology if it can provide utility. Of course, a firm should only invest in anything if it provides utility (either to itself or to society).

Any move to close the opportunity gap is a gain in utility. The more utility the more we close the opportunity gap.

Complexity

For many ages to come the old Adam will be so strong in us that everybody will need to do some work if he is to be contented. We shall do more things for ourselves than is usual with the rich to-day, only too glad to have small duties and tasks and routines. But beyond this, we shall endeavour to spread the bread thin on the butter-to make what work there is still to be done to be as widely shared as possible. Three-hour shifts or a fifteen-hour week may put off the problem for a great while. For three hours a day is quite enough to satisfy the old Adam in most of us!

-John Maynard Keynes (1930)

We’ve spent a lot of money over the past 20-30 years and sometimes I wonder if it was really worth it. People are more stressed out than ever and they’re working harder than ever. Where’s my 15 hour work week?

A few observations from experience:

  • Projects Failing - You’ll read vague statistics that say that 50-60% of IT projects fail. In my experience, a lot of IT projects don’t outright fail: They eventually “succeed” but over time and over budget. If you throw enough money at a problem it will eventually succeed.

  • Reverse-Utility - An organization works a certain way. Maybe it takes five people to do a job. A tech company says “implement our system and you’ll be more efficient and save money.” The organization spends $200,000 to implement the system. When the implementation is complete, you still have five people doing the job but now you have a sixth person you had to hire to manage the new system. You have literally made your organization less efficient even after spending money to do the opposite. This happens all of the time in IT. This is not a project that went over budget. This is a new system that’s permanently increased your organization’s expenses.

Even if a system does increase the utility of an organization, if can do so while introducing complexity. Software is complex and sometimes requires highly-paid IT workers to maintain their systems. So if you’re going to implement one of these systems you have to be sure that the return on investment is there. Even if you’re spending money to build a system and money to maintain that system, your overall costs should go down. They just don’t in a lot of situations.

Complexity is a vague term to describe and the definition changes depending on your domain. In my domain (data mining) complexity is synonymous with entropy or uncertainty. For our purposes, complexity means two things:

  • Uncertainty. When there are many unknowns in a situation. In information technology, uncertainty is usually associated with projects, because until a project is completed you do not 100% know if your organization will get to the outcome that the project predicts. Uncertainty can also happen when you implement a system but it doesn’t fully meet the requirements that were originally requested. If a system doesn’t do everything it was supposed to, and there’s still an opportunity gap, and we don’t know how we’re going to fill that remaining gap, then this is uncertainty.

  • Systems with many parts and lots of connections both within the system and with other systems. Complex systems are prone to breaking, require constant maintenance, and cost a lot of money on an ongoing basis. In my experience, most systems are complex because they involve linking multiple proprietary systems that do not conform to standards. I’ll write a separate article about this from a software perspective.

I like to draw complexity and utility on a two dimensional graph. Something like this:

As long as (in the long run) you’re moving right and down on this graph, you’re doing good work. Amazing how few IT projects actually manage to do this.

Summary

You implement systems to close the opportunity gap in an organization but sometimes, while the system does close that gap a bit, it introduces complexity that increases your costs. A lot of people forget that systems are supposed to make things simpler and more efficient, so if a new system doesn’t do this you have to question how and why these decisions are being made.

It’s amazing that in the hardware world, devices constantly become more efficient, but in the IT world (and in the software world) things become more complex and less efficient. There are are reasons (I think) for this, which I will explore in future articles.

Previous
Previous

IT Careers Guide

Next
Next

Why Technology?