There is an odd little trope in the world of business IT systems in the shape of home-grown systems that are built by people who are rank-amateurs. These systems offer a curious value to the business – often enormous, untapped value to the business – but also carry some weird risk points.
A business that is now well established having been founded 20 years ago can be a pretty large business. An oddity about IT functions within businesses is that very small businesses almost never have an IT function, but very large businesses almost always do. There is a common development point (a bit like an “IT adolescence”) where the business crosses from one mode to the other – a common way to do this these days is to bring in some sort of outsourced IT.
We live now in an era where IT is more accessible, but I would say also less creative. Modern businesses are much more amenable to buying systems (there are more of them, they are much cheaper and easier to buy than before), but they don’t integrate them. Older businesses, when thinking about their IT needs 10-20 years ago were more inclined to build something from scratch.
These in-house bespoke systems are now quite weird, because they were built by people with no IT experience, but they are to all intents and purposes actual, proper software. The reason why this is relevant today is that these systems developed one or two decades ago are still operationally important within the business.
One of the huge advantages of bespoke software is that, like a bespoke suit, it is custom made and fit to the business. When bought from a specialist provider, that provider will come into the business, learn about what the business does and what needs it has, and design a specific solution to fit. These days we tend to do this by having a core off-the-shelf system, with bespoke parts that are then customised as a type of hybrid compromise.
When this was done by an amateur inside the business, the person who started it was likely very au fait with the operational imperatives of the business. These efforts were usually self-started and homegrown, meaning that usually the individual would find innovate their own solution to a perceived business need. They also would have “lived in” the business for a long time. As a result, we’d find a solution where the “business analyst” part was superb, but the construction quality was relatively poor. Compare that to having an external company come in and do it – you end up with average-to-good analysis and average-to-good construction.
You can factor in survivorship bias here – we’re only talking about systems that are still in use. Anything worse that superb analysis on the homegrown system, it would not be used. Anything worse that average-to-good analysis or construction on the external provider’s system, that also would not be used.
Now that we have a 20-year-old legacy system, built by a rank amateur, we have a number of problems.
Firstly, the construction of these systems tends to be horrible. That tends to make them unmaintainable, especially if they are built on a platform that has become as unfashionable as Global Hypercolor t-shirts. (They still make PowerBuilder, for example.) There are also usually manifest issues in things like not having separated live and development environments, issues around planned change management, etc.
Secondly, the integration methods tend to be equally horrible. Usually, the only way that you can integrate with them is to talk directly to the database – effectively resulting in two parallel systems, with no way of controlling change in the original.