From legacy to the cloud: how modern software development speeds you up
These days, software is indispensable for most organizations. When talking to our customers, we often hear that although their existing software is well-tested and has been running fine for years, their system has reached its maximum lifespan. Moreover, a large chunk of their IT budgets is needed to keep existing systems up and running. Now, modernizing a running system is a complex process. At a certain point, it is more efficient to switch to a new generation of technology, and to slowly migrate legacy software. However, what does “at a certain point” mean for your organization? In this article, I’ll show you when to switch to a new generation of technology, and how to reduce risks during a migration.
Modern software: what’s in it for me?
Let’s start by understanding when a software system is outdated. This obsolescence is partly technical: software grows more complex over time by definition. Over time, it becomes too expensive to adapt software. Sometimes software becomes so complex that trying to understand it causes headaches. What we also notice is that in the rapidly changing digital world, there are fewer and fewer people on the market who still master older technology. Technical amortisation is not exclusive to the digital world, of course, but if you’re not careful, software will be outdated quickly.
Aging can also be economic: new services are coming onto the market that you can no longer compete with. The world never stops turning; people expect new generations of digital technology that work well on mobile phones, or that just respond to their voice commands. The cloud accelerates innovation incredibly fast, which means that customers expect software to be always accessible, to work smoothly and to be fast even during peak traffic. Cloud technology Cloud vendors now have a proven track record and can guarantee the desired degree of availability.
Wouldn’t it be nice if your software could be easily adapted? If you can quickly develop an idea and implement a new feature? If said new feature can be immediately distributed to your customers to validate the new idea? With the evolution of the cloud, we now look very differently at software development than we did with technology of previous generations. Using cloud technology requires a smaller capital investment, as well. If it turns out that there’s a better idea, your organization will have learned this with a small investment.
How does this work? Faster innovation with cloud technology is made possible by a lower capital investment, where you only pay for what you actually use. Developers do not have to build their own components, but can reuse proven, safe and efficient components other developers have made. Think of technology that you had to acquire knowledge for until not so long ago, such as load balancers, web servers and DNS changes. In addition, with cloud technology you can deploy updates to software several times a day and quickly roll back if and when problems arise. You no longer have to design a complex solution far in advance, so you can start validation quickly.
Finally, cloud services make life easier for developers in your organization. Cloud vendors supply tools for every task you can think of. Example: with AWS, if you build apps for the Apple ecosystem, you can compile software in the cloud. Traditionally, developers had to buy Apple computers and build their software on those. Having computers around like this introduces headaches of its own. Think people tripping over power cords. To solve this, AWS has racked up actual Apple Minis, so developers no longer have these problems. Sometimes, developers spend an extra hour to get something to run by themselves. I know I’m guilty. Developer time is precious, though, and might be better spent elsewhere.
How do you notice that your organization is at risk?
There are several signs that indicate you need to update software on the short term. For example, software sometimes only works on a company network. By now, people expect that they can access the their stuff at any time, on their own mobiles, without messing around with VPNs. Store confidential information securely in the cloud, so it can be distributed. In addition, privacy legislation made giant strides by now. In legacy systems, the disposal of data is not always thorough enough by current standards. Furthermore, we increasingly see organizations making their own system choices outside the all-powerful IT department. People want to buy their software tools directly.
Keeping existing systems running is expensive, not only due to the growing complexity of this changing world, but also due to the scarcity of knowledge. It is therefore important to find out what the costs and benefits of the old system are. Finally, there are other reasons to switch, for example the end of support from a supplier or expiring maintenance contracts.
From legacy to modern software: start small, start now
We believe that the best way to rebuild software is with an incremental way of working. To reduce the impact on the current business of the organization, we start small and gradually transfer parts of the technology landscape. After all, the more experience about cloud within the organization, the more projects can be started that help you benefit from cloud technology.
In the meantime, keep the legacy system running. This often means that data is stored in two places for a while, so that business-critical data is not lost. Existing systems are more often monolithic and, before things can be migrated, need changes to make chunks of data available. Define in your organization which data is leading: that of the new cloud systems or of the legacy systems. The larger the portion that resides in the cloud, the easier it will be to start new experiments. This way your organization can start doing things that were previously possible for tech giants only.
When building software you have to choose what you want to be good at. You can choose to build everything yourself, including maintaining your own servers, for example. However, your organization is not going to make the difference with having their own servers; you would be better of just renting rackspace. Not so long ago, organizations had to manage their own server fleet, know everything about the management of operating systems and have all kinds of network knowledge, before they could only start building useful things. Only then, people could see your organization. The cloud vendor does that work for you now, so you can focus on your strengths.
Now your organization can focus on writing the application and lean on the cloud vendor for more technical matters. This requires less knowledge within the organization, which allows your development group to focus on what makes your organization unique.
How do we do this?
There is a range of flavours between running in the cloud completely and maintaining a system on your own metal. Wherever you currently are on this spectrum, it is always important to reduce risks with a gradual transition. The first step of the transition is to determine the migration strategy. The first strategy is just keeping the existing technology; this way there is little risk, but also little reward. The second strategy, moving existing technology to the cloud, brings more rewards. Determine which parts of your technology landscape can be moved and which parts can be phased out. Finally, the strategy that can have the most impact is to rebuild using managed cloud services. Read more about this spectrum of strategies in the whitepaper by Piet van Dongen, our colleague who has the remarkable talent to give serious subjects such as cloud migrations a funny twist.
Once you have taken the first steps in the cloud, it is important to get to know the hundreds of managed cloud services better. There is such a wide range of services that finding the right service is a competence in itself. This is precisely where Luminis can offer a helping hand: as a partner of the major cloud providers, we can find the right services and proactively propose them if we spot possible improvements for the organization. Bert Ertman tells more about how these cloud services work in his blogpost. In this day and age where building and maintaining software happen at the same time, we stay in the loop after building.
Without Luminis to help guide you, it is difficult to know what you can do with a cloud provider like AWS. AWS is the market leader because of their reliability and enormous range of product, but not because their cloud services are easy to grasp. Their cloud services have rather mysterious names and are introduced at such a pace that it is a day job to keep up with new developments. For example, say you have a lot of location data. How do you choose between AWS Kinesis, Timestream or just using Lambdas? In addition, the cloud bill is the only place where your organization gains complete insight into the costs, which can only be viewed after using services. We analyze which services entail excessive costs beforehand and, for example, migrate data to a different type of storage or use a different type of database if this can help save costs. This way we help your organization regains control of cloud costs. Finally, we analyse which usage we can predict: smart purchasing makes smart deals possible and the costs of the IT landscape will go down even further. Yet the ultimate goal is not to think cost-driven, but to be agile through technology. This makes IT fun again and we can make people happy with robust systems that make it possible to do what was previously impossible.