The team consists of developers of various levels — junior, middle, senior. Novice programmers solve small and relatively simple tasks, experienced developers write complex parts of the code. Among the tasks of the team leader in the team are process management, key decision—making and quality control.
The team leader, together with the project manager, communicates with the customer and distributes tasks between developers. He knows the strengths and weaknesses of each team member, so he can create an effective production schedule. If third-party programmers are also involved in the development, the team leader establishes contact with them, sets up working interaction with the team.
During the development process, the team leader solves the difficulties that arise. Experience and accumulated knowledge allow us to evaluate the quality of programmers’ work, find mistakes, and help fix them. Ultimately, the quality of the code depends on the work of the team leader. The better the code is written, the fewer problems there will be when working and scaling it in the future.
At the same time, strategies for working without the participation of the team leader are still being discussed. So, a team can have two or three informal leaders, or – a sufficient level of self—organization and great trust on the part of the customer. Such options may be suitable for small projects, or be effective at the earliest stages of development. Nevertheless, in any projects, the presence of a team lead improves the quality of the result and reduces the time from the start to the release of the project. In complex areas, such as the development of banking applications, it is impossible to do without a team leader.
“OK, the team leader is also needed. But if he controls the quality, why pay the tester?”
Yes, the team leader conducts a code review, helps developers eliminate errors in the process. Under his leadership, the team is building up its skill and creating a quality service.
But every application still undergoes QA testing. There are two types of tests:
Manual: the service is started manually, while usability is evaluated and critical bugs are identified. A person without special skills can cope with such tests.
Automatic: requires writing special scripts. They are necessary to find bugs that are not visible to the naked eye, as well as to assess the ability of the service to withstand loads. This requires a person with development experience. You can give the task to programmers, but it will take more of their time to understand new, specific technologies. In addition, it is still more difficult to track an error in your own work than in someone else’s.
Before launching, the service is checked both manually and with the help of computer technology. The team leader is able to perform both types of tests. But such a solution is unprofitable primarily for customers, because an hour of work of a team leader is more expensive than an hour of work of a tester.
“Is it impossible not to test at all?” some people object. Here the answer is unequivocal: no, you can’t. Even if professionals with extensive experience are working on the project, the likelihood of bugs remains. For example, if two developers write good code, then errors may still occur when combining these fragments — this is a normal situation. A web service or mobile application is a complex structure, and it is difficult to predict in advance how its parts will interact in practice, even if they themselves work without problems. The more complex the product, the more likely it is that an error will appear, which may cost the customer user loyalty. Multi-stage testing solves this problem.
The tester looks at the service with a fresh eye and uses an arsenal of tools to test its performance in various user situations. Testing is carried out at each stage of development, and usually lasts several days.
Customers sometimes ask: “But even after testing, bugs appear, then what’s the point?”. Unfortunately, even an experienced tester will not detect all the bugs. Some of the errors are “floating” in nature: they may not be reproduced during tests, but spontaneously appear after the application is launched. But this does not mean that you can refuse checks. One pop-up error is not as critical for the reputation of the application as a whole set of bugs.
“And what is the result? How much does it cost to develop a web service?”
The price of creating a web service or mobile application includes payment for the work of team members. In order for the result to satisfy both the customer and the target audience, not only developers are working on it, but also:
A well-equipped team develops the product quickly and smoothly. A service with a thoughtful, flexible architecture will not require extra development costs, even if the customer has to change the team. At the same time, confused, “raw” code can become a source of bugs in the operation of the application and problems with revision: first you will have to put things in order. Therefore, if you want to be confident in the results of development and develop the service in the future, you should not try to save on the team.