An update on our Engineering Principles
Skyscanner has iterated on its Engineering Principles, last published in April 2018. Read on to find out what we’ve added — and why
Back in April 2018 I shared Skyscanner’s Engineering Principles on this blog. And I explained why we felt we needed these principles:
To have values and considerations shared by every engineer that help inform our craft and serve as a tool for decision-making
Our principles, I wrote, give us freedom (autonomy) — but within a framework that delivers accountability and guarantees safety:
If we use the analogy of driving on our roads, autonomy is the freedom to choose how you get to your destination. Principles are the checks and balances, such as speed limits, that help get you there safely. You need both to reach your goal and avoid chaos.
Perhaps most importantly, I described our principles as “organic beliefs”:
We iterate. We learn. We grow. And our principles adapt with us.
Which brings us neatly to today. Since we published our Engineering Principles nine months ago we have indeed continued to learn, grow, and adapt. One thing we realised over that time period was that we weren’t following our own first principle (‘We have a clear definition of success for every piece of work’) because we did not have a clear definition of success for each of our principles! This proved troublesome as different squads tended to interpret the principles slightly differently. We’ve since resolved this by defining ‘what good looks like’ for each principle. Each definition includes tangible outcomes or examples of what it means to live up to the principle in question. As an example, this is the definition of good for “We peer review every change”:
The code follows the Contribute.MD guidelines for a given service/repository
Changes are small enough that they can be reviewed in a timely manner (sub-1hr)
You use SonarQube to catch missing tests, and Danger to fail the pipeline if your process is broken
Code changes follow Internal Open Source Software guidelines
All configuration, code, and other changes are peer-reviewed by an appropriate owner
Another area in which we have learnt, grown and adapted relates to the way we handle the ownership and quality of the data that drives our business. As a data-driven business, ambiguity about data ownership can hurt our velocity. As a result we have added one further principle to our list:
We own and are responsible for the data we produce.
This principle puts the onus on the producer to ensure that data quality does not drop and that data contracts are honoured. As we use the Engineering Principles to guide our decisions, the data principle is key to ensuring that we commit to each other, and that we do not waste effort chasing down broken contracts or incomplete data.
If you would like to see Skyscanner’s new and updated Engineering Principles you can now do so on github — alongside some explanatory text which goes a little bit deeper into the meaning and implications of each principle. We will continue to work and iterate on our Engineering Principles going forward — this is just the beginning.
Join Skyscanner, see the world
Life-enriching travel isn’t just for our customers — it’s for our employees too! Skyscanner team members get £500 (or the local currency equivalent) towards the travel trip of their choice in 2019 — and that’s just one of the great benefits we offer. Read more about our benefits and apply online right here.
About the author
Hi, my name is George. I am the VP of Engineering at Skyscanner. Skyscanner is the world’s travel search site, saving you time and money by finding the best travel options wherever you want to go. Our secret is in our self-built technology and global reach connecting you directly to everything the travel industry has to offer.
I love to travel and I am proud to be part of a product that can make that easier and more achievable for our travellers.