socks-business-model-transformation
Insights

Cloud: the transformation from manufacturer to service provider in two weeks

By Jürg Borter & Roman Scheidegger &

How do you ace the transformation from product manufacturer to service company? What are the challenges and what role does the cloud play? Here are some answers using the example of a fictional sock manufacturer.

Insight in brief

  • Business model transformation from product to service
  • Cloud technology as change enabler
  • A working prototype in the cloud in just two weeks
2 diagonalestriche lightgray

Vision

A long-established sock company – let’s call it Zocks Ltd – has decided to embrace the challenge of digitalisation after decades of making and selling socks the traditional way. It will change its business model from product manufacturer to service company. Although the company used in this story is purely fictional, the challenge is real and it is one that affects many businesses. We are meeting the challenge head-on and showing how this transformation can be a success with the help of cloud technology. We want to create a ‘minimum viable product’ (MVP) as quickly as possible – within two weeks, to be precise. This MVP should have a modern mobile order form, an attractive back-office UI, and an intelligent ZocksBox that continuously transmits the fill status to the cloud.

2 diagonalestriche lightgray

Method

Everyone immediately buys into the idea of using cloud technology to implement the business model. But how do you develop a functional prototype in just two weeks? The process starts with the sock subscription business case, which is still somewhat vaguely formulated. Buzzwords such as Smart Box, IoT, cloud, and ‘Zocks as a service’ dominate the discussions.

We put ourselves in the customer’s shoes and ask what we would expect from this Zocks service. This allows us to create a shared vision of the business case and come up with a few scenarios that will be incorporated into the MVP. When determining the scope of the MVP, we select suitable components from the Azure Toolkit and apply them in a proof of concept (PoC). This allows us to quickly see how the different components will interact. We then attempt to link the components together and adapt the PoC components to the actual Zocks use case. This iterative approach enables us to reach smaller milestones quickly and regularly, which in turn helps us to create a functional prototype in just a short space of time.

For the hardware component of the ZocksBox, we get one of Zühlke’s electrical engineers on board, who provides us with a suitable evaluation board and a sensor. They also offer us support. Armed with the different business cases, we then ask one of our UX specialists to create a suitable frontend. After a few days, we have several options to choose from. It’s fun working together across different disciplines like this. 

Architecture

architecture-business-model-transformation
2 diagonalestriche lightgray

The application uses various components from the Azure cloud. By means of an optical sensor, the ZocksBox detects when socks are placed in the box. The Arduino is connected via wifi to IoT Hub in the Azure cloud and transmits the data. The backend subscribes to the events of IoT Hub and saves the data for all boxes in an SQL database. The frontend is deployed as a separate application and created using Angular. Azure DevOps is used for the source code management. A continuous deployment pipeline ensures that changes reach the customer immediately.

IoT Hub

IoT Hub serves as an interface between IoT devices and other cloud services, significantly reducing the amount of configuration work involved. A new device can be added in the Azure user interface. This process generates a connection string, which can then be used by different Azure libraries. The libraries are available for a wide range of platforms and programming languages. In conjunction with the Raspberry Pi online simulator, the configuration work is reduced to a simple copy and paste. The simulator enables us to connect the Raspberry Pi to the Spring Boot backend via IoT Hub in just half a day.

Although the Azure Device Provisioning Service is a very interesting feature, it is not used in this MVP. It is an additional component in IoT Hub that enables provisioning of a large number of devices. With this service, the devices can be configured automatically for IoT Hub and made available in the hub without user interaction. 

Raspberry-Pi-Azure-IoT-Online-Simulator
2 diagonalestriche lightgray

Backend

The backend is created using Spring Boot and deployed in an Azure app service. The backend accesses IoT Hub through an async client and processes the events. The database uses JPA and Hibernate for abstraction and communicates directly with the database service of the Azure cloud.

Frontend

The frontend is an Angular app, which provides a mobile-optimised page for the customer and a back office UI. The app communicates with the different REST endpoints that are provided by the backend.

2 diagonalestriche lightgray

Further expansion steps

As an alternative to Spring Boot as the backend, Azure Functions would make for an even more cloud-native approach. Azure Functions enables serverless architecture, and the functions run only in response to a ‘trigger’. It was deliberately excluded from the MVP, which is intended to show how a functional prototype can be created in the cloud within two weeks.

With the help of our team of technology, business, and UX experts, we have managed to develop a functional prototype in the cloud in just two weeks. This means there’s nothing else standing in the way of the fictional Zocks Ltd’s transformation from product manufacturer to a service company. The MVP was largely developed by Pascal Bischof, Pascal Wiesmann, and Aitor Gonzalez.

Scheidegger-Roman

Roman Scheidegger

Lead Architect

Having worked primarily as a software engineer, I have a strong background in the realm of C#, ASP.NET, TypeScript, and Angular. However, I am also happily navigating the Linux realm and have no issue writing a Python script or developing Ansible roles. As I had the chance to work as Quality Manager, Technical Project Manager, and System Engineers as well, I understand the different roles that need to work together to make up a winning team. Furthermore having worked in different Off-Shoring and Near-Sharing setups, I collected much experience of what is necessary for a distributed team to succeed.

roman.scheidegger@zuehlke.com +41315613919