More Shared Knowledge on Projects
- Include more people in code reviews even if they’re not actively picking up development tasks – this shares out knowledge of the changes and gets another set of eyes that can ask good questions
- Break team silos, share knowledge
- Do Team PR’s for big PR’s
- Ideally break work into small pieces though
- Do team share of projects for tech projects, share knowledge
- Team Collab!
Metrics/Monitoring/Data
- Implement monitoring and error visibility to make it easier to debug problems down the road.
- Data driven approach whenever we can to illustrate impact. This can be something we start collection at the beginning and continue through out the project.
- implement monitoring & debugging for every milestone, every deliverable
Testing & Tech Debt
- Automated testing early in the process
- Test Plan/Test Matrix up-front
- Fix broken windows along the way
- broker time for tech debt
- broker time for related bugs in the backlog
Status Update/Communication
- Constant, detailed, concise status updates in channel – this is particularly helpful when rolling new people on because you can say “please go back and read the content of the channel for the past week”
- Frequent check-ins/deliverables
- Customers/Users to consult with along the way
- highlight risks early and often
- Clear Communication of Risks, Early & Often
- Roll out plans
- Disorganization from not knowing what work streams are in progress and who is working on what tasks
- Clear Status Updates in Channel
- Nice for on-boarding new folks
- clear comms, high vis
Kickoff & Milestones
- Clear Milestones
- What is the smallest thing we can deliver to our customers/partners so they can validate our approach?
- Clear outline of project goals and milestones, this helps us fall back on the main objective when things get unorganized
- Kick Off!
- Celebration, where we’re going
- Outline what we want to build
- Why we’re doing it
- Is how that important?
- What you’re going to do is not that important
- 🎉 Continue celebrating small wins!
- You need time devoted to design, review, write tech specs
- You need time for fast-follow work that you uncover along the way
- Clear Project Goals & Milestones
- when things get disorganized, what to do
Project Task Tracking Doc
- Keeping a separate project doc that tracks tasks and stories. It can be a bit of a pain to manage and sometimes is a couple days out of date, but I’ve found it very helpful in keeping alignment on the work left to do for a project
- Take into accounts bugs and broken windows you can fix along the way
- Don’t be too fine grained on certain tasks
- Things can be rough if clear. You don’t need a page long ticket for a one line change Tech Specs / RFCs
- Pre-planning for any project should begin much before the actual work
- Getting familiar with code base
- Setting up environment
- etc etc
- Tech specs or brain storming sessions that involve the entire team in the design process.
- Create a detailed design doc to iron out the implementation details
- no matter how small the feature/project is
- take them through the appropriate design reviews
- RFCs
- Full RFC overview right before the official kick-off.
- could be an engineering focused project where we comb through assumptions and highlight any risks.
- This might also help with setting original expectations on delivery date
Swarming
- Full Team Swarming has value
- Reduce having single developers on projects
- Attempting to breakdown work or introduce parallelism for projects that were not initially designed that way can cause problems.
- Figure out in the design phase what work that can be done in parallel (planning for multiple developers)