Any project goes through initial overview steps, called “presale”:
- Conceptual foresight of the output product
- Estimated project budget
- Time required for completion of the project
Presale stage evaluation has a deviation of 200-500%:
- expertise
- analysis of the team
- preliminary project estimation
The next task is to bring the error margin to its minimum. To do so, specialists with clearly defined roles are invited. It is very important to wisely and properly assign the roles to project team members. Each IT project has a number of certain orderly steps which are represented by participants responsible for them.
A classic project team usually has the following specialists:
- Product Owner
- Business Analyst
- Software Architect
- Team Lead
- Project Manager
- Software Developers
- Dev-Ops
In the initial stage, we formulate business requirements (BR) of a project. In order to understand the resource components and task allocation, we need to see architecture and business analytics. It’s necessary to mention that a project’s success also depends on how much the client is involved in the process. His comments, feedback, user-end testing and vivid interest in the project realization are important.
A Product Owner is an authorized person who has, not only a vision of the product and decision authority, but who is also responsible for the product’s financial result. Among other things, if the need arises, this specialist can change product development flow at any point of the whole process. He needs to understand the client’s needs and production pipeline. This means ultimately that a Product Owner must be sure that the project will not only be completed, but starts to bring money.
A Business Analyst works together with a product owner and writes requirements for developers. He writes down a step-by-step algorithm on how to reach the project’s result. A business analyst has to systematize all of the steps of the project vision proposed by a product owner, consistently set forth all solutions, and lead the whole process to automation and logic. Then, this structured step-by-step logic of the project goes to so-called system analysis.
System analysis is responsibility of a system analyst who usually works on large corporate projects. In other cases, a team leader or a developer partially plays this role.
A Project Manager is a person responsible for tasks execution according to traditional understanding that project should meet the deadline, be within the budget and be of satisfactory quality. In reality a project sometimes does not meet the deadline, which leads to increase of the budget which makes the client unhappy. Main tools of a Project Manager are project plan, daily meeting and ready-to-use architecture. A Project Manager has few important functions, including a function of client’s expectations control. In other words, this is a specialist who mainly communicates with the client and the team, and solves existing conflicts. This role implies being a psychologist, a communicator, and a person who reveals the needs of all team members, and is responsible for the deadline and quality.
A Software Architect is a person who actually designs the whole project. From the beginning, he makes key proposals of the project’s technological internal arrangement considering defining architecture paradigm. After the architecture is ready, it’s necessary to break it down into a clear sequence of technical steps and assign them to developers. This is done by a technical leader or a team lead and a system analyst.
Each project has all expected roles, but the number of people varies greatly. The smaller number of people, the more responsibilities and functions each specialist has. If we consider a maximum matrix of all possible roles and compare big and small projects, then it’s not always possible to give a quick answer who does which role. External circumstances constantly change, therefore it is better to have some flexibility in addressing this issue. The more flexible a role distribution in a team is, the less friction arises.
A role in an IT project is a kind of pattern, but often one specialist does several roles or tasks. Depending on a project’s scale, there are different sets of roles; executive functions can also differ. For example, in certain cases role assignment in a team may change and be more flexible.
To be continued.