At SocialChorus, we use a flavor of agile software development that borrows from both Scrum and Extreme Programming. We work from a backlog and plan in weekly iterations. We check-in with each other daily. We practice test-driven development and pair programming. And, we give the team slack time to work on whatever they want. Here’s what that looks like in practice:
Every day starts at 9:00 AM with a stand-up meeting. Immediately after stand-up, we check our parking lot to see if there are any announcements or topics to discuss as a team. On average, we spend between 10 and 20 minutes on these meetings, which isn’t bad for a team of 14 engineers.
On Monday and Tuesday mornings, we do backlog grooming and iteration planning. During the backlog grooming meeting, engineers gain an understanding of upcoming stories, and discuss the technical approach we want to take. During iteration planning, we estimate the work. Both meetings take about 30-60 minutes, depending on the number of stories to be discussed/estimated.
Immediately after our morning meetings, we break into three smaller teams and pair up. Our default mode of operation is to pair program. On average, we probably pair 60-80% of the time. The rest of the day is spent writing software, preferably – though not always – test-first.
Every other Friday is “Free-code Friday” where our engineers are encouraged to work on anything that will help the business. This could be refactoring a test suite, improving an annoyingly slow query, prototyping an idea for a new feature, or learning a new tool.
Finally, our week ends with a retrospective meeting at 4:00 PM on Fridays. It’s a time to celebrate things that went well and a time to commiserate about things that did not. But, mostly, it’s a time to think about how we can get better at what we do.
That’s our process. It works pretty well for us. We tinker with it from time to time. But, the overall structure has been very consistent.