Select Page

The Year is 2040 – Refactoring Legacy Systems

When building it is worth sparing a thought for those who will maintain the system and how the system will evolve seamlessly in the future.

If you work with technology, front or back end, you may have come across some systems that have evolved to become monsters in the company. In some case, when asked to modify some functionality, the developers break out in a sweat because they know they are going somewhere and do not know when, if at all, they will return.

There was a time when it was fashionable to create codes and put the business logic in triggers in the database (Cringe!)—the computer dark ages. Then we had several generations after, where more code was built upon this not so great foundation.

Fast-forward years later, you are asked to make some changes, and you attempt to make one change and discover that the effect ripples across many “hidden” entities which in turn affect the business processes.

So are we out of the woods? Well, a better question to ask is, do those legacy systems still exist? Unfortunately, they still exist, and the concept of “if it isn’t broken why fix it” is still alive and kicking.

To be clear, I speak of monolithic systems. I won’t name names, but they are everywhere, and these systems are used every day to develop even more monolithic systems.

These systems are hard to refracture or migrate, and the mere thoughts of analysing these send shivers down the developer’s spine.
It is not only the refactoring that is the problem; it is the fact that these products do not scale.

I know some companies have made an effort to say their monoliths are scalable and use all the buzz words, but the fact is, these products do not scale. Under the hood, they are mere monoliths.

Fast forward to the year 2040, the world is different; people rarely talk to each other. Everyone walks about virtually. You are sitting in your living room, and you think ah, I have run out of milk I will go to the shop. Instead of turning on your device and loading an application, you get into your virtual car and go to your virtual supermarket. You walk into the supermarket and see others there, the shops are all stacked nicely, and you pick a basket and pick put things in your basket and pay.

How is this possible? Well, you have a chip that uniquely identifies you. When you put your clothes on, it knows what clothes you have on because this is also tagged. When you go into the shop virtually, you appear as you because you are all chipped up and wired to a giant computer. Your chip is also linked to your bank, tax and all the internet of things.

Next, you hear the doorbell ring, a drone drops your delivery, yes the chip knows where you live so you do not even need to enter your address. Your little robot picks your delivery and unpacks.

So who are the developers? Are they humans or robots? What are the developers in 2040 thinking of what we are doing now? Code today is the legacy code of the future.

Big data – Online shopping technology


Yes, computer technology we cannot seem to do without it. Recent years have seen a massive increase in online activities including but not limited to, banking, insurance, bill management and payments, shopping, trading, news, music, electronic books, social media, online gaming, online film sites and many more. 

The recent surge in people staying at home showed pressure in some unexpected and some familiar places. Some governments were asking Netflix and companies alike to reduce the bandwidth usage to reduce the stress on the broadband services. I will save the broadband discussion for another day.

Ocado – A case study

Let us look at Ocado if you read the about page, and it states they are the world’s largest dedicated online supermarket and it has a quarter of a million(250,000) active customers (of which I am one) and 15% share of the UK online market.

So what happened then? Why are we getting the above page? Well, for one, when companies say they are online, it does not mean they are in the cloud. They could have their server room somewhere in their head office, and this clearly cannot scale as quickly as possible. Or they may be in the cloud but have implemented a monolithic application.

I am sure that we do not have 108,668 people queuing where I live. This number as you can see is half way. We started off with over 250,000.

So they introduce the online queuing system. The queuing system could also do with an update if you insist on using one. Take a ticket and leave your mobile phone number when there are three people ahead of you get a text to let you know you are almost next in line ( yes it can be a paid service). Let us not dwell on this; there are more pressing IT strategy issues as well as architectural issues.

IT & Data Strategy

Why are IT and data strategy essential in the cloud age? A company that wishes to grow and scale quickly must have a mandate which comes from the board of the company. Failing this all efforts from IT will be futile. For an online business, a cloud strategy is a must if you want to grow your business.

What is in the cloud?

Cloud service providers offer a wide range of services that allow your digital business assets to be secure and scale seamlessly. 

A lot of companies are afraid of putting their data in the cloud due mainly to security fears. I will touch briefly on some available services.

Security 

  • Cloud providers offer protection for protecting data, protecting application and protecting your infrastructure. 

 CDN 

  • Webpages can be cached at a location closest to you, allowing for low latency.

IAM 

  • Identity management allows you to create users, groups, roles and policies.

Durability 

  • Guarantees no loss of data so data will be there when you need it.

Availability 

  • Speed of access. Customers get fast and reliable access

Scalability 

  • Allows an application to meet demand seamlessly when required. In other words, to the end-user nothing changes.  
  • Resources automatically get added as volume increases. 
  • As the volume decreases, the resources are released.

Networking and elasticity in the cloud

In the example case, Ocado, auto-scaling and load balancing seems to be an issue.

Conclusion

How will I implement the Ocado online platform differently?

  1. Move it to the cloud if it is not already there. e.g. Amazon Web Service (AWS ), Google Cloud Platform (GCP) and Microsoft Azure.
  2. Use implement a scaling strategy this will allow your site to autoscale
  3. Partition the online service by location. Each user should be able to request a service base on their location. The calendar is not a global calendar so I am not sure what went wrong here.

It is pointless for a customer to wait on a queue for 6hrs and lose their place because it is their turn on the queue at 4 am and well it is sleep time. 

One thing is for sure it seems the whole country is in one queue.

Technology – Weather meets scheduling

To all those out there who view technological advancements as a hype. Let me introduce you to storm ciara. Ciara is the storm that battered the UK today. See article

To all those out there who view technological advancements as a hype. Let me introduce you to storm Ciara. Ciara is the storm that battered the UK today. See article

The effect was cancellations and more cancellations of trains, outdoor events, flights, etc.

Flight cancellations today at Heathrow T5.

I was set to take a flight at 14:30 (UK) today. Yesterday, yes yesterday, at 11 am or thereabout, I got a notification from BA saying my flight had been canceled. I had options to rebook which I did.

Now yesterday was sunny and dry and lovely. How wonderful that they were able to predict the exact time range the storm will hit the island and based on this reschedule/cancel affected flights.

A brief look into weather forecasting. Several models are used for weather forecasting with the aid of a supercomputer. Read a brief history here

Without meaningful insight into their operations, I can only assume that there was no army of schedulers rescheduling the flights and sending out emails. Perhaps someone to glance over but not entirely manual.

The display board immediately displays the cancellation message for the respective flights. Have you ever wondered what technology sits behind these? There are many out there. One of the technology in the ecosystem could be any message streaming application like Apache Kafka. What process exists to generate emails to all booked passengers in canceled flights? RPython, SQL batch job, Java? What email server is used to send out bulk emails to notify passengers? Outlook?

Technology is everywhere these days you might be forgiven for taking it all for granted.

So when next you are going about your daily routine see how technology is improving your quality of life.

Further reading:

To all those out there who view technological advancements as a hype. Let me introduce you to storm ciara. Ciara is the storm that battered the UK today. See article

The effect was cancellations and more cancellations of trains, outdoor events, flights etc.

Flight cancellations today at Heathrow T5.

I was set to take a flight at 14:30 (UK) today. Yesterday, yes yesterday, at 11am or there about, I got a notification from BA saying my flight had been cancelled. I had options to rebook which I did.

Now yesterday was sunny and dry and lovely. How wonderful that they were able to predict the exact time range the storm will hit the island and based on this reschedule/cancel affected flights.

A brief look into weather forecasting. Several models are used for weather forecasting with the aid of a super computer. Read a brief history here

Without meaningful insight into their operations, I can only assume that there was no army of schedulers rescheduling the flights and sending out emails. Perhaps someone to glance over but not entirely manual.

The display board immediately displays the cancellation message for the respective flights. Have you ever wondered what technology sits behind these? There are many out there. One of the technology in the ecosystem could be any message streaming application like Apache Kafka. What process exists to generate email to all booked passengers in cancelled flights? R, python, SQL batch job, Java? What email server is used to send out bulk email to notify passengers? Outlook?

Technology is every where these days you might be forgiven for taken it all for granted.

So when next you are going about your daily routine see how technology is improving your quality of life.

Further reading: