Estimating software projects will never be my strong suit, but I've learned using numbers from the Fibonacci sequence to judge the size sets me off to a good start.
To estimate a task (in hours or days), I only use numbers from the Fibonacci sequence:
1, 2, 3, 5, 8, 13, 21, 34, 55…
The further along the Fibonacci sequence, the bigger the difference with the next number becomes. This aligns well with how we should estimate, because the bigger the task, the more unknowns there are.
I work at an agency that started out building websites and small apps, but the past years have shifted towards larger web apps and products.
Small projects are easy to manage. GitHub issues or Basecamp todos are more than enough to keep things going. Adding a feature or refactoring a small project is also easy, because there aren't too many moving parts to take consider.
Large and especially long-living projects are constant moving targets. It's harder to estimate things and technical debt can become a real issue. A linear, chronological task list won't do it anymore, we need to start prioritizing things.
I want to share four systems that have helped me, both on a personal and team level, prioritize work on large projects.