by Jerry Sparks
December 16th, 2011
Welcome to Asana.
We’re excited your first day has finally arrived! Here’s your desk – it’s the sit-stand kind. Right now we put you next to your onboarding buddy, but in a couple weeks you’ll probably be working with different people on a specific project and you’ll all wheel your desks together somewhere in the office. You may also want to check the calendar for upcoming events. For example, we have yoga a few times a week. If you’re interested, bring some comfy clothes — we’ve got mats and other props. Remember that +1s are invited to almost all events so be sure to let your lover or your best friend know.
Your machine and workstation should be configured the way you wanted. You should already have a copy of the codebase along with the software that our engineers typically use; though if you’d like to customize your set-up further, feel free to do so. Otherwise, take some time to look around the code with your buddy…
Now that you’ve spent some time with the codebase, let’s get you something more specific to work on. Open a browser and log in to app.asana.com. We tagged a bunch of tasks that we think you might want to work on today. Some of them are bugs and others might be feature ideas. These feature ideas often begin as simple suggestions one of us puts in the Product Opportunities project. From there, the ideas get discussed, then get agreed upon and designed. You’re encouraged to read the tasks’ comment threads which contains all that history.
Wow, is it noon already? It’s almost time for check-in, short stand-up meetings we have on Tuesdays and Thursdays. Everyone in the company participates, so you should take a minute or two to reflect about what you’ve been doing this morning. Most of us also review our completed tasks in Asana to remember all the things we’ve recently finished. We share what we’ve been working on since the last check-in and what we plan to work on next – it takes maybe 15 minutes, total. This is a nice chance to hear about the other projects and to figure out if you can help unblock anyone. Don’t worry, by the next check-in you’ll be surprised at how much you have to say.
At 12:30, it’s lunch time! If you have any specific dietary requests you’ll see that Donnie or Kim has placed a name tag next to your plate, otherwise grab a seat anywhere you like. Lunchtime discussions are varied and often entertaining; people frequently use lunch to talk about different aspects of the product, technology, and business – and occasionally, cute kitten videos. Since we’re small, we all eat together; this is another opportunity to keep up to date on what is happening outside your team.
Now that you’ve finished lunch and have explored the vast reaches of our chocolate selection, let’s see if we can get some code committed! Open up that task that you picked earlier, and grab your buddy. Your buddy is there to help you keep moving quickly until you feel comfortable on your own. In fact, this is your buddy’s top priority; and for at least the first week we encourage you to do a lot of pair programming.
Once the two of you have finished coding – and written a unit test – it’s time to make your first commit. Our automated test-and-release pipeline means that your code will start being used internally in about 20 minutes, and will go live within a day. The pipeline has four safeguards against bad code going live: you, automated tests, code reviews and dogfooding; and in the rare case that serious bugs get through, we can roll back to an old revision right away. There are countless benefits of releasing on a fast cycle — some are obvious and some are subtle — but it’s a core part of our development culture.
Now that you’ve made your first commit, you should spend part of the afternoon looking at some of the notes and projects from our recent roadmap week. We have these once every four months, where the entire company collaborates in subcommittees to discuss plans for the upcoming few months. Some subcommittees are engineering specific, like “performance” or “scalability”, some are product oriented, like “mobile” or “redesign”, and others relate to how the company is run, like “recruiting” or “marketing”. These topics change as needed and you are encouraged to involve yourself in whatever parts of planning you find interesting. Don’t feel pressured to be on too many subcommittees — we’ll have a round of presentations near the end, where we incorporate more feedback.
We plan at these intervals so we stay in sync, and can execute effectively and smoothly. Between roadmap weeks, we split our time into three week periods: two weeks of working with a small team on a specific project and one week of catching up on everything else. A lot of the requirements for each project will already have been identified during roadmap week, but it’s up to you and the rest of your team to decide the full set of tasks to be completed. For the non-project work you won’t have a set team, but you can grab anyone as needed to help you with whatever you’re doing.
At the end of the day, Asana is about helping people accomplish the work they want to do, and realize their potential. It’s as true for us here, as it is for our friends, family, and all the teams who use Asana in their effort to create art, cure disease, or build the next great company. We feel strongly that the best way we can contribute to the world is to help others contribute to the world.
And look, it’s getting close to 7pm – wonder what Donnie’s made for dinner?
–Many thanks to Avital Oliver and S. Alex Smith, my delightful co-authors.