Tonight, on a very special status update, I’ll recount the recent Firefox team work week.
The Firefox team work weeks are pretty special. For one week, every 4-6 months, the whole team gets together at the main Mozilla office in Mountain View. Like the rest of Mozilla, the Firefox team is spread around the globe – around half the team works from various other offices (such as the Toronto office) or from our homes. For some of us (like me), getting to Mountain View can mean a 12 hour international flight – with all the jetlag that accompanies it. Being so geographically dispersed, it’s important we get together every now and then. There are some things that still work best when everyone is face-to-face.
I had booked my flight to arrive in California on the Saturday before the work week. I’d learned my lesson previously about taking time to recover and adjust, after spending over 12 hours in a flying sardine can. I don’t sleep well on planes, so I slept at the hotel most of Saturday afternoon. We stayed at the Hotel Avante, which is relatively close to the office (25min walk) and provides Wi-Fi (even if it’s a bit slow). This trip I discovered the Avante has a pool out the back – I didn’t go in, but it was nice to lounge out there (alone!) in the sun with my laptop and catch up on email and some work.
Early Monday morning was a shock to the system, as all mornings are. Working from home in an odd timezone means I usually get to start work at a leisurely hour, and work late. When I’m in Mountain View, my alarm is set for 7am. This seems to amplify jetlag by an order of magnitude.
Those of us staying at the hotel car-pooled to the office, and the day started with strategic planning. And by “strategic planning” I mean we wandered around confused in the newly-opened 2nd floor office space, as none of us staying at the hotel had seen it before. We eventually found our conference room, and scavenged some tables. They were arranged in what I like to call a “square round table”:
After some general catching up and setting up, we all got the chance to attend the weekly Mozilla project meeting in person – rather than having to dial in or watch a live stream. After quickly grabbing lunch, we had the usual weekly Firefox team meeting – again, in person! This was mostly planning the week ahead of us; lovingly called “agenda bashing”. Rather than having every hour scheduled for big meetings as in previous work weeks, we had a lot more free time for hacking and, of course, scheduling smaller meetings. Monday and Friday were officially “travel days”. This meant that for those of us around on these days, it was mostly free time for hacking and meeting with specific people. Wednesday was also specifically blocked off for this.
Tuesday started with a round-table discussion with Mike Shaver, Mozilla’s VP of Engineering. Shaver is great at rallying the troops, and talked about productivity, working smarter, and generally getting stuff done (amongst other things). This was followed by a feature roadmap discussion. These discussions were pretty high-level (read: abstract), without much technical detail. It was these types of discussion that are best done face-to-face, and it was really worth it.
After lunch and some hacking time, the QA team joined us (they were having their work week too). We discussed ways of further involving QA in feature development, getting more relevant information to QA during development, and generally how to better help each other. There was also some discussion on project branches, which we’re using more and more. A lot of my work has been with larger projects and project branches, so I was able to answer various questions QA had, as well as explain how that development process differs compared to bug-sized projects.
The Jetpack team then joined us, to present the new Jetpack SDK. They discussed the SDK internals, Jetpack development, how it differs from the original Jetpack experiment, and the eventual integration into Firefox. This was followed by some Jetpack hacking – some working on Jetpacks, some on the SDK’s APIs.
At this point, jetlag hit me like a wrecking ball.
Wednesday was an all-day hacking and free-for-all session, with plenty of discussions with awesome people – some of these were spontaneous, some not. These ranged from UX and API discussions about the new Extension Manager, to showing off my project status dashboard and my ideas for it. Before lunch, I sat down to listen to Gen Kanai talk about Firefox in Asia. Afterward, I had a planned meeting with everyone involved in the Extension Manager rewrite – with people from the Firefox, UX, QA, and AMO teams. This was primarily to discuss the QA plan for that project – test plans, development process, milestones, schedules, etc. Later in the afternoon, I caught up with Aza Raskin – he had a cool demo to show me.
In the evening, there was a rather unusual event planned for us. We traveled to Whole Foods in Cupertino, where 2 chefs and a kitchen were waiting for us. With guidance from the chefs, we were split into 4 groups – each group responsible for cooking one course of a four-course meal for the whole team. It was a really fun time, and the food we cooked up was pretty good!
Thursday involved a lot of free hacking time for me, since I didn’t need to be at various scheduled meetings. During lunch, Jinghua Zhang presented the results of the recent Test Pilot study on Firefox menu usage (sans pretty graphs). This answered a lot of questions we had about Firefox menus, but raised some new questions too. I found it particularly interesting that people have difficulty finding the “Check for updates” and “Add-ons” menu items. Someone brought up the possibility of regularly doing this study, which seemed like a great idea.
Later on, we had the weekly Extension Manager redesign meeting with the AMO team. Considering we’d had such a comprehensive meeting the previous day with QA, we still managed to cover quite a lot. We discussed various AMO integration ideas (such as the “Discover” pane), design direction, helping users learn about add-ons, privacy, security, and the new Rock Your Firefox.
Friday was a travel day, with most of the out-of-town people flying out early in the day. My flight was much later, meaning I didn’t need to leave the office until mid-afternoon. So I lounged in/on two over-sized beanbags, surrounded by the remainder of the team, who sat at desks. It always feels weird leaving the office at the end of the last day, knowing I won’t see any of my co-workers in person again for a number of months.
- OMG jetlag – WHY?!
- Walking down the street carrying 10 large pizzas gets people’s attention.
- MV people tried to convince me to move to MV, while the Toronto people tried to convince me to move to Toronto. This felt awesome, but I’m still not moving in the near future.
- I work with very smart people.
- Some problems are best solved face-to-face. Generally, these are not technical problems.
- Switching from working remotely to suddenly working in a busy office for a week is difficult to adjust to (and stay productive). But doing this periodically is important, as it helps you understand the team better and put things into perspective.