On a recent trip to Berlin I had the pleasure of speaking to Aaron Winn, the Director of Engineering of the Sale Journey at ImmoScout. Having the opportunity to be a part of the DevOps community in Berlin is a real privilege, and on the back of a truly insightful exchange about the engineering values and principles Aaron had helped develop and instil at ImmoScout, we recently connected again to discuss that work more closely – and share the reasons behind their implementation.
For those that aren’t aware, ImmoScout is an online property marketplace for both commercial and residential properties, and is the current market leader in the German sector. With over a decade working in Berlin and an engineering background, Aaron’s current role as a department lead allows him to oversee developmental work in a far more holistic manner, providing the opportunity for direction and ideology to be influenced across the entire engineering team – which is a main function of their values and principles.
Having been made available to download via GitHub, the 15 principles put in place are as follows:
- Agile software development
- Product first
- Continuous integration and delivery
- Minimise technology variation
- Embrace platform model
- Autonomous cross-functional teams
- Loosely coupled and highly cohesive services
- Cleaning is part of work well done
- You build it, you run it
- Eliminate accidental complexity
- Apply principle of least privileges
- Data is a shared asset
With so many options, ideologies and competing strategies existing about how code can best be advanced – with positives and negatives behind each way of thinking – Aaron confessed that a large reason behind the development of a standardised list of engineering values and principles was to “remove the deadlock”.
“There are lots of good ideas of how to write software” he told me, “and they can all help evolve a company. But to achieve that more efficiently, it makes sense to pick a direction to take your software development and stick to it. That way, it’s far easier to have relevant conversations and define what is believed in an engineering sense.”
The creation and implementation of these values hasn’t occurred overnight, though. Initially something introduced in a different form over two-and-a-half years ago, it’s only in the past 18 months that these have been refined and settled on in their current state.
Implementing these in a meaningful manner has been something high up Aaron’s agenda, with the engineering division as a whole keen to build and identity and culture that helped breed the best possible work and code. Problem solving by its very nature, there a number of structures in place to ensure that the values are constantly being reinforced where necessary.
“In a lead position, I want there to be a culture built off the back of these values, and there are things in place to ensure they’re never forgotten about or pushed off to one side. You want to marry culture and rules, so we’ve got weekly hourlong development meet-ups in which we openly discuss our successes, failures and struggles, with the values giving those conversation a focus and backbone. They’re reinforced during any training, discussed at interview stage and have their own focus during our onboarding process, where our tech strategy and principles are fully explained”.
Keen to know what the effect has been since the values were introduced, I asked Aaron to shed some light on the differences he’s noticed over the past 18 months.
“The impact has been overwhelmingly positive. Due to the increased responsibility introduced by the likes of ‘Cleaning is part of work well done’ and ‘You build it, you run it’, we’ve noticed far better software being produced, higher levels of ownership in work being produced and a consistently high level of quality code being written. Pride in the work being done has definitely leapt forward”.
Aaron says ImmoScout are keen to share what they’ve worked on with their values to aid the engineering and DevOps community in not only Berlin, but further afield too. While companies may want to use these values as a base from which to build their own, they’re only intended as an example, rather than a definitive and fully exhaustive list of what every developer should be adhering to.
Finally, I asked Aaron what advice he would give to anyone seeking make similar changes in their own organisation. “One thing at a time” he said. “Pick one thing to improve, take as long as that needs to be where you want it to be, and then you move on to the next thing”.
I’d like to thank Aaron for being so generous with his time in both Berlin and over the phone, and hope we can share this with those who will benefit from it the most. Don’t forget to follow us on Twitter, and if you’d like to get in touch to discuss anything at all, please don’t hesitate to call +49 30 300 149 3266.