Our tech organization is always looking for ways to improve its systems and processes – we’re constantly striving to be better. To increase team autonomy and improve delivery time, we’re currently piloting InnerSource, a development approach that applies open source principles to the way companies develop software internally.
Our initial pilot of the approach focused on teams working within product clusters whose work presented opportunities for cross-collaboration. This gave the engineering teams working in Zalando’s Core Platform and logistics the chance to step into the limelight with their innovative projects, and our implementation of the gax-system was the perfect place for InnerSource to make its mark.
What is InnerSource and why are we adopting it?
InnerSource operates similarly to open source, in that projects are first released by an author or group, then grow and evolve based on external contributions. The difference here is that InnerSource applies this contribution model to delivering software within Zalando Tech directly, rather than externally like open source does.
InnerSource enables a clear path toward feature teams, while establishing and maintaining ownership of codebases by teams. We have teams developing their software on GitHub Enterprise, a common environment internally, allowing other engineering teams to contribute directly to their efforts.
Why does this process appeal to us? From a delivery effectiveness perspective, it aims to eliminate upstream dependencies, ensuring teams aren’t waiting on each other to complete critical work. It also promotes further knowledge sharing and better code quality, which is important for companies such as ours with a growing tech department.
The gax-system and InnerSource – A successful experiment
The gax-system is the next step in Zalando’s Integrated Commerce initiative, where we aim to enable brick and mortar stores the ability to join the Zalando platform. By using an existing, external online-based order management tool such as the gax-system, relevant customer orders from the Zalando shop are passed on to local partner stores who fulfill the order. When an order is fulfilled by the store, we receive their events updates, such as packed or shipped, and integrate them into our status model. If a store chooses otherwise, we continue the fulfillment process on our warehouse side. To this end the fulfillment flow is adjusted accordingly where event-based communication via Nakadi provides and listens to relevant events.
The pilot project has evolved over several quarters. While some progress was being made initially, it wasn’t until InnerSource was adopted that the project could finally be realised. The majority of our resources were tied up in work on the Core Platform, which serves as a foundation for ramping up new businesses or products, as well as providing a set of plug-and-play services for users of the Zalando platform. For the gax-system pilot, we were faced by an array of interdependencies from the beginning. Our Open Source Evangelist Lauri Apple and Delivery Lead Thom Bradford were the first to suggest InnerSource as a possible avenue for delivery effectiveness.
The gax-system needed to be viewed as more than just another means of connecting suppliers to the Zalando platform. In Q3, with little headway being made, we took on InnerSource as an experiment in delivery. We were relying a lot on other teams to get the project off the ground – however, we were also skeptical at first about InnerSource being the solution we needed. Would the team still feel ownership over the project? Would there be issues internally with our team making changes to the codebases of other teams?
In 10 weeks, the team was able to get the gax-system off the ground and launched as a successful, scalable solution for two stores – four weeks earlier than originally planned. Fourteen further stores have now been added, and the ability to ramp it up with additional retailers is possible.
The biggest strength of the InnerSource concept here was that it created real ownership for an end-to-end project, motivating our team of six to get their work over the finish line. By having all the rights and access to the code they needed, and having little to no dependencies on other teams for the build, their minimal communication overhead allowed a lot to be completed in a fast, lean format.
In terms of delivery, this also meant that the only boundaries existed within the team itself: No external dependencies could hamper the build effort. For a team working within our Core Platform, who are connected to virtually everything and everyone within Zalando Tech, scaling this isolated project would have hardly been possible without the opportunities that InnerSource presents.
It’s also important to remember that InnerSource needs the right ingredients within a team to be of benefit – team dynamics are incredibly important. Being organised and paying attention to code quality are essential to the process.
Next steps in adoption and collaboration
We’re excited to push ahead with further InnerSource experiments on upcoming projects. Expanding the circle of trust that is essential for InnerSource is the next logical step, where teams working in the same department, such as logistics or payments, would be able to collaborate and deliver faster. Eventually, this trust might span the whole of our technology department, creating an environment of fluidity when we’re building and iterating.
Teams who work in isolation tend to satisfy their own definition of quality. When you open up your development process to a cross-team collaboration model, you are raising the quality bar of your codebase across your organization. Other projects that are maintained by a single team can be reinvigorated by cross-team contributions, potentially giving Zalando products extra longevity.
As we continue to pilot the InnerSource approach, we hope to break down silos of codebases, encourage internal collaboration, and identify further opportunities to contribute to our already growing open source catalogue. By embracing InnerSource, we hope to reap the benefits of open innovation and increased software reuse, making our engineers more mobile throughout Zalando Tech.