While it is an undeniable truth that there is no formula for the perfect team mainly because different projects might require different roles and skills, there should be some pretty common elements to it. I think that there are certain roles in a software development team that are crucial independently of the project.

My opinion is that those roles are: Devs, PO, QA, and UX/UI designers. I was thinking that maybe you need an architect or a tech lead on a team or maybe a business analyst, but I guess there are teams without those roles that function quite well. Is that true though?

My question is: What are the must-have roles in a software development team independently of the project?

  • 1
    I think you've got it backwards. The project dictates which roles are required, not the other way around. A complicated project might require an architect and PO, while a simple project might require neither. A project with a UI requires UI folks, but many projects require no UI. Software is not some commodity that is manufactured, it is used to solve specific business or scientific problems.
    – Dan Wilson
    Sep 11, 2020 at 15:38
  • Why are you asking this? I mean, who cares? What benefit does it bring to put labels on what a given person does? Sep 11, 2020 at 16:30
  • I am writing a blog post about the software development team roles and skills Sep 11, 2020 at 16:33
  • @AlexisPavlidis: Your point of view seems to be way too narrow. Start with Spolsky's five worlds. Note it is from 2002, the diversity in the software development world has definitely increased since that point in time.
    – Doc Brown
    Sep 11, 2020 at 20:44

1 Answer 1


Software development is so immensely diverse that the number of must-have roles is very limited. I can count only 2 roles and they could be filled by a single person.

Those roles are

  • Someone with a vision for the product (aka the PO)
  • Someone who writes the software

Software development includes small (open-source) libraries created and maintained by a single person. Such a project doesn't need a UI/UX role, as it doesn't have any UI in the first place.

Software development also includes teams where "I have seen it work under good conditions" is sufficient to deploy the software. Those teams don't have any QA.

And for every other role you can come up with, there probably is a situation where it isn't needed or at least a successful team or product isn't using that role.

Not the answer you're looking for? Browse other questions tagged or ask your own question.