The Latitude.sh engineering team work in six week cycles, meaning that roughly every six weeks we start a new cycle of product work followed by two weeks off of scheduled work.
During each cycle we usually have one or two projects that can be considered Larger projects and a few Smaller projects.
Project names come from Culture ships. Learn about The Culture here.
After every six week cycle, we take two weeks off of scheduled projects so everyone can focus on other things, such as fixing bugs, polishing existing features, help plan for the next six week cycle, and generally wind down, this is called the Cooldown period.
We firmly believe we can get a version of any project out in six weeks. Nearly everything important can be done in six weeks or less without having to do things as fast as we can. We optimize every feature to fit into the best six-week version possible.
We focus on what needs to be done rather than what can be done. Before any project is included in a cycle, we've already figured out what we think the six-week version is. Almost always all of the planning and consideration happens in the two weeks prior to the cycle.
That way the six weeks is all implementation and execution. We try to make sure all the big stuff is known and understood before we get started.
Each Large project is assigned a team. So if we take on two Large projects during a cycle, we’d have one team working on one project and another team working on the other. Small projects are all done by one team. Teams stay together for the full cycle.
A team is two or three people, depending on the type of work. The biggest team we'll have working on a feature is three at any given time. Either one programmer and one designer, or two programmers and one designer. That’s it. No teams of four, five, or six. Everything we take on has to be done by a team of three, max.
Teams are assembled ad hoc. Before a cycle begins, we ask each person what kind of work they’d like to do over the next six weeks. Teams either coalesce around areas of interest, or we assign people to a team based on their preferences. Teams often change up after the cycle so everyone gets a chance to work with different people, but sometimes they stick together for a few cycles. There are no hard and fast rules about this.