Our client is a leader in managing construction projects in Switzerland for over 30 years. Their services include system development, project support, process customization, training and interfaces. They have 400 customers in Switzerland with over 3,000 users.
The client developed an app that is used in the process of building construction. People who use it get information about all stages of the construction process, from acquiring legal documents to groundwork. It can also be used in existing buildings to locate and fix problems in construction. When the problem is reported, the company sends a person to see it, adds the problem to the software app, and reports it, so that someone can come and fix it.
The desktop application we developed was used for different finance calculations, accounting, tender information, communications, and administration forms.
This application is more than 30 years old. When customers use outdated legacy systems like this one, it is not visually appealing, and it doesn’t offer a modern interface. Its performance is limited - sometimes it is too slow or too complex for customers to use. It was built in visual basic, and it was getting and storing information on an SQL server.
The company recognized the need for experienced SQL developers who could help them improve the app, and our Marko Likic and Petar Bjelic were valuable experts in this process.
They wanted to modernize the app and make it more user-friendly, with a new and improved UI. The essential part of the process was the migration of the old forms from visual basic to .NET.
Because they operate in Switzerland, another challenge we faced was a need for app customization for different purposes in each of the country’s cantons. The cantons have different legal regulations, so we had to adjust the app functionalities accordingly.
Aside from the app, the company also wanted to improve their processes and way of work. They were organized in such a way that they relied too much on one person and his expertise. If he gets sick or takes a vacation, it presents a serious risk for the company because he cannot delegate his tasks to others.
They needed assistance in developing procedures that would allow knowledge distribution to the other team members and a way of working that is a consistent set of procedures.
To deal with this challenge, we proposed the SCRUM methodology. Implementation of this methodology has already started, and it shows results.
We implemented new SQL objects on the improved, modern software in order to allow new .NET modules to operate.
Our two teams dealt with problems by fixing existing bugs in the old interface while adding new objects and moving old parts of the app to the new version, part by part. If the client clicks on some form and it doesn’t work, we fix it and also improve the app performance, so it works faster.
The company lacked predefined steps in everyday procedures. We solved this by applying the Scrum methodology so that they can plan, perform and evaluate their tasks in a more organized manner.
In Scrum, we have time intervals called sprints, in which we need to complete given tasks. At first, one sprint was a week-long, and now it is two weeks. These predefined time intervals help us plan our work.
This methodology precisely defines ceremonies that we have daily or weekly. We showed our Swiss team how it works in practice – at the beginning of each sprint, we have planning where we plan what we are going to do in the next two weeks. Each task has a user story, which we further define and discuss on the refinement meeting which we have once or twice per week. Every day we have a daily meeting to check status.
At the end of each sprint, we conduct a review and present results, usually to someone from the top management. At the end of each sprint, we have a retrospective where we sum up the good and bad points of tasks and discuss what can be done better or differently in the future.
In order to work more efficiently in Scrum, we use a table we call Artefact. It has got an interface where we can see all the tasks which are done or in progress, so we always know what the status of the task is. We check the table daily to see and estimate the user stories by giving them specific points. This way we can estimate the overall velocity of task-solving at the end of each sprint.
This system stores all the necessary information on the task progress so we can always come back and check it, especially when we need to implement something new in our work. We guided our client in this process so that they could clearly understand the importance of procedures.
The improved app we developed is more intuitive, and easier to navigate with more up-to-date UI. Its performance is better-the app is faster, while the process of migration is still ongoing. Their end customers can navigate the app faster and get their work done in a more efficient way, using different devices.
When it comes to Scrum methodology we introduced to this team, we got positive feedback. They now have a clear way of working, and most important, all team members get the information they need to solve the task. Unequal distribution of knowledge and reliance on only one person was too big of a risk and implementation of this methodology is one way of mitigating this risk.
When we started working with the Swiss team, we went through the onboarding process and strict training in solving problems. At first, we were given easier and simpler tasks and later we dived into more complex problems.
The client needed an expert team that could understand their software and its specific architecture. It was important that we clearly understand how these modules function, which we did.
After we finished onboarding, we started working using SCRUM methodology in the way described above.