Leading on delivering stories
The developers role
You should take responsibility for:
- figuring out how to deliver a user story in the most appropriate way
- considering and balancing short and long term impacts of implementation choices
- ensuring that code produced is of the appropriate quality (which will be different for a prototype vs a live production service)
- ensuring that your knowledge is shared amongst your team so that silos don’t form
At junior level, you will be given support to work on user stories. You will normally work in a pair with a more experienced developer. You may be asked to take the lead on well defined stories - see an example.
A well defined story will:
- have clear acceptance criteria, so that you know when you’re done
- have a clear statement of which files, classes, tests, and microservices will need to change, and in what way
At mid level, we expect you to:
- lead on more complex stories
- support juniors and new starters in your team through pairing and providing guidance on delivering stories
- decide which stories to prioritise over others
- identify blockers, and the steps taken to try and unblock them
At senior level you will lead on larger pieces of work which may involve multiple stories or tasks. This doesn’t mean you have to do everything yourself, but you should have end to end responsibility for delivering the work.
This could involve:
- working with the tech lead and the rest of the team to agree scope and identify risks to delivery early on
- creating well defined stories for other developers to pick up or suggesting an approach to take
- helping to resolve blockers
- making sure code gets code reviewed quickly
- doing a timeboxed investigation (spike) into a problem area
As a tech lead (any level)
If you are a tech lead, you will work closely with the product manager and delivery manager to make sure that work is ready for other developers to pick up; for example, by working with the team to break down stories into smaller tasks.
You’ll be responsible for ensuring that the development work is aligned with the team’s goals, while maintaining technical standards. This may involve:
- Working with PM/DM to get tech debt prioritised
- Advising team members on technical implementation
- Working with Tech Archs and other stakeholders (e.g. sec-ops & SRE) to make sure proposed solutions are appropriate
As a tech lead, you shouldn’t try to do everything yourself, even if it’s easier. This is not sustainable in the long term and takes learning opportunities away from other developers on the team.
The tech lead can also be a tie-breaker - if your team is having trouble making a decision, make the call.
- The Verify team manual has a useful section on the role of the tech lead (which the above section is based on).