The Bus Test đđ
A simple test of how disaster proof your business is
One day, Crew CTO Angus Woodman and I were walking home (yes, we walk home together sometimes), deep in conversation about some important, world-changing feature for Crew and as we stepped off the sidewalk a bus went flying by, narrowly missing Angus by only a few inches.
Without Angus, yes, the companyâs average age would have been considerably lower (Iâm calling you old, Angus). And yes, the companyâs Slack messages would have been a little more politically correct. But who would have written all the backend code that keeps Crew running smoothly?
Who would have handled the deployments?
Who would have ripped apart our Github pull-requests?
Who would have named the Github priority labels Priority Weak Sauce and Priority Hot Sauce?
Okay, so the bus thing never happened (though we do walk home together sometimes â so what?), but we did, at some point for some reason, think about the problem of having knowledge only exist in one teammateâs head.
If something happened to that person (like, say, they get hit by a bus), how would we keep moving forward?
We named the principle the Bus Test, as it sounds a lot more exciting, albeit slightly more macabre, than the Somebody Takes a Vacation/Leaves Crew Test.
How to run the Bus Test
The Bus Test is a simple principle:
âKnowledge should be duplicated between multiple team members.â
Knowledge doesnât just mean facts and history, it also means processes, development, and access to accounts, to name a few.
Things tend to get more complicated as you grow and over the past year, weâve made a big effort to duplicate, document, and organize Crewâs knowledge. Some of it weâre still working out, but hereâs a little behind-the-scenes look at how weâre trying to spread knowledge between teammates.
Account sharing
There was a dark time where we shared accounts either by:
- Using the same email/password combo (yah, that was a thing đł)
- Sharing the old-school way (âHey Steph, whats the login for Skype again?â)
It was slow, insecure, and most of all, it didnât pass the Bus Test.
One person gone and poof no more logins.
Meldium (no, not Medium) is a tool we started using to share passwords securely between teammates. It has a bunch of useful features, but the most important one is that Crew-related accounts (think Twitter, analytics, developer tools, etcâŚ) are accessible to everyone on the team.
When we sign up for a new account on some service, we add it to Meldium.
If a password needs to be reset, we update it in Meldium.
As soon as we update an account or password, Meldium makes sure to automatically share it with the rest of the team.
Itâs quick, itâs easy, and it passes the Bus Test. â đđ
Processes
Processes sounds like one of those words that you try to stay away from at a startup â theyâre for slow, boring, old people, right? Or at the very least, you try minimize them (thatâs what I always thought).
However, a few months back, it became obvious that we did have processes. Weâd just never documented them.
They werenât formalized and they werenât easy to discover. They were the equivalent of the âHey Steph, whats the login for Skype again?â problem, but at a much larger scale.
We were wasting time and we were making it hard for new teammates to pass the 4AM Test (oh yeah, thatâs another test weâll talk about in the future). Worst of all, they didnât pass the Bus Test.
Stephanie Liverani and Mikael Cho were the first ones to figure out that we needed to properly document how we do everything from writing a blog post to creating a new product, and so we brought all that information together in the appropriately-named âProcessesâ board on Trello.
The premise of the board is simple: any repeatable action (aka: a process) should be documented and assigned a lead.
The lead is responsible for updating the process when it changes and answering any questions about the process.
Everything from on-boarding new teammates to IT issues to filing an expense is documented on the board. Itâs the first place you look when you donât know how to do something and itâs the last place you look when youâre looking for something fun to do on a Saturday night.
Most importantly, it takes the knowledge out of one personâs head and shares it with the rest of the team. Bus Test passed. â đđ
Development
The hardest thing about development is understanding product context (letâs start a flamewar Hacker News). Itâs fairly easy to understand how a feature works, but understanding why it works that way and the thought process behind that choice is the hardest and most important part of product development.
Iâll give you a quick example (though, feel free to skip it):
On Unsplash there are two types of tags for a photo: a suggested tag and an authoritative tag. Suggested tags are created by the community and authoritative tags are created by our team. There are three types of suggested tags: auto-tags (created by an algorithm), community generated tags, and the tags created by the photoâs photographer. There are two types of authoritative tags: primary (for example, this is a picture of a cow) and secondary (this picture contains a cow, but it isnât only a cow).
Itâs not simple, right?
For any developer who wasnât a part of creating that system, itâs confusing, complex, and when you read the code, you get it, but you donât understand why it was done that way (I swear, there was a reason).
Communicating that knowledge is crucial when it comes to fixing bugs, improving the feature in the future, and for not thinking your fellow teammates are complete idiots. If that knowledge only exists in the original developerâs head, well, the rest of us are sh*t out of luck when that person isnât around.
Weâre still working out the best way to communicate that knowledge (should it be in a wiki, in the code itself, in Trello, or in Github?).
Right now weâre using a combination of tools to make it happen but that might change (and probably will change) in the future.
The main outcome is that the knowledge needs to be written somewhere. Github pull-requests are a good place, the dev channel on Slack is another, and the codebase is probably the best.
Unlike the other areas, we sort of pass the Bus Test for development, but itâs something weâre definitely going to figure out (whoever is the lead on that process Trello card has a fun year ahead of them). â đđ
So yeah, thatâs the Bus Test. If youâre not passing it, you probably should, because, well.. you never know.
Hey, Iâm Luke. Iâm currently building Unsplash. Iâm @lukechesser on Twitter and would love to hear your thoughts about the Bus Test, alternatives, and any tools youâre using to make it happen.