- Teams should be six to eight during steady state.
- To create a new team, gorw an exisiting team to eight to ten, and then build it out into new teams.
- Teams of four are not teams.
- Never create empty teams.
- Never leave managers supporting more than eight people.
Four states of a team:
- Falling Behind - every week, the team’s backlog deepens. The list of bugs and feature requests outstrips the team’s ability to offset them with releases. It’s time to recruit engineers to add throughput to the team. Morale is low.
- Treading Water - the team sustains a good pace, but can’t embark on new projects or reduce technical debt. The solution is to reduce concurrent work (called Work in Progress in systems theory), so drive faster throughput by focusing on team projects rather than individual work.
- Repaying Debt - to pay down debt, the team needs more time to invest in reducing the debt.
- Innovating - craft enough slack in the system to enable the team to transition to this phase, invest in good quality code.
If the company is designing systems to last one order of magnitude, and is doubling every six months. Then we have to re-implement every system twice every three years. Creates a massive risk. The real killer here is poorly designed migrations as they expand the consequences of this rewrite loop.
- An ownership registry (who owns what?) is helpful.
- Hiring bootcamps, and re-occuring education.
- Avoid gatekeeping systems, (only person x can do that because they don't know otherwise)
Create systems with: https://insightmaker.com/
Fullfilling the role of a product manager:
- Problem discovery
- Problem selection
- Solution validation