Today we started our team projects at Launch Academy; the whole cohort has been broken into teams of 4-5 people, and we’ve been given our task – build an entire website.
There’s a lot of room for us to prioritize and create stories for what we want to do; as with all software development, it’ll be easy for us to get lost going down rabbit holes and to fall victim to scope creep.
One of my fellow launchers asked my advice on how to project plan for this; here’s what I told him. We’re mostly using Trello for this work, so my recommendations are based around that.
With that, here we go:
- You want your story scope to be “just right”. If it seems like a big feature for a two week period – to me that’d be longer than a day or a day and a half – then it should be broken into multiple stories.
- It’s also possible to break stories down too far, and to get really pedantic about things. I’d say if it feels like it’s too granular, ask your teammates what they think – if folks agree, just make it a line item in another story.
- Create agreed-upon acceptance criteria for each story! The whole team should agree that a story is written up as completely as makes sense – in the biz, we often call that “groomed”.
- Set up your Acceptance Criteria to be testable. This is REALLY important. This means that your stories can serve as a blueprint for your automated tests. There should be a test (more if needed) per acceptance criteria item.
- Setting up Trello:
- I recommend having at three columns for a story backlog: Core Stories, Nice-To-Haves, and Needs Grooming
- The Core Stories are what you need to satisfy our criteria for shipping the product, per the lesson instructions
- Nice-to-Haves is everything past that. And I mean everything. Stories that have both core and Nice-To-Have functionality should be broken out into multiple stories. Implement the core thing first, hit the extended goal later if you have time. It’s analogous to what we’ve been told every Friday for Systems Check – don’t start on your Exceed Expectations work until you’ve finished the Meets requirements!
- Finally, Needs Grooming is where team members can put their ideas for functionality. Everything should go in there, no matter how small
- Dealing with your backlog
- If new things are going into the backlog (or your stories aren’t fully groomed), you’ll want to devote time here and there to doing so
- During that time, the Needs Grooming stories should get expanded/revised/broken down so they are ready to code. You should also discard stories or leave them ungroomed if it’s unrealistic to think you’ll get to them.
- Stories should get prioritized within their column. Your most important core stories should be at the top of the list. Same goes for the Nice-to-Haves
- Finally, when prioritizing your stories, risky core functionality should be prioritized most highly. That is the stuff you must have, but possibly will take longer than you want. Get that out of the way first.
- Create two In Progress columns – one for each 2-person pair on your team. Pull in the stories you’re working on when you start them.
- Archive your stories once they are complete
- A story is complete when a) all the acceptance criteria are met, b) your tests are all written and passing, and c) when your pull request is approved & merged
This can be a lot to keep in mind! I would recommend taking a shot at your backlog setup, looking at this list, and then seeing if anything needs to change. After a couple cycles through setting up and completing stories, you’ll start to have an instinct for when a story isn’t fully ready to be done.