What did we do?
Heinrich Schmid has various departments with different use cases. But for the MVP scope, we focused on the offer module they used to manage the bidding process of their projects. We then named our project, Baumappe.
After 100 days, we launched the first version of the application. Following the release, Systemhaus, the Shared Service Center of the enterprise group, collected feedback from every branch using our product to evaluate its performance. The initial feedback was overwhelmingly positive, indicating that Heinrich Schmid employees found the app easy to use and integrated it seamlessly into their daily work processes.
With the validation of our product, we took the next step and continued the project through our long-term partnership model. Upon transitioning into a long-term partnership, our initially monolithic application expanded to support the requirements of various departments, including HR, Sales, and Finance. As our app evolved, we embraced a distributed architecture, utilizing microservices and micro-frontends to align with its growing needs.
What kind of team did we structure?
Initially, we assembled a small team to swiftly develop the MVP, ensuring the group was compact yet capable. This initial team adopted a self-managing Scrum approach, adhering to Scaled Scrum principles for optimal agility and efficiency. As the product stabilized and the scope expanded to meet our partner's evolving needs, we strategically grew the team.
With the product's growth, we’ve established two dedicated Scrum teams to support the long-term vision of the project. These teams are composed of Backend and Frontend Developers, Quality Assurance specialists, DevOps, Test Automation Engineers, and Scrum Masters, each bringing specialized expertise to advance the project's objectives.
What technologies did we use?
We adopted a distributed architecture with microservices and microfrontends, enhancing our system with independent deployments and increased fault tolerance. To ensure rapid delivery in this distributed architecture, we utilized GraphQL gateways and GraphQL servers. This enabled separate teams to work simultaneously on the same product.
To keep up with the fast pace of development, we adopted feature toggling, creating a flexible environment for deployments. This approach allowed various teams to simultaneously ship multiple features and release them right when needed.
We also established a fully automated CI/CD ecosystem, enabling these separate teams to execute several production deployments daily. Within this ecosystem, we used Azure DevOps to manage our CI processes, while we relied on ArgoCD to handle our deployment processes automatically, streamlining operations and creating a highly efficient development workflow.
How do our services extend beyond coding?
If we were to list the services provided for the Baumappe project, it would include the expected ones like web development, software architecture, data and platform engineering, and DevOps. But our contribution goes beyond just coding.
Drawing from our years of experience with the product, we also offer consultancy by sharing our views on potential feature developments, pinpointing areas for enhancement, and suggesting more impactful implementation strategies. In addition to delivering code, our comprehensive service package encompasses quality assurance processes and product management, adding substantial value to our partnership.