ENG
- Services
- Unser Serviceportfolio
Wir erwecken Ihre digitale Produktvision zum Leben: Vom testbaren Prototypen bis zur fertigen Softwarelösung.
- Kooperationsmodelle
Kooperationsmodelle passend zu Ihren Bedürfnissen: Komplette Nearshoring Teams, deutschsprachige Experten vor Ort mit Nearshoring-Teams oder gemischte Teams mit unseren Partnern.
- Arbeitsweise
Durch enge Zusammenarbeit mit Ihrem Unternehmen schaffen wir maßgeschneiderte Lösungen, die auf Ihre Anforderungen abgestimmt sind und zu nachhaltigen Ergebnissen führen.
- Unser Serviceportfolio
- Über uns
- Wer wir sind
Wir sind ein Full-Service Nearshoring-Anbieter für digitale Softwareprodukte, ein perfekter Partner mit deutschsprachigen Experten vor Ort, Ihre Business-Anforderungen stets im Blick
- Unser Team
Das ProductDock Team ist mit modernen Technologien und Tools vertraut und setzt seit 15 Jahren zusammen mit namhaften Firmen erfolgreiche Projekte um.
- Unsere Standorte
Wir sind ProductDock, ein Full-Service Nearshoring-Anbieter für Softwareprodukte mit Hauptsitz in Berlin und Entwicklungs-Hubs in Lissabon, Novi Sad, Banja Luka und Doboj.
- Wozu Nearshoring
Wir kombinieren Nearshore- und Fachwissen vor Ort, um Sie während Ihrer gesamten digitalen Produktreise optimal zu unterstützen. Lassen Sie uns Ihr Business gemeinsam auf das nächste digitale Level anheben.
- Wer wir sind
- Unser Leistungen
- Karriere
- Arbeiten bei ProductDock
Unser Fokus liegt auf der Förderung von Teamarbeit, Kreativität und Empowerment innerhalb unseres Teams von über 120 talentierten Tech-Experten.
- Offene Stellen
Begeistert es dich, an spannenden Projekten mitzuwirken und zu sehen, wie dein Einsatz zu erfolgreichen Ergebnissen führt? Dann bist du bei uns richtig.
- Info Guide für Kandidaten
Wie suchen wir unsere Crew-Mitglieder aus? Wir sehen dich als Teil unserer Crew und erklären gerne unseren Auswahlprozess.
- Arbeiten bei ProductDock
- Newsroom
- News
Folgen Sie unseren neuesten Updates und Veröffentlichungen, damit Sie stets über die aktuellsten Entwicklungen von ProductDock informiert sind.
- Events
Vertiefen Sie Ihr Wissen, indem Sie sich mit Gleichgesinnten vernetzen und an unseren nächsten Veranstaltungen Erfahrungen mit Experten austauschen.
- News
- Blog
- Kontakt
BMS CS KBM: Codebase revitalization.
BMS Corporate Solutions GmbH oversees the corporate customer segment of Germany’s cooperative banks.
In collaboration with their architect, we identified and solved issues together, contributing to improving the codebase’s quality.
About.
What does the client do? What industry are they in?
BMS Corporate Solutions GmbH – a subsidiary of Atruvia AG and BMS Consulting GmbH – is responsible for the entire corporate customer segment of the cooperative banks in Germany.
Initial situation.
What was the initial state?
We joined the already established team, which consisted of two frontend and two backend developers, two business analysts, two architects, a scrum master, and a product owner. We additionally brought two frontend and two backend developers.
The tech stack consists of Angular (frontend) and Java Spring (backend).
We were responsible for the part that deals with organizing appointments/meetings of bank employees and their customers.
We implemented services from the previous team into our ownership.
Since BMS CS nurtures an Agile methodology, our team has been working within the Scrum framework for two years now.
Problem space.
What problem did we want to solve?
BMS-CS inherited a less-than-ideal codebase from another company. We partnered with their architect, identifying and solving issues together, to enhance the overall health of the codebase.
The first problem we identified concerned the speed and reliability of the existing applications and services. With response times often exceeding five seconds and numerous unsuccessful requests, their reliability was significantly compromised.
While BMS-CS and ProductDock already employed Agile methodologies, the real challenge lay in growing together as a single Scrum team. Our goal was to optimize our collaboration to deliver maximum value for our customer.
Solution.
What did we do? What technologies did we use? How long did it take?
To solve the first problem, we needed to identify tech issues. Since we are just a small part of a very large company, we could not change the tech stack, but that was all right since the tech stack was not the problem.
We solved the problem with slow response time by changing the way the backend authorizes frontend requests. It took us several sprints to make this possible, and it was an effort of the whole team.
Refactoring most of the client interface is another improvement we made, and it was a gradual process. To enhance the quality of the codebase, we adopted several clean code practices such as SOLID principles, avoiding redundant code (DRY), and eliminating unnecessary features (YAGNI).
Also, we implemented the Onion architecture in some parts of the backend system to improve the system’s testability, maintainability, and dependability.
Furthermore, we introduced unit tests as a must, which led to average test coverage of 70%. Automatic linting was applied in all our artifacts, which is the usual practice at ProductDock.
We adopted an agile mindset as a team, incorporating the Scrum process into our daily operations. For instance, this meant preparation for every refinement event, ensuring all team members understood the objectives of each feature under discussion. Our daily meetings became concise and productive, and planning events were used optimally.
Over the course of two years, our team increased in size a lot. So, to make our daily work more efficient and have more focus on specific business contexts, we eventually split into two teams.
Currently, our team consists of the following roles:
Team members from the client side include a product owner, Scrum master, QA tester, business analyst, a frontend developer, and a backend developer.
As for the ProductDock members, they include three full-stack developers, one backend developer, and one frontend developer.
Results.
What was the outcome? What did we learn?
In the end, all the things we implemented greatly increased customer satisfaction. Moreover, we were able to drastically reduce the number of reported bugs and ease up the development process, which enabled us to onboard new team members much easier in terms of initial project setup.
All the changes we introduced increased our team’s confidence and enabled us now to be responsible for making architectural decisions as well.
The outcome of our team’s improvements (enhanced quality, performance, and new functionalities) are highly significant to our stakeholders as well. With our ability to plan sprints effectively, we can now complete all the tasks outlined for a sprint (90% of the time). Moreover, we’ve become adept at responding to changes in requirements and handling incidents in production.