Problem: A ticket is too big
Problem: A ticket is too big.
Solution: Decompose it.
Example: “Create contact us page.”
How to decompose it:
1. Design page and write content.
2. Design DB schema
3. Create contact_us DB table
4. Implement feature toggle (so page can be enabled for a subset of users initially)
5. Create contact-us mock API. Mock save and server side validation.
6. Implement contact form UI against mock API. Ignore client-side validation.
7. Implement contact form client-side validation.
8. Implement contact-us REST API.
9. Connect form to REST API.
Benefits of breaking work down:
✅ We can work in parallel.
✅ Each task is relatively small.
✅ Quick, focused code reviews.
✅ Small tickets lead to more frequent feedback. If it takes more than a couple days, it’s a red flag and we have a conversation.
✅ Since tickets are all fairly equal in size, we don’t need story points or sprints. Instead, we just monitor how many tickets we typically close.
Another benefit of breaking tickets down to this level: It's friendlier to junior devs. Small tickets outline a little slice of work that's approachable, and easier to build and review.