It is said that “done is better than perfect” and this saying may be applicable in many situations, however, in Sii extra effort pays off. Such an approach is commonly represented by our engineers, who thanks to their experience and expert knowledge are able to propose modifications and improvements in order to provide clients with the best solutions. Sii experts often go beyond the customer’s specific requirements, creating better products than originally planned. In this article, Sii engineers share examples of such projects.
Sii Poland has at least three reasons to celebrate this year. On the occasion of its 16th birthday, the company exceeded a record revenue of PLN 1 billion and a number of 6,000 employees. A huge part of them are engineers including .NET, C#, Java, Python, C++, or Front-end developers. As part of the projects carried out by the Digital Competency Center, they develop modern software, create solutions in the area of RPA, cloud technologies, digital customer service, e-commerce, and support customers in the field of digital transformation.
Among the unit’s projects one can mention, for example, the creation of a production planning system for Ingenico Group, a French manufacturer of payment terminals; license and subscription management system for Alinea Egmont, a leader in innovative digital solutions in the education sector; transformation of a monolithic backend into a modern microservice platform in the cloud for Gyldendal, an innovative publishing house in Norway or creation of a modern surveying system for Leica Geosystems AG, a global corporation supporting measurement specialists around the world. These are only a few examples showing the diversity of projects in which Sii engineers are involved, creating interdisciplinary teams with complementary competencies. Many of them involve .NET and Fullstack developers.
Engineers from Digital Competency Canter talked about proactivity and searching for the best possible solutions, which bring tangible benefits to the clients and great satisfaction to themselves.
Changes that exceed customer’s expectations
The best example of the internal initiative of Sii engineers is the web application used for analyzing and presenting hospital data. The result of their work was a product that is useful and easier to operate and maintain than initially assumed. The beneficiary of the application was the client’s department which is a part of an international concern that provides innovative software and advisory services in the area of health care.
The concept of introducing a new technological solution in the form of a previously unplanned web application was an idea of one of the engineers long before its implementation.
– Being involved in the project for the client for nearly 2.5 years, I had the opportunity to learn very well the functions provided by our application. Its task was, among others, to estimate and analyze the cost of patients’ stay in hospital – says Bartosz Kaczorowski, Software Engineer at Sii. – Knowing that modern features based on new technologies hadn’t been implemented in the project for a few years, I increasingly talked to the team about potential future directions. Together, we wanted to minimize the time it takes to deliver a new version of the software to hospitals, reduce the time spent by developers on support for system implementation, and make software updates independent of the rights of the user logged on Windows – he adds.
The first step of the development team was to prepare a prototype of the web version of File Inspector. To increase the attractiveness of the solution, the engineers decided to introduce additional features, such as integration with a new data validation service and the ability to view the history of operations performed on the application.
The next step was to prepare a detailed work breakdown plan for the project, on the basis of which a project time estimate could be developed. Thanks to it, the project manager was able to evaluate the costs and the developers had a better vision of the project in general. After the approval of the previously mentioned plan, work started intensively. Together with the tech leader, two-week sprints were prepared, during which the tasks described in the work division plan were carried out step by step. As a result, the tech leader, manager, and the entire team had a clear picture of the stage at which the project was.
– As an additional initiative before the presentation, we decided to use Azure environment to create our application and present it in front of the customer – recalls Bartosz Kaczorowski. Before the demonstration, we gathered again all the information about the defects of the old version and confronted it with our solution, which was the answer to the existing problems. Eventually, we managed to prepare a demo application, which was presented to the client. The client was able to participate in the demonstration not only as an observer, but was also able to use the application itself thanks to placing it in the Azure environment. Our customer was impressed with the work done, including the short time of implementation, delivery of all features of the old application and implementation of new solutions – he adds.
The client decided to develop the application according to our recommendations. One of the changes was the replacement of RabbitMQ technology by gRPC, so there was no need to install additional software on the client’s side. The main advantage of the application is its flexibility, thanks to client-server architecture (i.e. installation of everything on the server, while clients can use the browser). Currently, a version for testing in a production environment has been released.
Hybrid application and migration from Angular JS to Angular
A completely different case was a project executed for the producer of innovative audio devices conducting activity in over 50 countries worldwide. Sii engineers worked on the application used for centralization and management of a large amount of audio equipment. New technologies and activities improving the quality of application code were selected, thanks to which it was possible to increase its security and efficiency, and at the stage of work – to improve the effectiveness of project team activities.
– I started working for a client 3 years ago. Back then, the application was written in AngularJS. When my team and I started our cooperation, the framework was in the end-of-life phase, that is, it supported security patches, but without new functionalities – says Vadim Peczyński, Senior Software Engineer at Sii. When we joined the project, Angular was implementing support for new versions of TypeScript language, improving performance, and creating an Ivy engine (full support since version 9). From the very beginning, we wanted to use new technologies and strong typing to improve the quality of the application code. Often NPM packages were no longer supported and people involved in their development focused on package versions available for the then-new Angular 7.
When we started the work, the biggest problem in the migration was the need to configure our own Webpack script. The basic configuration is not very complicated, and many examples can be found on the Internet, but installing the appropriate plugins and creating an optimal script for two frameworks is no longer an easy task. Besides just bundling the application, in the smallest possible packages, the priority was also to be able to run unit tests in both frameworks simultaneously. Preparing the Webpack script took us by far the most time.
The next step was to change the architecture of the application and install angular-hybrid packages that enabled the two frameworks to “work together”. A new main.ts file was also introduced, which was crucial to initialize the new Angular 9 in the application. The whole process of preparing the hybrid application, taking into account various trials and errors, took about 2 months. At the same time, the team was involved in creating new functionalities.
– First, the application went through the verification of our test team. Then it was successfully implemented in production. Although this is not the complete end of our work – the migration process is still ongoing, we have brought the application to a new level, increasing its security and implementing new solutions. The development of the hybrid application allows us to gradually rewrite components and services, improve, change and use new versions of packages, and at the same time to work on tasks from the backlog. Thanks to this solution we can analyze every piece of code and improve it, which rarely happens when working with an already mature application. Our efficiency has also increased significantly, first thanks to a better knowledge of the code, and second thanks to the support of tools such as Intellisense and Angular Language Service. Creating a hybrid application was, in my opinion, a step in the right direction. It required a lot of effort from us, but we released the application on time, and working on new solutions gave us a lot of satisfaction. We are ready for more challenges – adds Vadim Peczyński.
The initiative and pro-activity bring mutual benefits – not only business ones for the client but also these less measurable, though equally important – for the engineers. Sii specialists can develop their skills and gain satisfaction from searching for and implementing original improvements, often on a huge scale. So is the extra effort worth it? Definitely! At Sii we value the engagement of each, and every one of the 280-person community of .NET developers.