Each project has a team. Each team has several required roles:

RoleDescriptionResponsibilities
ClientSingle user, who represents a clientMonitoring progress, providing feedback, accepting results, providing business explanations
ArchitectSingle user, who represents the project leadIs responsible for the project success, including: technical decisions, quality, documentation, and functionality
DeveloperUsers who deliver codeSolving given tasks, asking questions, delivering results

You can always found out who’s who by looking at the project’s README. It will always have the Clientand Architectdefined. So, all other users are Developers. This table looks something like this:

RoleName (GitLab username)
ClientIvanov Ivan (@ivanov_ivan)
ArchitectSobolev Nikita (@sobolevn)
DeveloperOlga Petrova (@awesomeola)

What about managers?

We also have a project manager on board. But responsibilities of the project manager in our team is not common. We believe that good project manager does not work at all since some point in time. Good project manager creates processes which do not require any interruptions. So, we try to automate as many regular processes as possible.

Here’s the full list of the responsibilities that each project manager has:

  • Billing: making sure that payments from the client are received, sending micro-payments to the team members
  • Working with client: providing statistics, answering questions, planning new features
  • Working with the architect: making sure that architect does not have any problems or questions
  • Working with business processes: finding bottlenecks, improving docs, generating new ideas
  • Fixing any problems that emerge unexpectedly

Client has responsibilities too

Every person in the team has responsibilities. Person coming from the client has them too.

Main responsibilities of the client are:

  1. Validate incoming invoices and pay them in time
  2. Answer questions that are asked during the development
  3. Pay other people to audit our code
  4. Review features that needs to be reviewed and provide feedback
  5. Notify us about changes in the requirements

Full list of possible actions

Should or can I …?

ActionClientArchitectDeveloper
Create new project
Configure new project
Invite new people
Create initial codebase
Estimating issues
Open “Bug” issue
Open “Feature” issue
Open “Documentation” issue
Open “Research” issue
Close issues manually
Solve “Bug” issue
Solve “Feature” issue
Solve “Documentation” issue
Solve “Research” issue
Open merge request
Review merge request
Configure CI
Deploy
View statistics