At its heart, onboarding [a new employee] has just two goals: teaching them what you expect and teaching them how to get things done [here]. It turns out that “teaching them what you expect” is one of the most powerful tools you have as a leader, as it can influence not only the newcomer but the team that already exists.
Over the last few years, Liza and I have learned a lot about how to build teams and cultivate company culture. We’ve experimented with systems for distributed work, tools to empower asynchronous communication, and a range of modern software engineering practices. While technical people love to find technical solutions to problems, many of our biggest successes have come through tiny habits and deliberate nudges. One example: the way we’ve taught each new employee that we expect them to be great.
I’m not a great programmer; I’m just a good programmer with great habits. — Kent Beck
With feedback and improvement from others, we’ve made a list of all things the newcomer should do. This sounds like a trivial change, but when introduced at the crucial, initial moment and repeated with every new person, it has caused lasting and significant improvement. When a person joins an organization, they’re ready to invest their best selves in the new role and they’re eager to be exposed to a new reality. We harness that excitement by carefully setting a very high bar (respectful, aspirational, proactive, empathetic, etc). Their passion and [totally normal] naiveté ends up changing their first few weeks but more critically ends up improving the practices of the whole team. The newcomer is just a bit closer to what we all aspire to be and that gap helps pull the rest of the team forward toward the ideal organization.
Each company and team will have different norms and expectations, but in the spirit of transparency, here’s ours (as they stand today):
- Always treat others with respect.
- Help others actively and selflessly (without condescension or shaming), as we all have a range of both weaknesses and strengths.
- Ask for help humbly and in public (to make it natural for others), as we all have a range of both weaknesses and strengths.
- Work on your empathy — it deserves deliberate practice.
- Be candid.
- Be proactive.
How we practice together
- Never disenfranchise others due to identity, abilities, or location.
- Participate in every meeting (either in voice or in text) or else decline.
- Never be more than two minutes late without telling the organizer before the meeting starts [which absolves you of guilt].
- Keep an up-to-date calendar to make it easy for others to schedule time with you.
- Be available during the core hours of the day, when we have a chance of high-bandwidth communication across time zones (10am-4pm local time).
- Let your colleagues know about your vacation plans as early as possible. Discuss your upcoming availability in sprint and team meetings, and keep the vacation calendar truthy.
How you practice your craft
- Be accountable for something.
- Always manually confirm a change (data, bug, improvement, whatever) from the point of view of the requester and what they actually wanted as a person, rather than focusing narrowly on the ticket words, the code, or tests.
- Build a daily habit of continuous learning to invest in incremental improvements in yourself over time.
- Write (code) to be read.
- Prefer imperfect tests to no tests.
- Push code to a place where others can see it at least once every single day to make it possible for you to rest easy and help reinforce the atomization of tasks (we all do better with small, achievable tasks).
- Update any ticket(s) you worked on before the end of every single day to make it easier for others to understand what’s happening and changing.
How we build stronger teams and a healthy organization
- Share bad news early.
- Provide candid feedback to help your manager improve.
- Find a way to have a conversation or discussion that enables others and fits into our distributed and asynchronous world (sometimes a doc, sometimes a group chat, sometimes a video call).
- Review the work of others frequently and carefully.
- Avoid work outside of tickets, as they provide a backbone of our asynchronous and distributed work.
- Proactively reach out to newcomers to welcome, befriend, and/or mentor them rather than assuming someone else will take care of it.
- Meet every two weeks with every direct report one-on-one for 30, 45, or 60 minutes.
- Share negative feedback immediately and positive feedback regularly.
- Help your employees through servant leadership.
- Challenge your employees through reflection and coaching.
At Safari, we believe that great work is done by people who are paying attention to new thinking, who are versed in the classics of their discipline, and who share what they learn with those around them. We believe that great workplaces invest in giving their people the opportunity to learn, to improve their skills to do their best work, and to promote a culture of sharing. If you want to build a culture of continuous learning at your organization, drop us a line and we’ll help you get there. If you’re curious about what it’s like to work inside an organization like Safari, find me on Twitter or email.