John Rymer has been doing research into middleware and application development for more than 25 years. I myself have also been active in the software...
What does the low-code software revolution mean for you?
The software branch regularly introduces new buzzwords. One that has increasingly emerged in recent years is low-code. Where does it originate from, what is it and in particular: what can it do for you?
The software industry considers itself to be very mature and high-tech, but is that a correct assumption? What industries actually are mature and hightech? Examples of high-tech and mature industries are the aerospace and automotive industries.
Or consider the construction of a skyscraper or a large bridge. Those all involve the manufacture of highly complex, yet reliable, end products. So why doesn’t this apply to software? For the most part, software production remains a very labor intensive and manual process. The design of a system is usually written down as plain text in large and unwieldy documents. These documents are then interpreted by programmers who try to capture the intended design within millions of lines of code. Afterwards everyone is surprised that the software doesn’t quite work as intended. Well I’d be surprised if it did.
CAD/CAM versus software development
Real high-tech industries do not operate in this way. They have been using CAD/CAM types of applications for many decades. Using CAD (Computer Aided Design) a digital model of the end product is made. This model has already been tested in every which way. For example, before a skyscraper is build we already know how it behaves in high wind situations as this has been tested in the CAD model. The same goes for end products in other high-tech industries. After the design has been finalized the CAD model is put into production using CAM (Computer Aided Manufacturing), the CAM production process is usually heavily automated. Because the end-product, whether it be a plane or a car, has already been tested during the CAD phase there won’t be any surprises with the finished product. Compare that with the software branch. It’s full of surprises after an end product is put into operation.
Unfortunately traditional development is not the only problem. Software has another annoying characteristic: the solution is inextricably linked with the chosen technology. For example: as soon as a programming language with which to develop the software with has been chosen you’ll be able to keep building upon your system. But it’s impossible to switch to a new programming language without completely starting all over again. New technologies keep arriving faster and faster, but software is unable to adept. It is unfortunate to have to conclude that the software industry is actually not very good at developing software. And with the increasing pace of with which technologies become available, has to rebuild more often.
How important is software for the business?
The digital transformation (another buzzword) is in full swing. But what does that actually mean? Just imagine that you have a cab company. How important is software for you? You have to be able to plan a booking, accept payment in the cab and you would like to have management information available. Or you are the owner of a hotel, where making bookings is also important. Just as checking in and out and planning the cleaning. For both companies software does not appear to be very important and it is a necessary evil (read: a cost item). Until suddenly companies such as Uber and Airbnb appeared on market; companies that approach things in a completely different way. The cab and the hotel themselves are no longer number one, this is now their own, unique software platform. However, it is not just the branch that experiences tremendous problems with such companies disrupting the market. Even the government has difficulty regulating these types of new companies.
The question now is: who is the Uber or Airbnb in your branch? Or do you want to fulfill that role yourself? The major impact that business software can have on the success of a company can no longer be ignored. Unfortunately, the main stumbling block remains the traditional way at which we develop software. And if that weren’t enough; IT specialists are incredibly scarce.
In Summary, we have the following problems: software development remains a very labour intense routine and good software developers are very scarce. Furthermore, due to the introduction of new technologies we have to repeatedly re-develop software to embrace the progress these new technologies bring to market. At the same time the business’s need for innovative software continues to increase. How do we resolve this?
Three software strategies
There are three strategies available to resolve the problems listed above:
- Nearshoring or offshoring. You outsource the programming acitivities to a country where this expertise is less scarce, probably at a lower hourly rate. You have to deal with an additional language and translation barrier and the core of the problem is not resolved. The programming remains traditional. In fact, at best your problem becomes less expensive.
- You purchase a software package. This transfers the problem to the package supplier, which also continues to work using traditional methods and you pay the costs of this. And how many package suppliers in the past have made the transition from DOS to Windows to web to mobile in a timely fashion? And could you easily transfer to the latest version of their software?
- Automate software development by deploying CAD/CAM based technology (model driven). In the software branch low-code development is the equivalent of CAD/CAM. This approach has proven itself in practice and an increase in productivity by a factor of 10 is very realistic. With some platforms it is also quite possible to automatically switch to a new technology. This is a complete revolution. Low-code is certainly quite domain specific. Some platforms specialize in the development of apps, others for building large ERP based solutions. This is comparable to an automobile factory, that is not able to construct an airplane. Finally low-code is accessible for the business itself. They can produce business models themselves and thereby take control of the software project.
What does low-code mean for the software branch itself?
For many years the software branch has had a disruptive impact on other branches. Administrative processes were automated and the roles of employees changed.
Nowadays low-code is disruptive for the software branch itself. The software branch is now actually split up into a group that develops low-code platforms (software factories) and a group that develops software solutions for the customer using these platforms.
You need technical IT specialists to build the low-code platforms. These people are extremely scarce, but we do not need very many of these platforms. Developing software solutions using a low-code platform is carried out by business IT specialists. These people are also scarce, but less so. Furthermore, their productivity increases by a factor of 10. This is excellent news for the business.
How can you incorporate low-code within your company?
You can apply low-code platforms in various ways, depending on your own circumstances and vision of the future. Here are four possibilities:
- You have a standard package that you cannot (decision from the parent company) or do not want to get rid of, but at the same time you want to improve your processes. In that case you can opt for a low-code platform with which you can develop apps to supplement your standard package. It is important to determine how many processes are involved. There are already companies with more than 10,000 apps, and that is not good for the future manageability.
- With an ERP low-code platform you can develop your own, distinctive business software. This was previously impossible. You can already achieve a great deal with just one person from the business and one IT employee. You can often use existing reference models and supplement them with your unique requirements. This does require a clear vision.
- This is the same as option 2, but then outsourced to a system integrator. There are an increasing number of IT service providers with knowledge of low-code platforms who can help you with your requirements. You are also in control of the project, and that requires vision.
- If you are basically satisfied with your package supplier, even if it can no longer keep pace with technological developments, then you can also propose to them to transfer to a low-code platform. There are low-code platform suppliers that specialize in supporting package suppliers. You remain a customer of your package supplier, but still profit from the benefits of low-code.
A fifth option that I would certainly not recommend is to completely ignore low-code. You can really make a difference for your business by making the right choice. Which option are you going to apply?