We often have group projects (CSCI grad school), and I'd like us to be efficient. Should we explicitly vote for a leader? What are tips for making sure that it isn't only one person doing everything?

I appreciate any tips or advice.

migrated from programmers.stackexchange.com Aug 26 '11 at 18:57

This question came from our site for professionals, academics, and students working within the systems development life cycle.

  • 3
    Remember that whoever has project manager responsibilities in this case isn't "in charge" of the rest of the team; they're as much of a member, serving the team, as the others. It's a simple distinction, but an important one. – StuperUser Aug 26 '11 at 14:05
  • 3
    This entirely depends on the group. I was forced to be the leader in a similar situation, because the other members of the group, were not up to the task. Of course it didn't help team moral when I also ended up doing a great deal more of the work, which meant I got upset when certain milestones were not reached and/or tasks were not completed, even though the team would agree to have them completed. – Ramhound Aug 26 '11 at 15:06
  • 3
    @Ramhound, Unfortunately this happens too often, but then again as unfair as it may seem, it is how the real world works most of the time. In a typical team of 10 you will see 2 people carry 50% of the work, 6 people carry the other 50%, and another 2 people who are just awful/stupid/lazy that do nothing at best and slow down the other team members at worst. – maple_shaft Aug 26 '11 at 16:09
  • Can't you agree on WHAT needs to be done, and WHO does WHAT? If you can, then why need a leader? – Thorbjørn Ravn Andersen Aug 26 '11 at 18:56

10 Answers 10

Should we explicitly vote for a leader?

For a so small number of people probably a leader isn't necessary. You can decide everything together with a simple voting system. A leader probably will make the other two feel not so happy.

What are tips for making sure that it isn't only one person doing everything?

You should try to share the work based on your singular capabilities and excels. If there is someone among you excelling in something in particular, let him do the job.

You can opt for having each person do a different task, or helping each other.

Personally, for only 3 people I would suggest to focus on different aspects of the work.

Remember though, that everybody is part of the project, no matter which things he/she is doing or how much of it. Every opinion o suggestion has the same importance as those of other people involved in the project.

This is the most important thing to respect.

Even if you decide not to have a leader or vote for one then you will find out very quickly that the person with the most type A personality will naturally take charge of the group.

This doesn't mean that person is power hungry or more valuable, but development teams naturally need a lead to help organize tasks, increase efficiencies, tear down roadblocks and communicate the general status to people outside the team.

  • 9
    This usually works until you find a team of 3 type A personalities. – Joel Etherton Aug 26 '11 at 15:05

When I was developing my undergraduate senior project (2 semester project worth 2 class credits) I was a part of a 3 person team. We started without a leader and work progressed haphazardly. When we decided that we wanted someone to be a leader of the group we specifically were looking for someone who could break ties when opinions differed, understood the scope of the project and could be objective in splitting the work among the group and would take responsibility for setting deadlines.

The leader, in our case, was not the boss, but rather was a team member who helped the group maintain initiative. Our leader let the group pick the jobs they wanted and tended to look after the left over tasks (merging documentation, maintaining the repository, preparing reports and presentations generally).

In our experience, it worked out very well.

It depends on the scope of the project.

For homework assignments that are going to take you a few days or a week, it probably won't matter much beyond having someone say, "hey dude - your part finished?"

However, if you're starting a massive, semester long project that will be taking dozens or hundreds of man-hours for each team member to complete, you definitely need to elect a project leader. That doesn't mean dictator, but there should be someone coordinating the efforts of the team as a whole, and following up with individual team members.

In such a situation, I would even look into setting up a bug tracker that also doubles as a good project management tool - most vendors offer a free version for students working on school projects.

This will give you all experience in being in a structured team (which is what you'll likely find in the real world).

Good luck with your project!

  • 1
    I think even for homework assignments they should act as professional developers, because they need to understand the importance of responsibilities, duty sharing and cooperation. "hey dude - your part finished?" doesn't sound right to me. – Jose Faeti Aug 26 '11 at 14:15
  • 1
    By and large I agree - it all depends on the complexity of the project and how closely everyone needs to work together. It should be a judgement call by the group. – Jarrod Nettles Aug 26 '11 at 14:26

Yes, absolutely!

Someone needs to be responsible for being sure the project is on track and it is meeting its milestones. This may not be a 'leader' or someone who is 'in charge', but you do need someone who is paying explicit attention to whether or not you're on track.

If you're using agile, then a scrum board with tasks and points could help to keep everyone on task.

Even if you're not using 'agile', then I still recommend putting together a kanban or scrum board with all the associated tasks and their status.

  • 1
    Right on the money George. Not only does every project need someone to organize and coordinate it but also, this is an opportunity for both project manager and the developers. In real-world programming jobs, developers are members of teams need to act accordingly. Sometimes those behaviors and responsibilities aren't obvious. Also, learning to work with a project manager without it becoming all about egos, personalities and dominance and such takes takes time. The sooner that learning programmers work with these ideas, the better. – Adam Crossland Aug 26 '11 at 14:39

Three relatively equally responsible people should be able to manage themselves. Divide up the tasks and have everyone agree on their area of responsibility. Each member can come up with estimates and everyone should vote on when certain milestones should be reached and the quality of the code (take turns reviewing each other's work).

Having a shared space or document will make this easier. Each person is responsible for keeping the other two informed. Lots of ways to do this; make it simple. A shared spreadsheet should handle it.

If your team was 5 or more, I'd suggest having someone in charge of coordinating task tracking, making simple decisions and having the final vote on strongly debated topics. You can't let discrepancies go on too long; someone may have to make a decision. The more people there are the increase in variation and likely-hood someone will fall through the cracks. You don't need the greatest system in the world, but it is nice if there is some consistency on how things are done.

I feel that you are looking for a leader because there are some conflicts that is not easy to solve. Even if you have a leader in situations of conflict, the leader will not really get a chance to decide on the conflict. He will just be looked as a bully or overthrown(mentally), resulting in other two working more closely. The whole idea of a leader of same experience age group is not good for the project.

Here is some classic management solution

  • The first solution is vote and accept.
  • If that does not work go and do more research on which helps.
  • If you still cant reach a solution, go to a random 4th party for a vote in your age group.
  • If you still cant reach a solution, go to a random 4th party for a vote from elder people.

You can even use StackOverflow or StackExchange applications to resolve your conflicts.

Edit: And yeah. Best of luck on the project.

Having a leader on a group project is a bad idea. In the normal work world the leader, or your supervisor will be held responsible when the whole group fails, not each individual person. Since this is a group project you are all considered equally responsible for all things related. Therefore you need consensus among everyone involved when it comes to important decisions such as: application design, development process, and workload balancing. If your group has an even number of people in it, you may need to appeal to a higher power when the group is evenly divided on which approach to take for something. I recommend, in that case that before each discussion, one person be appointed to be the tie breaker (choosen via drawing straws, rotation, etc.) to eliminate arguments.

As others have said, this does not preclude the need for a project manager. This can be done as simply has having a list of tasks to be done and moving them through the stages (open, in development, dev review, qa, closed) via a whiteboard and notecards. It does not require a specific person to stay on top of this task if you all have agreed to how this process works beforehand.

And last, but not least. Communication is going to be your biggest factor of success, most processes breakdown at some point, and you will need to communicate with each other to get past those points.

Here's the thing. The team may not need to be led, but the project has to be managed.

You guys may be able to manage the project collectively, but there is risk. Even if you are not OK with putting someone in charge of the project team, you should put someone in charge of managing the project.

Typically, the project manager is also the team leader and so does task assignments, sets deadlines, and makes decisions, but that it not required.

Project Management, at it's most basic, entails:

  • Having a process for assigning and keeping track of "who is doing what by when".
  • Having a process for reporting status and issues to the stakeholders, superiors, etc.
  • Having a framework for making decisions when there is disagreement. Typically, a team leader will resolves disagreements. You could have the PM responsible to facilitate decisions by the group rather then making them.
  • Having a process for communicating in an organized manner among the group and with relevant outsiders.
  • Planning the project well beyond the current tasks and looking forward for future issues, risks and problems.

I suggest the book Bare Bones Project Management by Bob Lewis as a place to start.

With 3 people I highly doubt you'll to specify one person as the leader. Since each of you only has to keep in mind the progress of the 2 other people and not entire departments, you should be fine in terms of communication.

If you are able to get together regularly enough to perform the duties of a leader as a group (keeping track of project, maintaining communication, planning out and distributing tasks, etc.) then I see no need to designate them to just one person. :D

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.