The development process of any software has many facets and levels of control. Regardless of whether you use your own resources or hire an outsourcing company, it is important to understand who exactly should be on the team in order to get the maximum result. In this article, we’ve decided to ask the Head of PM at TopDevs — Eugene about the major players in the development dream team and other professional tips for your pleasure.
Stages of the software development cycle
Regardless of the scope of the project, the stages of work on it are universal for everyone. The cycle of creation starts from the moment the need for this software product arises and ends with the moment of its complete withdrawal from use by all users.
Traditionally, the following main stages of the software life cycle are distinguished (and in TopDevs as well):
· requirements analysis,
· testing and debugging,
· operation and maintenance.
A feature of software product development is decision-making at the initial stages with their implementation at subsequent stages. Errors in the requirements for a software product can lead not only to losses at the development and operation stages, but also to project failure. Changes to the specification of a software product most often causes the need to repeat all the following stages of design and creation of a software product.
If we are talking about commercial software, the life cycle is determined by the moment of the start of sales.
Distribution of roles: who is responsible for what and to whom is accountable?
The composition of the team often depends not only on the complexity of the project, but also on its scale. For example, some tasks can be broken down into a number of highly specialized specialists.
The distribution of roles is pretty simple:
- PM, he is roughly responsible for the entire project.
- DevLead is responsible for the work of the developers. Developers — they are responsible for the quality execution of tasks.
- The designer’s area of responsibility is beautiful design and submitting material to the developers in a timely manner.
And of course, QA is a person who tries in every possible way to break what the developer did so painstakingly, and when he fails to break it, the developer can be proud of his brainchild, and if suddenly QA broke something, the developer will quickly fix it and still be proud of his brainchild.
Dev lead and developers are responsible for timely and high-quality completion of their tasks. QA is responsible for ensuring that the closed task corresponds to what is written in the task (the customer wishes), design and works like a clock. Every day they all send their reports to the PM, what they did today, what they faced, etc. So that PM in turn can report to the customer.
As well you may need:
· Business analyst. A specialist who calculates all risks and is engaged in forecasting. This is one of the key figures in the development process.
· Database administrator. This person deals with everything related to interacting with databases. This is especially true for large projects.
· Testing expert. Among his tasks is finding problems in the code and any inconsistencies with requirements.
When it comes to design, this is where web designers come in. To effectively complete all tasks, a design team is required. They are also engaged in the creation of the frontend part.
The average IT web development company usually has a design team like this:
· Graphic Designer. It creates all the graphic elements on the website and / or in the application. In addition to skills, such a specialist also needs to have a vivid imagination.
· Interactive designer. These specialists create the functionality of web solutions to interact with users. These specialists usually work with JS, AJAX, Flash, etc.
· Web page designer. This specialist optimizes individual blocks and containers on web pages. They are required to have knowledge of CSS, HTML, JS, PHP, etc.
On the customer’s side, for example, SMM and SEO specialists can also be involved. They can get started during the development process to prepare a marketing strategy in advance.
How to create a developer dream team for a project
One of the first questions that everyone asks: how to create a development team? My personal opinion is that there is no perfect template. This also includes the questions “Where to start?”, “How do you know who you need — a Python developer or QA?”, “Where to find them?”, And so on.
First of all, you need to determine what business problem the team should solve. Then define the scope of work (backend or frontend, or only design and / or testing), as well as define the role of the team? Once you understand this, you can start building your team.
In my opinion, the ideal team is assembled only when the PM thinks like a developer. To understand what the developer can and wants, and in what conditions he will be comfortable working. Management should not concern the team, which means that it is important to clearly understand the tasks of the project and their performers. Developers know how to interact with each other to achieve the goals of the project, but they must know and understand these very goals.
The task of the PM in this case is to provide funds for discussing problems and regularly discuss the status of the project. This way, you can see if the team is doing well or if the roles will have to be reassigned. However, sometimes it is necessary to allow the team to overcome some obstacles on their own BUT under the guidance of the PM.
The creation of a good team and the atmosphere in it depends directly on the PM. He needs to set a positive attitude and make sure that everyone is happy with everything. At the same time, instantly react to problems or disagreements that may arise in the team. Also, do not forget about when your team reaches the goal or, even better, surpasses it, do not forget to support the team members. This will encourage the team to do better and improve team spirit.
How often should the meetings take place?
I think calls should be held every day. You came in the morning, drank coffee, held a morning call, at which we discussed urgent tasks and not only, got charged with motivation: the charge also depends on the PM, if it is on a stake or meeting it is sleepy and not active, then this mood will be broadcast to the whole team, from how the morning meeting will be held depends on the work of the team for the whole day!
In my practice, these calls take no more than 15 minutes. During this time, the PM receives all the information from the team on current tasks and calmly plans the implementation of the next. And at any time he will be able to answer the customer on what the work is currently underway and what progress is now.
Having a full-fledged hired team is an important factor for the existence of a project. Effective specialists who clearly understand their tasks and are ready to look for a variety of ways to solve problems are the key to success. No less important is the correctly selected development methodology, which is given preference.