This week, I was lucky enough to be invited by my bosses at Assistly to a Lean Startup talk, featuring IMVU’s Brett Durrett. I was delighted when Mr. Durrett credited Continuous Deployment, Scrum, and IMVU’s Hack Weeks as a large part of his company’s success.
Agile development and developer freedom are being increasingly used by tech companies to maximize their productivity, so I’ve been hearing a lot of buzz around them all summer. Scrum in particular fascinates me in how it sets up an environment for a team to work like a well-oiled machine. It’s also utterly cool.
Brett Durrett, Vice President of Engineering at IMVU
Continuous Deployment, part of the Lean Startup philosophy, advocates releasing smaller updates more often than in the traditional model. At IMVU, this can even mean releases being added multiple times in an hour. Continuous Deployment has drawn both praise and skepticism, mainly because many developers are wary of the quality of such updates, and whether it is possible to test them rigorously at a whirlwind pace:
“Our tests suite takes nine minutes to run (distributed across 30-40 machines). Our code pushes take another six minutes. Since these two steps are pipelined that means at peak we’re pushing a new revision of the code to the website every nine minutes. That’s 6 deploys an hour. Even at that pace we’re often batching multiple commits into a single test/push cycle. On average we deploy new code fifty times a day.”
— Timothy Fitz on IMVU’s use of Continuous Deployment
Mr. Durrett explained that IMVU runs continuous testing on its updates, and always stands ready to retract them should problems or negative customer feedback arise. For now, the consensus seems to be that Continuous Deployment shows promise, but may not be appropriate for every company.
Scrum is a framework for agile software development; in other words, it’s a formalized way for teams to quickly develop software by working as a unit, while being flexible enough to roll with changing circumstances as they arise. Scrum is named for a move from rugby, in which all the players on a team interlock bodies in formation with the shared goal of gaining possession of the ball.
Rugby is insane.
Each product has a product backlog, a wishlist of features that the customer would like to see. Obviously, it would be overwhelming to hand a backlog for a product with a lifecycle of years to a team and tell them to “make it happen”. Most likely, productivity would be low and progress would be piecemeal. That’s where scrum comes in to focus the team.
The work is broken into a series of smaller periods, called sprints, each about 2 to 4 weeks long. The team meets at the beginning of each sprint at a planning meeting, and chooses a high-priority chunk of tasks from the overall backlog to work on during the sprint. Each team member signs up for a task based on their ability and the ability of their teammates; it’s key that these tasks are not assigned and that there is no hierarchical “boss” of a scrum (although there is a “ScrumMaster” whose job it is to remove obstacles in the team’s way). The team works as a unit.
During the sprint, the team meets every day for the daily scrum, to report their task progress since the last day’s meeting and what they plan to accomplish before the next day’s. Progress toward completing the sprint, or burndown, is recorded. Daily scrums are capped at 15 minutes, and are held at the same time in the same place, in order to set a regular schedule.
At the end of each sprint, the team has completed all tasks and has a product that is potentially shippable — it’s been thoroughly reviewed and tested. They meet for a sprint review to measure the sprint velocity, evaluate what went right and wrong, and prepare to repeat the process in the next sprint.
From the excellent ScrumAlliance.org.
This is an IMVU-internal week in which engineers devote 5 days to creating any (shippable) feature of their choice — developers are given free reign over what they work on, rather than the feature filtering down from management. It’s meant to encourage innovation within the company, and plays on the same principle as the hack days Sifteo’s Dave Merrill enjoyed during his time at MIT’s Media Lab — that a group of smart people focusing their energies on one common goal can yield powerful results.
This Thursday, the TEC interns met portfolio company Bloomspot’s founders Jasper Malcolmson and Ashish Baldua, who said that Bloomspot’s development team uses a framework very similar to Scrum — and they’re not the only ones. All of the Silicon Valley excitement around Lean Startup, Continuous Deployment, Scrum, and Hack Weeks ties in perfectly with True’s philosophy: it doesn’t take a lot of money to start something great. I think that with the general trend of venture capital seed money starting at lower and lower amounts, we’ll see an increasing amount of lean, agile startups focused on iteration and responding to customer and market feedback as quickly as possible for a quality product.