Geutebrück is an international company with 50 years of experience and growth. It has subsidiaries and partners on five continents and satisfies customers in over 70 countries. Geutebrück is a provider of unique, intelligent, and user-friendly video security software solutions and the associated hardware.
In 2017 Geutebrück recognized the need to modernize their software to better satisfy the needs of the current and prospective customers. The solution they had at that time worked only on-premises base, had monolithic structure, and required a lot of effort to update existing and expand new features. That version of the software was slow, and it lacked some newly developed features that were being introduced into the market.
Geutebrück wanted to build a modern solution with multiple features clients can choose from. The new software would enable clients more flexibility and better modularity while keeping recognizable Geutebrück quality and reliability. The price for the client would be on a subscription basis, depending on the number of features they chose.
To develop this new software application, Geutebrück needed to strengthen their team of developers. They were searching for reliable software engineering partners and that is when our cooperation started.
The idea was for the new video surveillance software to run as a service in order to provide easier selection of wanted features, seamless updates, fixes and upscaling. Also, a new solution was supposed to provide a distributed environment which was not available before. Because of this, the new software was supposed to run from Cloud. This was especially useful for the clients that needed this system to monitor store chains, or multiple objects that needed to be coordinated.
Video surveillance features our developers worked on:
Face recognition integration is a process of selection and identifying human faces from live feeds and comparing them with stored identities to get results of recognizing process.
Federated Identity Management is used for collecting and managing information about people of interest. These people of interest are usually V.I.P. customers or people associated with theft or other delicts that should be paid attention to. In accordance with the regulations, information related to the people of interest is deleted after a month.
Data Replication in a Distributed Environment is used to replicate and distribute information to other stores or objects. Other objects in the chain would get notification when a person of interest appears in one of the stores.
The new system has many advantages:
Before starting developing software, our development team had to do in-depth research on the technologies we could use. They did this by creating proof of concept solutions and comparing pros and cons to enable selection process.
When new technologies were chosen, we began with the software development phase. Some of the chosen technologies were new at the time, so we had an additional challenge. We had to solve most of the technology-related issues with no or small support from the community because it was usually undeveloped.
Since Geutebrück doesn’t primarily operate as a software development company, they needed help with some more advanced concepts regarding software development. Our colleagues at Geutebrück were not accustomed to the project management procedures required for more complex software development projects.
That’s why our team also helped with the organization of the development process.
We put emphasis on the significance of issue tracking in pursuing a better quality of software and faster communication between teams located in different locations. We proposed using Issue Management with Jira since it is much easier and faster to track issues and possible malfunction in the system.
Since Geutebrück didn’t have CI (Continuous Integration) cycles, our team helped introduce the full CI cycle in their work. CI cycle is the practice of automating the integration of code changes from multiple contributors into a single software. It allows developers to frequently merge code changes into a central repository where tests are run.
Another challenge our team had was the extremely slow internet connection in Australia. This is not a typical problem software developers face. However, it is common in Australia, so our team had to take this into account while creating viable and fast solutions.
Testing is a necessary but time-consuming part of every product development. That’s why our team proposed automated testing. That is a test software that basically acts like a person and can be run multiple times without human interaction. This helps especially in regression testing. This system is great for testing repetitive features that should be tested multiple times.
Because of this, we were able to test many functions faster and create a more reliable product. This was not only saving time, but also money because it is much cheaper to find and fix an issue in the development phase than when it’s in the customer’s hands.