Open Source, the Retro Rabbit way
As a consulting company, Retro Rabbit ensures that our developers are always engaged and ready to deliver exceptional work that our clients have come to expect from us as the trusted, leading consultancy in software engineering. While not all of our developers are actively assigned to projects at any given time, we maintain a dedicated team, or what we call 'the bench.' This ensures we have the flexibility to meet the demands of our clients efficiently.
However, the downtime between projects presents an opportunity for us to enhance our developers' skills and capabilities further. We are committed to keeping them engaged, stimulated, and continuously improving. By investing in their growth and development during these periods, we not only mitigate the challenges of idle time but also empower our team to add even more value to our projects in the future
The naive way to achieve this might be to have developers work on “personal projects”. This gives them a low-pressure set of tasks to keep their fingers warm, and if it goes well, something to put on their Github profiles. But we decided to go with something else. Being on the bench, the Retro Rabbit way, now means contributing back to the open source community.
The Open Source Initiative
Starting in 2024, when our developers land on the bench and are not assigned to one of our internal products, they join the Open Source Initiative. These developers’ nine-to-five becomes to work on appropriate open source projects. This entails interacting with the community via issues, immersing themselves in the coding environments, writing code and opening pull requests (PRs) to address issues, and working with project maintainers to get their PRs merged.
Compared to working on our own little pet projects, open source work is much more potent:
- Our developers gain exposure to new and diverse working cultures. In fact, with open source, it’s possible to experience a wide variety of ways-of-working in a much shorter time than when focused on a single client project.
- This allows us to act as industry “journeymen”, to borrow a concept from Alfi Oloo's talk at RR.conf, doing work outside of our home villages, and then bringing the knowledge we acquire there back to our own tribe.
- Open source projects are usually less subject to tight deadlines and high pressure from business scenarios, which means they can pay more attention to best practices and high coding standards. We can then absorb these practices and adopt them in our own work.
- On the other hand, these projects often have a very high throughput of work, giving our developers experience with truly-continuous delivery. We get to learn how to deal with merge conflicts, effective git branching strategies, and automation in environments where dozens of PRs get merged and released every day.
- To contribute to a well-established project requires setting up their tech and tools, and immersing ourselves in their universe. This is good practice for integrating into client environments.
- Open source work is inherently collaborative.
Lastly, rather than just being passive consumers of the incredible functionality gifted to us by the open source world, we now get to contribute something back and generate value beyond the scope of our own commercial work.
A double leap forward
Being Retro Rabbit, we took it even further. We’ve curated a selection of high-profile projects for our developers to work on — libraries that we use every day, and that our clients build their entire businesses on. We’re talking Angular, Vue/Vuetify, Springboot, DataBricks, Asp.Net Core.
This puts us a cut above the rest. We’re always in competition with other software houses for contracts and our clients’ recognition. Those other companies know the same major tech stacks as us, and some of them even choose to specialise in just one or two (whereas we pride ourselves in being tech-agnostic, choosing the right tech for each job), which can appear to put us on the back foot. However, with our open source work, we don’t simply know how to use these technologies; we become actual contributors to the source code. Talk about a feather in our caps!
More importantly, this gives us a deeper understanding of these technologies. By working inside the libraries, we peel back the veil on a whole new level and gain true expertise. This equips us with deeper knowledge that we can wield to better serve our clients.
Another perk of this approach is that we can fix those bugs or add those features that we need in our other day-to-day work. Rather than waiting for the open source community in the abstract to address something that we need, we have already had instances of our developers focusing their attention on issues that we have a vested interest in.
The journey has just begun
We’re very excited to see how this initiative plays out. At this point, we’ve only taken a few strides down the road. So far we’ve opened 17 high-profile PRs, and merged 9. Those numbers will go up, yes, but we’re focusing on quality rather than quantity.
Looking towards the future, we hope to become valuable members of the open source community, and to deepen our expertise beyond what we previously thought was possible.