Leslie Camacho
CEO, EllisLab

The Circle of Life, er, Development

Continuing our behind the scenes theme from the last update, today I’d like to delve a bit into how we actually work on a day-to-day basis. This will give you some insight into how feedback from the beta (or anywhere else) is handled and how that feedback turns into work which turns into code which turns into something tangible for the community.

Almost all work at EllisLab is done with our own home brewed version of Scrum, a “agile development” system created by a lot of smart people based on ideas introduced by Hirotaka Takeuchi and Ikujiro Nonaka way back in 1986.

The beauty of Scrum is that it is easy to understand, simple to implement, and yet nuanced enough that it can adapt to the specific needs of a team.

Here is a video that provides an overview of how Scrum works (note that I’ve never used the software or the company that created the video):

We use a modified version of the process described in the video.

Here’s an example of how it works with the 2.0 beta1. As we get feedback from the Beta group, it all gets put on a master list (the 2.0 Productlog). This list is then categorized into three groups, Bugs, Development, Feature Requests.

Bugs are tasks that are just errors in existing code that need to be cleaned up. Development items are tasks have been planned out and we’re in the process of building, and feature requests are items that are reviewed for possible inclusion in EE or CI. We then review the list and create Sprints to deal with the items on the list. Each Sprint has a clear goal that governs what tasks a Sprint includes.

At the end of a Sprint we review every item on the list. This is followed up by some “off” time where staff are free to take care of individual Sprints before we start the next team Sprint. These individual Sprints are used for project clean up, research, “play time” (off exploring cool ideas), or other things that help keep our devs healthy and happy.

Whether we are doing team or individual Sprints, we always have a daily meeting (via Skype, not IM) where we briefly update each other on how we’re doing and have the opportunity to support, vent, collaborate, etc… in real time. And yes, this can be a challenge since we’re a distributed company with people all over the globe. These meetings are typically less than 15 minutes.

We just finished a major 30-day Sprint Review this morning and while I have to keep most of what was accomplished private, I am happy to report that the Simple Commerce Module and the Discussion Forum will be ready for Beta2 as planned (whew).

I want to give a big public thank you to our development team for the tremendous work over the past Sprint, its really been a joy to see it happen.

We’re taking a few days for individual Sprints and next week we’ll be planning the next Sprint, which will focus primarily on the UI feedback (Beta2 will happen sometime after the next Sprint is completed).

I have to take a moment to publicly thank the team at Fellowship Technologies, who generously shared their Scrum stories to help us develop best practices and avoid common mistakes.

I also want to stress that what I describe here is a brief behind the scenes post about how we work. Its not meant to be a complete explanation of everything. I’m happy to answer questions on the forums and expand as much as I can.