To keep up with the fast development of the Cairo language and Starknet network while maintaining a secure and healthy development process, we organize our work in 3-week cycles. These cycles consist of milestones and sprints.
A milestone is a set of issues intended to be addressed. We usually aim to have at least 4 milestones planned ahead (~12 weeks of work), enough visibility for users to set realistic expectations on when a feature will be available, and give us space to gauge demand. We can also make better decisions and prioritization when we’re mindful of the bigger picture.
We organize issues in our Github project in the following views:
- Current milestone (now)
- Next milestone: ~3 weeks from now
- After milestone: ~6 weeks from now
- Later milestone: ~9 weeks from now
- Backlog: issues not assigned to any milestone
- Good to tackle: issues not planned soon nor in progress, for contributors to take
A sprint is a 3-week period of time in which we intend to complete a milestone. Some milestones might extend or shorten a little bit if issues are finished ahead or after schedule, while the end of a sprint marks the time to release whatever work has been finished to date, i.e. “the release train departs”.
- We design milestones to take ~25 working days so we can tackle them in a single sprint
- 5 working days times 3 weeks/cycle per 3 devs
- ⇒ 45 workdays/sprint
- we estimate we spend roughly ~1/3 of our time doing reviews
- ⇒ 30 workdays/sprint
- we apply a 1/6 reduction to account for vacations, sickness, distractions, support, etc.
- ⇒ 25 workdays/sprint
- 5 working days times 3 weeks/cycle per 3 devs
- To do so, we categorize issues by size based on a rough estimate of how many working days we expect it to take
- 🦔 tiny: ~0.5 days
- 🐇 small: ~2.5 days
- 🐂 medium: ~5 days
- 🦑 large: ~10 days