At SouthLogics we tried several organizational methods, such as Agile, Just Do It and the old school Waterfall. None of them worked for us, and we remained frustrated in that aspect—that is, until we decided to apply to organization the one aspect of the Lean Startup methodology that really ringed a bell.
One of the Lean Startup main premises is that of new business being hypothesis rather than realities. The premise called for an approach closer to scientific method, but also for a more realistic one, that states: “when you plan, you don't actually know if your plans are going to turn into reality”. This is all the more true in development, but not just for business results. Every aspect of an innovative solution gives space for surprises to appear.
After some experimentation with the process offered by the Lean Startup (hypothesis, metrics, validation) we decided that we needed a more flexible framework. The degree of formality of the scientific method is an overkill for most tasks, and some tasks demanded a longer process with extra steps. I present here the skeleton of the 7steps system.
The 7steps systems consists of seven Steps and a special condition, and seven Status Stacks. The steps are roughly ordered so that the first steps are the ones supposed to appear earlier in the process. The Stacks represents the stages in which the Tasks can be, from pending to completed and some alternative routes.
The Steps can be categorized in two types:
Question: What are you trying to solve? This is the title of the Task, and usually can be stated in just one short phrase. It is best to use active language, and make it an actual question—including the question mark—because it demands action. Some tasks just seat for a long time only because it’s hard to grasp the title. This step is also called the Problem.
Hypothesis: What do you think that must be done for the question to be solved? The hypothesis is a surrogate for the solution: instead of calling it the solution, we acknowledge it to be uncertain by using the word hypothesis. It may not solve the problem at all, or the problem might have been incorrectly stated.
Use short phrases to state the measures to be taken to achieve the solution. When more than three items are used, consider to split the task in two.
Background: A list of tools/miscellaneous data related to the task. This is the place to drop references to the technologies that should be used, IP addresses, passwords or configurations details known in advance.
Precautions: What should you actively try to avoid while completing the task? Use this step to describe the predictable hazards associated with this kind of task.
Research: What did you find out about the solution? Drop in Research all the links and quotes collected during the research process.
Experimentation: You found several possible solutions and you are now trying them in a sandbox outside the actual project—this is the place to describe the results obtained in the trials. You may link actual code for best effect.
Development: What have you ended up doing? Here you should leave notes about the actual implementation details.
In a 7steps Task, almost every step is optional. This is so to reduce the bureaucracy usually associated with any time planning practice. The system aims to reflect the current state of the project and the estimate next steps, and do it as unobtrusively as possible.
There is one additional Step, the special condition, for Tasks that got rejected:
- Exception: Something has prevented the Task from being completed. What was it? Tasks that have an Exception step should be piled up in the Rejected stack. Link to any superseding Tasks from this Step.
Status of the Tasks
Backlog: A generic stack where all Tasks start and to which they belong until they are planned to be executed really soon. It is not subjected to capacity constraints, meaning that any amount of tasks can be piled here.
To Do: Next Tasks to be activated once the current ones have been completed. Is subjected to capacity constraints meaning that no more than 5-10 tasks should pile in To Do at any given time.
Doing: Tasks in process. It is also subjected to a capacity constraint of 3-5 Tasks.
Done: Completed tasks. Tasks may pile here but this Stack is mostly for context. Once a Task has sited a long time in Done, it should be moved to one of the following:
Archived: Old completed tasks. In task management software—such as Trello—archived tasks can be hidden from view, which is useful to maintain focus.
Reference: Tasks which results should be used as reference for other tasks. Also that hold very useful information that should remain handy.
And finally, the special Stack for the discarded Tasks:
- Rejected: Tasks to which an unexpected development has prevented from reaching completion.
We are currently toying with the idea of turning this into a web application. The Trello board for the proposed 7steps application is here.