December 15, 2015
Weekly Project Iterations
On the front-end team at Code School, we’ve implemented the idea of “Weekly Project Iterations.”
A Weekly Project Iteration is a version of a project (v1, v2, etc.) that contains a set of tasks within a milestone that can be completed in a week.
We’ve done this to:
- Break a project down into its individual milestones and tasks
- Provide easier methods for communicating progress to relevant parties
- Allow for more than one front-ender to work on a single project, if needed
- Give clear benchmarks for any front-ender working on the project
The first thing we do when starting front-end on a new project is to have a kick-off meeting. The meeting will contain at least two front-end developers. The only time this isn’t the case is for large projects that introduce a new codebase. In that instance, the whole front-end team is present to ensure we’re all comfortable with the project’s scope.
The goal of the meeting is to:
- Outline all milestones for the project
- Outline all todos within each milestone
- Group milestones/todos into weekly, versioned iterations
- Take any general notes about the project
From there, we have a basic outline for the project, as well as a rough estimate on how many weeks it will take.
For one-week projects, we still have a kick-off meeting, but there is only one version.
We keep project kick-off documents in one location in Google Drive to reference them later in retrospectives. We can use it to figure out how to plan better for the next project.
The document may need modifications during the first week, but after that, everything stays in Trello.
I’ve written about managing projects with Trello, so I won’t cover that. However, I’d like to point out that each version of the project has its own Trello card.
Trello card in the ‘In Progress’ list.
The expanded Trello card.
The Trello card contains:
- A versioned title (e.g.
Project Title v2)
- Who’s working on the project
- A due date
- Relevant labels
- A description containing a title of the milestone and links to relevant resources (Google Doc, GitHub Pull Request, etc.)
- One or more checklists for individual tasks
Every Monday, we look at the Trello board to move relevant, versioned project cards to the ‘In Progress’ list when they’re starting that week. Throughout the week, the front-ender uses the card to check off todos, update resource links, and provide status updates. At the end of the week, the card receives a status update, and it’s moved into ‘Completed’ for the week. Otherwise, it’s split into multiple versions.
We don’t estimate everything perfectly in the kick-off meeting. In these cases, versions can be split. For example, if
v2 has grown out of its single-week timeframe, it can be split into
v3, should the need arise to rearrange the versions). With
v2.5 now created, it can be worked on in a single week, or alongside another version if it’s within a half-week-or-less timeframe.
That’s All, Folks
It’s important to note that sometimes versions extend past their one-week timeframe. It’s not foolproof, but it puts us in the mindset of constantly assessing the status and management of a project. It’s helped quite a bit, and we look forward to continuing to improve the process.