If you have multiple projects and multiple developers you might need to decide if you should dedicate a developer to each project or create teams that can work on all of the projects. While there might be some good reasons to silo work to specific individuals, you should also keep in mind the following benefits of assigning work to a team.
1. More Flexibility
Teams can respond better to unexpected changes in priority / demand. If one project becomes the priority, then the team can shift focus to that.
2. Better Bus Factor
If a only one developer knows about the project, then they become a single point of failure. This is known as the bus factor. Sharing projects with all of the developers on the team can spread knowledge across the team and reduce the likelihood that losing a single developer will bring the project to halt.
3. Higher Quality
When projects are shared across the team, team members can participate in design discussions and code reviews at a deeper level. If independent verification of work is necessary, it’s very easy to share this task across a team. If Bob writes a feature then Anne can functionally test that feature w/ a fresh perspective that Bob might not have. And vice versa if Anne writes a feature, Bob can functionally test it.
4. Improved Morale
It’s great to have the feeling that you aren’t alone in the work you are doing. There are other people to bounce ideas off of who have the same context you do. If the work becomes overwhelming, there are others who will chip in to help. Working on a single project can also become tedious. Having a variety of projects to work on can help reduce burn out and boredom.
In this ‘Agile Product Ownership in a Nutshell’, Henrick Kniberg explains how stakeholders and product owners can assign work to a team. Speifically at 10:35 he talks about how the team can work on different projects at the same time.