I believe that several roles should be present in a majority of software projects. Managed by Teamed.io according to the principles of XDSD, we've got all of them in our projects. However, beware that in other management methodologies, these roles may have different meanings. This blog post is mostly for people who work with us, either as clients or freelancers.
There are just a few roles:
Product Owner (
PO) is a representative of the sponsor. The PO provides product requirements. The PO submits bugs and expresses any concerns or questions relating to them. Usually, the PO is a very technical person who knows how the product works and is capable of understanding the source code.
Software Architect (
ARC) is responsible for the entire technical solution. The ARC is blamed for all technical problems. The ARC approves all pull requests before we can merge them. The ARC is the main point of contact in the project for the PO. The ARC makes all technical decisions. The ARC reports to the PM.
Requirements Analyst (
REQ) is responsible for the validation of the product. The REQ solicits requirements from the PO. The REQ demonstrates the product to the PO. The REQ submits new bugs when validation fails and the product needs changes. The REQ reports to the PM.
Quality Assurance (
QA) oversees the correctness of our process. The QA approves each closed task before it's officially closed by the PM. The QA ensures that our process complies to our policy. The QA reports to the PM.
Besides all that, any role is encouraged to submit bugs when they find them.