We’re sharing how we worked in 2023 as a product team and how we’d like to change things for the year to come.
In 2023, we had three cross-functional teams of 4-5 contributors each. They were staffed with engineers and designers, and a PM managed the team. The different teams were broadly structured according to areas of expertise. Some teams were focused on user acquisition (signup funnels, quote computation, checkout…), while others focused on post-purchase user experience (managing user policies, making claims…).
The PMs were given a problem and were responsible for shaping the solution. Shaping the solution meant communicating with the person closest to the problem (e.g., customer support) and consulting with developers and designers to gauge the feasibility.
We started 2023 with a scrum-like process and moved toward a tweaked version of Shape Up around September.
While our team setup meant team members got deep expertise in their team’s product area, and we could quickly ramp up projects in existing areas, there were downsides that we wanted to address with our new setup.
A traditional team setup leads to information and expertise silos, and while this was not a major issue for us yet, we felt the need to tackle the problem by swapping team members between teams and by using push updates in our communication.
We also realized that we could be more efficient by having direct collaboration between people close to the problem (e.g., customer support) and people creating the solution (e.g., developers, designers). The way our team was set up with PMs acting as a layer between problem space and solution space felt inefficient in that regard. Detaching the problem and solution spaces required more coordination, and pushed us towards a quasi-waterfall process, with designers solving a problem first, and only then handing it over for implementation.
Our team setup offered a clear solution to the problems we were experiencing. Through careful recruitment, folks who work at Feather have a high accountability mentality. We all had frustrating experiences with insurance companies and bureaucracy and agree on how we want to change the industry. We have a common understanding of what a good user experience is.
People with a high accountability mentality don’t need much hand-holding; in fact, they are the kind that strive when given a problem with a blank canvas. We felt that our team setup was doing too much hand-holding and not giving the necessary trust and freedom to the people closer to the problem.
Our homogenous codebase makes it easy for people from different teams to jump and help on other projects. Everything runs on TypeScript (from backend to web to mobile); we share engineering best practices regularly with jour fixes, RFCs, postmortems, etc. We also have a set of reusable utility classes, a design system, eslint configuration… ensuring a standard across our engineering team. Having a set team to guarantee continuity within a certain area doesn’t feel strictly necessary with such setup.
We’re going to move away from “fixed” cross-functional product teams. Instead, we will staff teams on a per-project basis. Any individual who will help craft a solution will be part of that team (from customer support to engineers).
Every team will have a lead. This lead will:
Falling behind schedule on a project happens; at Feather, deadlines are important, and they are even more important in Shape Up. When deep in the work, it’s common to over-emphasize the little details that don’t matter much. The team lead should seek advice from our experienced PM to reduce scope and find smart solutions to reach deadlines. Further reading: Shape Up - Decide When to Stop
PMs will move to a more strategic role; they will: