Tuesday, 18 May 2010

A New World

We all know them, the many problems and challenges that we have to face when it comes to IT. In this article, I will not only give you advice about how to deal with those issues, but I will also explain how a good IT-system can influence the entire way a company is organized and the effects it can have on employees and company strategy.

Let's start this article with the simple, but astonishing fact that the computer is the only device in our lives, of which we find it normal when it does not work correctly. Personally, I don't find this normal at all, but then again, I have a degree in Computer Science. But should it really be normal for people without such expertise? Let's face it, the vast majority of companies does not have IT as its core business. Should they be satisfied with systems that periodically fail, because "that's just what computers do"? Absolutely not. Every person and every organization should have systems that do whatever they want, whenever they want it. And by "they", I mean the people, of course, not the systems...

So, what are those common challenges that almost every organization faces? Well, the list is not exactly small:

  • The presence of old systems, that are very difficult to develop and manage.
  • Different systems for different tasks, that do not integrate well. Data has to be manually transferred from one system to another.
  • Systems that don't do exactly what you want.
  • Systems that are too complex and provide way more options than you will ever use.
  • Systems that only work inside your company building, causing you to be trapped inside that building. Moving to another (larger) building will be very expensive in this case.
  • Computers that get slower and slower as time passes.
  • Complex network and server infrastructure, that takes a lot of effort to maintain.
  • The fact that nobody within your organization exactly knows what systems and software packages there are and how they work.
  • And, of course, the single biggest problem that follows from all the others: it just costs too much money.
I have worked at a big financial institution for three years. The IT-infrastructure there had many problems. There were literally thousands of different systems, all connecting to one another in some way. If new functionality had to be developed, not one, but dozens of systems had to be modified and a lot of new systems had to be built in order to transfer information between systems correctly.

Nobody in the company knew the global architecture of the infrastructure and the rate in which systems were added and things became even more complex was only accelerating. There were a lot of ancient systems from the '70s, systems sometimes took more than a minute to respond to a mouse-click, the balance between functionality and complexity was nowhere to be found and IT-costs were in the hundreds of millions per year.

This example is only applicable to very large companies, of course, but I'm sure everyone recognizes at least a few of the problems listed. And if not, my compliments! You're doing a great job. You still might want to read on, though, because solving problems is not the only subject of this article!

The Problem
So what causes all of these problems? There are different causes, of course, but they all come down to one single thing: complexity. When systems become too complex, problems are never far away. This applies to every aspect of IT: From personal computers filled with a lot of different programs and tools to server and network infrastructures that look more like a spider web than a hierarchical tree. Things shouldn't be complex, they should be simple.

Simplicity is prerequisite for reliability

- Edsger W. Dijkstra -

The next obvious question then is: What causes this complexity? Here, I am going to make a distinction between small and large companies.

For large (multinational) companies, the answer is basically twofold. First, they have been doing IT for a long time, probably ever since IT became available for businesses (between 1960 and 1970). Therefore, they just have a lot of "old stuff" running. Investing in new functionality is always more interesting than upgrading old systems, after all, why would you pay for something that you already have and that already runs? To avoid getting stuck in a maze of old stuff, of course, but tell that to the managers who have to explain to their superiors what they have done with their budgets.

The other answer lies in the fact that big companies often have to deal with takeovers. They acquire another company, or get acquired themselves. Every time two companies merge, their IT infrastructures have to merge too, something that never happens in an optimal and complete way and always adds to the complexity of the whole, without offering new functionality.

At the big financial institution I have seen these two causes happen over and over again. It's no one's fault, it's just difficult to avoid and almost impossible to get out of.

Smaller companies fortunately do not have these major causes of concern. They are flexible and dynamic and can easily adapt to new situations. Then why is it that they also have to face so many difficulties? I think this is caused by the fear of change. Let me explain. When a company starts, it usually has nothing more than some Word-documents, Excel-sheets and maybe an accounting program. This is fine. But when the company grows and starts to hire people, their IT needs also grow. And herein lies the problem. Those growing needs are often fulfilled by adding components (software / hardware) to the existing infrastructure. New components are added, but the old ones remain. After all, they work, so let's not touch them, IT is difficult enough as it is!

Let's compare this to a company building. If a company has a small building that becomes too small, then what do they do? Keep building extensions to the building every time they need more space? Of course not. They move to a larger building, that is optimally suited to handle a larger workforce. The same is true for cars, when a car becomes too small, you buy a bigger one. Then why do we stick to our old systems, when there is something better available? Why keep adding and adding to an increasingly complex infrastructure, without ever taking the time to evaluate the entire IT-environment and move to an entirely new system that is perfectly suited to your company as it is today? So my advice is: Keep the number of different systems as low as possible. Try to find systems that provide a solution to all of your needs, not just your new needs and replace your old systems with the new ones, before you get stuck. This may be a rather big investment in both money and effort, but trust me, it will pay itself back rather sooner than later.

A few years ago, I was involved in an IT innovation project of a furniture store. It was a rather small company, with only a few employees, so you would expect a simple IT-infrastructure, but no, they too had a large amount of systems for every part of their business process. A system to store customers, a system to manage their suppliers, a system for making a sale to a customer, a system for placing an order at a supplier, etc. The employees were spending a large portion of their day transferring data from one system to the other. They even reserved hours for "keeping the systems up-to-date".

At the end of the project, we had created a single system that integrated everything. You could manage your customers and suppliers and if you made a sale to a customer, then automatically an order was placed at the corresponding supplier, if the item was out of stock. The different phases of a customer order ("new", "ordered at the supplier", "delivered by the supplier", "sent to the customer" and "paid by the customer"), were taken care of by the sytem. You could always see the status of an order and the only thing that the employees had to do, was clicking a button to move the order to the next phase. The complexity of the company's infrastructure went down tremendously, the level of control that the store had over its processes increased and the company owner was very happy. The only complaint I ever heard came from the employees: they were now bored, because they had nothing to do anymore...

Simplicity is the ultimate sophistication

- Leonardo Da Vinci -

A final cause of problems that applies to both large and small organizations, is the fact that they often choose off-the-shelf software packages, instead of custom-made software. Off-the-shelf software might be easier and even cheaper at first, but it has a number of drawbacks:

  • It never does exactly what you need it to do. After all, the manufacturer didn't know your organization when they created it.
  • Because of this, many manufacturers put a lot of options and functionality in these packages, so that every customer will find something that they need. But nobody ever uses all functionality offered by the software, making it unnecessary complex.
  • You probably need more than one off-the-shelf software package, because none of them provide everything you need. This means more complexity and more manual labour if the different packages do not integrate and you have to transfer data from one system to the other by hand.
  • And the most important drawback: You are stuck with what the manufacturer gives you. If your needs grow, the software cannot adapt. Of course, you can request changes from the manufacturer, but will they develop them? And when will they be ready?
Of course, opting for custom-made software also has its risks. You will have to find a software development company that closely works together with you, analyzes your organization and its processes carefully and provides regular feedback during the development process. Basically, a development company that not only works for you, but also with you. This might seem a bit scary, the idea of inventing your "own" software. But don't worry. Good software development companies will help you make the right choices and decisions. And the rewards will be well worth it: A system that optimally suits your business, integrates all of your processes and provides everything you need.

The Solution
In this section, I can give you advice on how to better manage your IT, but first ask yourself: do you really want to manage IT? Is that part of your core business? Don't you want a system that just works, without you having to do anything for it?

"Is that possible?", I hear you ask. And the answer is: "Yes, it is!" With the "Software-as-a-Service"-method, your system is hosted in a professional datacenter and is accessed through the Internet via Cloud Computing. You and your employees can access it from anywhere in the world, such as your company building, at home, on business-trips, etc. This does not only provide a lot of flexibility, but it takes away all the technical issues from you organization. No longer will you have to manage any servers, infrastructure, software-packages, updates, etc. Backups of your data are automatically taken care of and all of your IT-related risks will go away. Your organization will rely on proven technology and a professional infrastructure, rather than on a self-composed environment. Your IT-costs will also be lower, because you will no longer have to invest in your own infrastructure and other IT-related resources. The only thing that you need, are computers with an Internet connection. I do recommend buying some of those USB-UMTS dongles if you have a small company, or a backup Internet connection if you have a large company, to avoid the risk of losing your Internet connection.

Currently, a lot of companies provide Software-as-a-Service (SaaS) packages. You pay a fee and your system will be available to you. One of the most well-known examples is Exact Online, an online accounting package, which is a lot easier to use than its predecessor, which had to be installed manually on every computer on which you wanted to use it. But still, they are all off-the-shelf packages, that come with the same disadvantages as the old-fashioned packages that were not SaaS-based. We discussed these disadvantages in the previous section.

But... If we combine SaaS with custom-made software, then things get really interesting. Imagine, one system that integrates and automates your entire organization. A system that does everything that you want and only what you want. A system that requires no maintenance and is available always and everywhere. A system that takes care of your data with regular backups and a secure environment. A system that combines the strengths of both SaaS and custom-made software. Now we are approaching perfection.

Company organization
What I am about to discuss with you now, is my vision on organizations altogether. I must warn you, this vision is quite progressive. If you think that it is a little too far away for your organization, then don't worry. I think there is plenty of room for advancement in your organization based on the previous sections. Once you have reached that point, you can always decide to take it one step further, or not.

When one used to ask the question, "What is a company?", you would primarily think about a company building, with the company logo on it, maybe the director and of course its people. I don't share this traditional vision of a building with people. In my vision, it is a system with people and those people are a little different. The system, of course, is a system described in the previous section, hosted in a datacenter, available through the Internet and automating and integrating all of the company's processes.

But what does this mean for the people? Do they still have the same job? Well, some do. The point is, since the system takes care of everything that can be automated, including business processes, the employees only have to implement steps in the business processes that cannot be automated. Things that need human input, human interaction, human creativity, even human emotion. Not only does this take away a lot of "boring" work, such as manual data processing and process management, the employees will probably also like their work better, because they can add more of their own creativity and personality to the company's business. A company may need less employees, because they don't need IT-personnel, process managers and people who do work that can be automated anymore, but the employees that remain, will be true craftsmen (and craftswomen) with a passion for their jobs and the ability to express that passion.

When art critics get together, they talk about Form and Structure and Meaning
When artists get together, they talk about where you can buy cheap turpentine

- Pablo Picasso -

Another thing that will change for the employees, is that they are no longer bound to time, place or building. The system can be accessed from anywhere in the world, at all times, so the employees will not necessarily have to be at the same location. For some companies, it just works better when the employees are all together in the same room, so maybe those companies will take less advantage of this aspect, but it still adds flexibility when it is needed. Also, when the company decides to move to another building, the transition will be very smooth, because the system will never go down. The employees will simply get a new desk with a computer with Internet access.

This entire approach also fits the trend that an increasing number of companies and organizations do not even have a building, for example Business Networking Companies, that provide networking gatherings for business owners. They often just rent a restaurant or a cafe for the event and have no building of their own. Their employees work from home or from rented flexoffices. For international companies, the advantages are obvious: a system that can be accessed from every company location in the world.

You could say that the system "holds" the status, the processes, the data and therefore the essence of the company. It takes up a central place in the company and the employees just do what the system tells them to do. They are therefore completely expendable. This is so not true! Yes, the system holds all of those things and takes up a central place in the company, but because the employees are now true craftsmen with passion and experience, they become even more important! No system can replace human vision and ingenuity. It is the task of the system to make sure that the employees can do their job, by taking away bureaucracy and overhead and creating an optimally efficient organization in which the employees only have productive tasks that are directly related to the core business of the company.

An obvious question to ask is: "What if the company processes change?" A human process manager can easily adapt, a system cannot. This is a very valid question, but let me ask another one: "Do process managers adapt to new company processes? Or do company processes change because of a new process manager?" More often than not, processes change when leadership changes. A new process manager will have to prove to the person who hired him that he or she has something to add and what easier way to do this than to change some processes and claim improvement?

Ask yourself, when reorganizations solve problems, then why do we have to reorganize again in a few years? When the company processes are automated by the system, it brings stability and continuity to the organization.

Movement is often confused with progress

- Richard Donovan -

Yet another question that I would like to ask is: "Does the process really change? Or does the product change?"

Remember the big financial institution? When I was an employee there, every now and then, a new insurance product was created and every time, new systems and new processes were invented to realize the new product. A new system to buy the new insurance, a new process that specified what would happen when a customer would claim damage, a new system to implement that new process and on top of that, a whole bunch of systems that had nothing to do with the new product, but were only there to make sure that the new systems could communicate with the old systems.

In this example, the process was tightly connected to the product. Every time the product changed, the process had to change. This is a very bad thing in a business where you know that products change often and keep changing. So, when designing the system that automates processes, you must carefully consider the architecture of your processes. They should always leave room for future product changes. This is a difficult task, but a good software development company will help you with this. In my opinion, creating systems is more than just programming. Finally, it should be clear that a good system that takes the aforementioned issues into consideration, can never be realized with off-the-shelf software packages. You really have to know the company, before you can define its processes.

But yes, in some cases, even when taking the above issues into account, company processes change and the system is not prepared. But don't worry! It is a custom-made system, remember? It can always be adapted to your wishes, unlike off-the-shelf packages. It might take some time (probably some weeks), but the system is probably not the only element of the organization that has to be adapted to the new process, so, there is time. Also, changing processes are often the result of a changing company strategy and you should always take time for those things. An important guideline is: The system must facilitate the company, but may never restrict it in any way.

I hope that, after reading this article, you have an idea of what IT can do for you and your organization. I hope that you understand that IT can definitely work for you, instead of against you. IT shouldn't be difficult and shouldn't cause problems, it should take problems and risks away and let you focus on your core business, whatever that may be.

If I have to give you one single advice, then that would be: "Don't be afraid of change." The IT-strategy suggested in this article is probably very different from what you know and it might take some time to get used to, but remember that it is focused on removing difficulties, not adding them.

When it comes to the future, there are three kinds of people:
those who make it happen, those who want it to happen and those who wonder what has happened

- X-Bit Labs -

If you have a small or medium-sized company and you think that this is way too big and expensive for you, it is probably not. If you can reduce your IT-workforce by just 1, you're already saving money! And if you have a large company and you think that your company is way too complex to transfer to such a new system, again, it is probably not. Besides, if you can save money, then it is worth checking out, isn't it? Also, spending less money is not the only financial consequence of this IT-strategy. The other one is predictability. You will never have unexpected IT-costs again, because the technology is maintained by your system provider.

Just imagine how your company could look like. No more overhead, no more technological issues, crafty employees that work with passion and a system that just works. Always and everywhere.

The future is here. It's just not widely distributed yet.

- William Gibson -

And if you think that this article is a way of generating more business for my company, it is actually just the other way around. I founded my company because of all the issues I mentioned, because I saw that IT could be done so much better. Call me an idealist, but I still believe in a perfect world.