Innovation for Software Architects and Developers

How you as a developer can find innovation

Innovation for Software Architects and Developers
Innovation by Riccardo Annandale on Unsplash

In this article, I want to look for ways how you, as a developer, can help your company innovate. When you hear innovation, you think about a new product or service that your company can develop. You are right, as the term "innovation" comes from the Latin word innovate, meaning "to make something new." But that is not the type of innovation I want to discuss. Instead, I want to explain another kind of innovation that you, as a developer, can enable.

Where does innovation originate?

Before we talk about the possible sources of innovation, I want to look at business and IT alignment. Hold on, I know this is not a topic at the top of a developer's mind, but it is essential to understand to get to the context of innovation.

The Strategic Alignment model (Henderson and Venkatraman, 1999)

This model from Henderson and Venkatraman shows the various alignment aspects between the business and IT. Now, I want to use this model to show the possible origins of innovation. The model's left side is the business side, while the right is the IT side.

Business innovations originate from the left side, which indicates the business's domain. Innovations from the right side are IT innovations.

Let me show you two examples to explain the difference.

Innovation from the business side

I work for a client that creates systems that control the climate inside a greenhouse. If we look at what kind of innovations come from their business side, we see new growth models that improve the crop balance. For example, these models help grow tomatoes with better quality and greater yield while keeping the energy costs low.

Innovation from the IT side

The same client also uses other innovations that originate from the IT side — for example, using weather radar data. The system continuously retrieves and analyzes weather radar data. Using the radar data, they can close the windows of the greenhouse when there is a possible sign of a hail storm or intense precipitation.

Developers responsibility

As a developer, you are on the right side of the before shown model. You play a role in creating and executing the IT strategy. When you are a programmer, your responsibility is not only programming. It is also about identifying IT trends and technologies that can turn into innovations when you connect them to problems from the business side.


How can you bring IT innovations as a developer?

Photo by Fotis Fotopoulos on Unsplash

You, as a developer, are responsible for bringing in IT innovations. That does not mean jumping on every new programming language, library, framework, or IDE. It means that you can select new technology and apply it to bring value to your company.

Let me show you a couple of examples.

Automatically Connecting systems

As I said before, a client of mine creates a system for controlling the climate in a greenhouse. Sometimes, greenhouses are so big that we need more than one system to control the climate. A system engineer then must connect the systems. He joins them by entering the network configuration. He enters IP addresses, ports, and protocols in both systems. Coupling the systems took a long time and was error-prone.

The development team came up with a great solution. They already used Windows Communication Foundation (WCF) for internal communication. They added the UDP protocol. This meant that when control stations are in the same network, they discover each other and automatically connect.

So, the service engineer saves time and can install more systems. The client can sell more systems.

Is this innovation? Using WCF with UDP is not. But using this technique in the horticultural domain to automatically connect control stations is!

Single click demo installation

Another client of mine produces entertainment systems for airlines and cruise ships. Potential customers want a demonstration that shows how we can integrate the system into their IT infrastructure. Before, the installation and configuration of a demo system took much time. A software developer was necessary to troubleshoot.

The development team came up with an innovative solution. They transformed the solution and demo so that it runs in Docker containers. We created a docker-compose file that could spin up the entire demo environment in minutes. We sent the docker-compose file to the customer to install the demo system. They start the demo environment via a simple command: docker-compose up -f demo-environment.yaml.

The customers were impressed by the ease of installation. This resulted in more orders for my client.

Now is using Docker containers in combination with Docker compose innovation? No, Docker containers are a common way to distribute applications.

But being able to install and configure the demo environment in the IT infrastructure of the customer within minutes was real innovation!

Providing health information

The client that creates entertainment systems got a request from a health organization. This organization was active in Africa. The organization needed a way to provide health information to villages with no internet connection.

The entertainment product consisted of a hardware solution with a WIFI access point. When you connect your phone to the access point in an airplane, it shows a page with the available movies on the flight.

The development team restructured the entertainment product to serve PDF documents. These documents describe, for example, how to prevent cholera.

Was this innovation? For the people in the village, it was. They can now find and read health information on their mobile phone.

What do these innovations have in common?

If you carefully look at the three examples, you will see that they solve a specific problem using IT in the client’s domain. So to be able to come up with these solutions, you have to understand the customer’s issues in its domain.

With the example of the client in the horticultural domain, it helps to know what problems growers face. What takes the most time in his day-to-day business? Are there new IT trends or solutions that will decrease this time?

We also look at optimizing the other client’s solutions used in airplanes. One of the most critical things with planes is minimizing turnaround time. So now we are looking at ways to optimize loading the media content.

So the next time you hear about new technology, try to look further than how cool it is. Search for possibilities of how this technology can solve a specific problem in your customer’s domain!

If you have a cool example of how IT solved a customer's problem in an innovative way, let me know in the comments.

Thanks for reading.


More content at blog.devgenius.io.