The Real Roles on a Project

You may find the following useful if you need to describe a team structure in terms of roles, possibly because the team needs to change.

We got interested in this problem because as consultants we’ve typically looked at the services that we were supplying, and done what it takes to deliver those to the client. We wouldn’t normally need to think about a “role” to do that. But a project was scaling up and we got into a discussion about what roles were needed.

The solution concept was to look at a generic list of roles, decompose into services they provide, and then compare to the actual list of roles on a typical project.

According to ChatGPT:

In the context of a project team, a role refers to the specific position or function that an individual or a group of individuals fulfill within the team. Each role has defined responsibilities, tasks, and expectations associated with it. Roles are usually assigned based on individuals' skills, expertise, and the needs of the project.

Here are some common roles that you might find in a project team:

Project Manager: The project manager is responsible for overall planning, coordination, and successful execution of the project. They oversee the project team, manage resources, and ensure that project goals are met.

Team Lead: The team lead is a senior member of the team who guides and supervises other team members. They provide direction, make decisions, and ensure that the team is on track.

Subject Matter Expert (SME): SMEs possess specialized knowledge and expertise in a specific area related to the project. They provide guidance, insights, and support in their respective domains.

Developer/Programmer: Developers or programmers are responsible for coding, programming, and implementing the technical aspects of the project. They write code, troubleshoot issues, and collaborate with other team members.

Designer: Designers are responsible for creating the visual and user experience elements of the project. They develop graphics, interfaces, and ensure that the project has an appealing and user-friendly design.

Tester/QA Specialist: Testers or quality assurance specialists focus on ensuring the quality and functionality of the project. They perform testing, identify bugs or issues, and work with the development team to address them.

Analyst: Analysts gather, analyze, and interpret data relevant to the project. They provide insights, make recommendations, and contribute to the decision-making process.

Stakeholder/Client Representative: Stakeholder or client representatives represent the interests and requirements of stakeholders or clients involved in the project. They provide feedback, communicate expectations, and ensure that the project aligns with their needs.

These roles can vary depending on the nature and complexity of the project. It's important to have clear role definitions to promote effective collaboration, accountability, and the successful completion of project objectives.

There’s no Solutions Architect in this generic list of roles, and it seems like we do things across a range of those roles. ChatGPT says it can be a role though:

Yes, Solutions Architect is indeed a role in the context of project teams, particularly in the field of information technology and software development. A Solutions Architect is responsible for designing and implementing the overall structure and architecture of a software solution that meets the requirements of a project or organization.

The role of a Solutions Architect involves understanding the business objectives, gathering and analyzing requirements, and translating them into a technical solution. They collaborate with stakeholders, such as project managers, developers, and clients, to ensure that the solution aligns with the project goals and satisfies the needs of all involved parties.

So Solutions Architect is a role in itself and it’s also a lot of those generic roles.

If we draw a grid of ChatGPT’s roles and services provided by those roles in green, then we can add some roles we have on a project, shown in black on the diagram below, or in grey for areas of secondary focus. Only a few examples are shown in the diagram below.

This is a potentially useful way to describe roles because the verticals show how the project covers its needs for services (e.g. our example has the SA writing code) and the horizontals show the mix of services the roles need to be able to provide (e.g. our example has the tester needing to be able to write some code).

It’s more interesting to create this for a specific project, you may need to add some columns for some services your project may use that aren’t in the generic list, but if you do that and you spot that there’s a role that doesn’t appear to provide anything useful at all, you’ll be armed with a useful way to explain it.