Answer the question
In order to leave comments, you need to log in
Collaborative programming methodologies?
Tell me, are there any methodologies for dividing tasks within a project between a small group of programmers?
I am a manager in a small iOS development studio. Sometimes, when I have several projects under development at the same time, I do not understand what will be more effective - give each programmer one project or insist on group work.
It seems to me that group work should be more effective, since it will not be possible to fall out of work for a long time, you will always be controlled by your partner, however, I understand that I am incompetent to make a definite decision.
What are the current views on solving this problem? How to properly split a project? And should it be shared?
Please advise.
Answer the question
In order to leave comments, you need to log in
I will share a view from the side of the programmer.
Here we are doing a project with a team of 3-5 people. The project is long, more than a year. As a result, each is responsible only for his own part, he does not understand anything in someone else's. Some things are implemented independently two or even three (!) times, then with mats you have to refactor everything to a single view.
Programmers don't look at each other's code because there is no time for that. The bosses are waiting for progress on the work plan, at the meeting they ask you: will you have time to do this in N days? You estimate on your fingers, multiply the time by pi, as it should be, and say "yes, I'll have time." As a result, you even have time, but there is almost no time left to look at someone else's time code.
One of the advantages of joint development: if one person goes on vacation, the other will be able to at least assemble a build. You can find more pluses if there is a person among the programmers who cares. Then even some documentation may appear. If no one cares, then no matter how many people will work on the project, the documentation will not appear. Sorry, it hurt.
About to customize. I don't know how or where, but in my experience the encoder codes at a constant rate, no matter what. If one person delays the rest in some way, then this is just an excuse to take a break or start coding another task. Do you think they will customize?
There is also an opinion that nine pregnant women will not be able to give birth to one child in a month. If the project can really be divided into more or less independent parts, then you can give them to different programmers. If the work process can be cut into small parts that can be done in parallel, then they can also be distributed among several people. But it is also best to find out this question from programmers.
Try looking at Scrum and Sprints. And also to put not 1 programmer, but 2-3 on one project. Then they will push each other on their own.
Throw off this yoke immediately. Let the developers sort out the tasks themselves, focusing on their experience. The number of employees on the project can be dynamic. We even have juniors picking up their own tasks.
If there is one developer on the project, then add a second one for a while, let them pair-program so that the project is not completely tied to one developer.
I advised a similar system to my sister for her testers. True, they managed that some of the important tasks are still distributed by her. Here everything depends on the team and you need to adjust by doing retrospectives and discussing what has been done well and what has been bad lately, to solve problems.
Group work is only effective in very small groups. 2-3 people. Strong losses on interaction begin more. The main thing is to clearly identify among them the person in charge, who will have the final say on technical solutions.
Mobile projects are usually small - they can afford the luxury of developing with an ultra-small team, you need to use this.
It’s better not to put singles on projects - you skyrocket the risks associated with leaving / illness, etc. + The couple really motivates each other.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question