Roles and Responsibilities in an IT project. Why are all those roles necessary (Team Lead, Project Manager, Product Owner, etc.)?
Sometimes big number of roles scares a customer. A question comes naturally, are all those roles, which we describe at the stage of project discussion, really necessary?
In one of our previous videos we mentioned, that our customers often ask whether they really need all those roles, which we describe at the stage of project discussion.
Today we are planing to talk about the tasks which are important to accomplish in any IT project, and about the roles (there are about 20) which are called to fulfill those tasks and make the project done within decided time and budget frames, and with the quality satisfying customer’s demands.
Meanwhile, we will discuss complex IT projects which do not have standard solutions. Especially such projects clearly show an importance of the whole variety of the roles.
The real case to demonstrate the roles of IT projects.
About one year ago, one corporate startup company in the property development field approached us.
They had a following task:
An estimator-engineer has a CAD-project of a shopping mall or a business center, or a residential complex. He needs to calculate a bill of materials.
To do this he needs:
- To make a list of all materials and utility systems which are used in the project.
- To select proper materials according to the technical characteristics from the producers’ catalogs.
- Based on the list of materials, to contact dealers and suppliers, and receive their price quotes.
- Then, based on these price quotes, to make a bill of materials.
This is a standard procedure which usually takes from 2 to 4 weeks, sometimes even more. Everything depends on the project’s scale and complexity.
The task we received was to shorten that process down to 2 hours. Such request is quite relevant not only for the Russian market, but for the international one as well.
High level questions that had to be solved during the project implementation.
- How long would the project take and how much would it cost?
- Which skills do we need inside the project and whom would we outsource?
- How to define a range of primary functions, which we would not be able to start without?
- What roles will the system have?
- Will it be used by private/ corporate customers?
- Is it necessary to maintain several projects simultaneously and keep their change records?
- What feature sets will be implemented in the accounts of an engineer, a manufacturer, a supplier?
- How will they be able to interact?
In the stage of the development project organization, it is necessary to understand and do the following:
- To collect requirements and wishes of all who is involved in the process, in order to avoid surprises in the end, and to prevent forgetting someone or something.
- To understand which steps and processes are to be automated, and which are to remain manual.
- To make thorough UI design, i.e. to define set of pages and screen forms and to assign functions to them. Make sketches accordingly.
- To find a designer solutions for the external appearance.
- To develop an architectural decision, a data model, select a software stack.
- To estimate speed-torque curves/load parameters (a number of simultaneous users, data volume).
- To define a format of workspaces (a rate of mobile and desktop users).
- To make a project plan (even agile projects need it).
- To organize a developer life cycle management process, starting from the shared access to the code up to building the solution and system deployment.
- To organize management of servers and SDKs.
- To organize a testing processes (functional, user acceptance, load).
- To define an amount of documentation required for users, for support service, for developers, etc.
Who is responsible for all these tasks, and how not to miss anything?
How to properly assign responsibilities to roles?
Today we will just enumerate all the roles required for a project, and in the next article we will show how responsibilities are distributed among the roles, and how roles interact with each other.
It is necessary to remembers that number of roles does not depend on the number of team members. There are about 15-20 roles, but there are teams of just 2-3 people up to 15 or more members. The smaller the team the more roles each team member will play. But if we skip just one role, the whole puzzle will collapse.
We can divide all roles generally in three blocks:
- A ‘locomotive’ roles that pull or push all others to the goal.
- Industry expertise / product expertise / business model expertise
- Production expertise in implementation / development
Locomotive
1. Customer/Owner
2. Product Owner
3. Project Manager
Industry expertise
4. Team Lead
5. Product Owner
6. Business Analyst
Production expertise
7. Architect
8. Tech Lead / System Analyst
9. Developers
- Front-end
- Back-end
- Integration
- Full-stack
- Mobile
10. DevOps
11. UX designer
12. UI designer
13. QA (tester)
- Functional
- UAT
- Load
14. Tech writer