Co-Founder and CTO
As part of Widgetbox's new staff series—we'll be bringing you occasional guest posts from members of the Widgetbox team.
A number of us at Widgetbox are runners. It didn't start out that way, but it's pretty normal these days to see a few of us in running shorts at the end of the day as we prepare for a group run or overhear discussion about mileage and pace mixed in with talk about MapReduce. David, our Operations Lead, and Chris, our Director of Engineering, were long-time runners before starting at Widgetbox, but many of us became runners while working here.
The more I run the more I think how much it helps me at work. There are benefits to running like improved health and stress management, which can can be directly linked to better work performance. There is also plenty of time to think when you're logging mile after mile, so it's a good time to work on tough problems like designing our HTML5 run-time system which I remember doing over a long run one Sunday morning. I believe there is another less obvious benefit to running, more specifically to race training, that carries over to start-ups and the processes they use to get work done.
When you begin running it's hard. Then you do more of it and after a while it becomes easier. So it's natural to speed up, and when you do you find that running fast is hard. If you stick with running long enough, it hits you at some point that running fast or running far will always be hard. Proper training and conditioning mean you can run faster and run further but it's never easy. Running requires work. That's OK though since running has its rewards.
Start-ups are a lot of work at the beginning. You need to build a product, attract users, get funding, hire a team, find an office. Once a start-up breaks through the ten person mark they tend to need more process because it's hard to communicate and coordinate everything that's going on with that many people. It took us a little while to get our process down and the one we developed was designed and perfected while many of us were doing lots of race training, so it's not too surprising that it shares some of the qualities. I also think there's a part of our process that carries over to our runs for those of us who do it. The end of the day run or the run before work often are part of the process themselves.
At Widgetbox we break things down to either weekly or daily cycles. Product development, marketing, and operations all follow a weekly cycle—I'll focus on those since they are the things I work on the most. Our weekly cycle is called a "sprint" since we based our process on scrum. The word "sprint" means running really fast for a short distance, but we take a long view of things and don't work like that most of the time, so despite being a running term, "sprint" is a bit of a misnomer for us. Regardless of what it's called, the point of the weekly cycle is to make our process predictable, repetitive, and measurable. It's no coincidence that those are the same qualities of many race training programs.
In race training your goal is to steadily improve your performance— to reach a particular goal for speed and distance. Often the benefit of following a training program to you as an individual is seen in improved health and happiness even if you don't set a new personal record on race day. In our process we aim to hit our goals each week but more importantly build a better product and better company over time by gradually improving each week.
People often say things like "it's a marathon not a sprint" when they talk about working on a many month project or building a lasting company. When you train for a marathon you realize that the hardest work is the 18 weeks of preparation for the day not the race itself. That training makes you a better runner. So the harder the training, the easier the race. Similarly, companies and products are built week-by-week. There will be big releases and big events, but like race day, success on the day is ensured by the work that went into building and preparation, often for months prior.
The details of all those numbers aren't important, what is important is that each week follows a predictable routine. I have a sort of long run on Wednesday, and a faster run on Saturday, and a long run on Sunday. I know what I need to run each day so I'm not wasting time or energy planning runs all the time, I can make plans to run with friends ahead of time and other people in the office know they can have a running partner most days of the week. All of those benefits are great for our teams at Widgetbox too. We know we're going to release software every Tuesday and start a new sprint on Wednesday so people don't waste time and energy in release planning or waiting for teammates to free up from other work.
The next quality of a good training program is it should be repetitive. That's important because you become better at anything with practice—running included. Our Widgetbox process is repetitive too—I already mentioned we release software every Tuesday. This may sound boring since it sounds like you do the same thing over and over, but it's not the work that is repetitive, but rather the process you use to do the work. We choose to work on different things all the time just like you can run any course you want for a 12 mile run while training (although I have my favorites, like the one I'm about to run through Golden Gate Park from my apartment in SF to Ocean Beach and back.) Our work is changing day-by-day and week-by-week but the way we communicate with each other, test code, deploy to production servers, etc. stays the same.
The last quality I mentioned for training and process is it has to be measurable. Your time on race day is an easy way to measure your performance as a runner—you compare the race with one of the same distance and compare your results in the race to the other runners who took part. Similarly, we can measure our company's performance by counting our customers, recording the traffic to our website, and of course looking at revenue. Using those sorts of measurements show you how you are comparing to your goal but don't provide a path to improvement. To improve in running or business you need to measure both the result and how you're currently doing it so you have a chance to impact the result. We measure our weekly progress using what's called a burndown chart. Here are two:
The blue line shows how much work you need to do each day in hours to meet your goal at the end. The tool we use is great for tracking progress but it doesn't account for weekends.
Comparing the two is easy. Our burndown charts should look like the second one (and usually they do these days.) The green line follows the blue line closely each day. We do a little extra push on Friday and Monday to make up for the weekend. Now with that in mind, look at the first chart again. We made no progress the first day, then had a huge drop to recover (this meant we moved tasks to the next sprint), then repeated that pattern again after the weekend. Another thing to notice is we did about 200 hrs work in the first sprint and 400 in the more recent.
It's clear just from a quick look we did better in the more recent than the early one. What's not as clear is that we also did a lot more. The second chart was for the week of our recent mobile launch. Our team had one of the toughest goals ahead of us—this week was like race day and it was an ultra-marathon—we were releasing a new mobile product, new payment system, and whole new website look and feel. Of course we didn't do all the work in one week but this was the toughest week since we had a deadline to meet. As you can see from the chart we hit our goal. We succeeded because we kept to our process week after week. Like a race training program, it made us prepared and taught us the discipline required to finish. We were ready.
It makes me very happy to see our team work so well together. We have a good process at Widgetbox, but that doesn't mean we are done with defining our process. The work is never done improving how we work. I'm going to keep training for races after this marathon so I can be a better runner and maybe make Widgetbox just a little better too.
—When Giles isn't training for upcoming marathons, he's an avid photographer and world traveler.