Mobile development: individually or as a team?
Hello! As many people know, Mail.ru Group conducts educational projects for students at 9 universities: MSTU. Bauman, Moscow State University, Moscow Engineering Physics Institute, Moscow Institute of Physics and Technology, St. Petersburg Polytechnic University, Mospolitech, Moscow Aviation Institute, Moscow State University and PSU. Among 70 disciplines, there are courses on mobile development for Android and iOS platforms.
From the point of view of methodology, there is an interesting detail in educational projects: we use two approaches in training – individual and team. Some teachers build the curriculum based on tight teamwork, while others, on the contrary, rely on the individual work of each student. Both approaches give their results, have their “pros” and “cons”, their followers and critics. We listened to the arguments of both sides.
How does an individual approach work?
In general, an individual approach is more utilitarian and productive – students really prepare for future work. They independently go through all the stages – and this means not only raising their own level, but also developing a sense of responsibility for their work. Those. there is no such effect when a student hopes that a topic that he did not understand will be made for him by other team members.
Among the shortcomings of individual training can be identified the lack of exchange of experience. Working alone, you can only rely on your own experience, which is definitely less than that of a team of 3-4 people. In addition, working alone, you cannot increase the level of technical skills for working in a team. For example, working with git is simplified to add, commit, push. And there is no chance to experience neither real git flow, nor the problems that it solves, nor the problems that will occur in real projects.
How does the team approach work?
Modern projects are not done alone, they are done in teams and, at times, quite large. Therefore, the developers are faced with both the requirements for knowledge and the requirements for the ability to work together. Therefore, we implement team work on the project of 3-4 people. Thus, students implement all stages of development together. The fundamental thing that teachers note in a team approach and do not see it in individual work: if all the processes are well set and the participants are “on fire” with a common idea, then the general leveling of skills will be faster and the final project will be more complicated and better.
Despite the fact that productivity does not grow linearly with the size of the team, various parts of mobile development successfully parallel. There is an important aspect: you must first agree on the architecture and model of the data being operated. One developer can develop one functionality on one screen of the application, and another – another and at the same time not to interfere with each other.
Another plus of team development is its resilience to emergency situations.
Thirdly, teammates help find more ways to solve a particular problem. And simpler solutions save development time and reduce the likelihood of errors.
Another advantage of this approach, which does not lie on the surface, is that students learn to defend their decisions. If a student suggested that his team use a library in the project, he should convince him of the need, explain the choice. Similarly, with the choice of architecture, database, layout approaches, and so on. As practice shows, at the beginning of a career it is much easier for a developer to learn how to work in a team, negotiate with colleagues and communicate effectively than after several years of lonely freelance.
At the same time, the team approach also has some disadvantages.
With a team approach, additional time is spent on synchronization, rallies, disputes, Merge Conflicts that arise among participants. Participants may not have full expertise in the project. Someone who has shown poor performance may “hide” behind an active member of the team. In addition, the loss of one member of the team – for example, when someone decides that he is no longer interested in him and leaves the team – necessarily negatively affects the result.
|Pros of a team approach||The advantages of individual|
|Bleeding soft skills||Comprehensive experience: the student goes through all the stages of training|
|Exchange of experience with other team members||Self-study in a competitive environment|
|Opportunity to defend your decision in front of other team members||Pumping up time management|
|Ability to do more complex projects||Understanding your own responsibility for the result|
Our teachers shared their views on how individual and team approaches affect the learning process and preparation for work in serious projects. What do you think should be taken into account and which approach would you prefer when exploring a new direction of development?