Main

Working in Teams

Working in teams can be both challenging and rewarding and adds some aspects to software development that you will never encounter when working on an individual project. Part of the purpose of having a group project in a course is to give you some experience in managing the non-coding aspects of software design and implementation. Here are some suggestions that address some of those aspects and can help you make this a fun and productive experience.

  • Communication (frequent and open) is probably the most important characteristic of successful teams. This is especially critical in short, intensive projects.
  • Having a plan and sticking to it: while you may be able to complete a single homework the day it is due in many cases, you will absolutely not be able to do that for any team project.
  • Try to keep workload fairly distributed. This is not to say that everyone should work a set number of hours every week, obviously some people will do more some days than others. Try to resist the urge to do things your teammates are responsible for. Also try to resist the urge to do nothing and let your teammates compensate.
  • There are many ways to track and encourage progress in a team software development project. Consider, for example, scheduling regular brief meetings (where each member gives an update of what they've accomplished and plan to do next). These can also be done via email, Google hangouts, or Skype.

Dealing with problems and concerns

Team members should clearly express and agree on expectations and raise concerns as soon as they arise so that there is time to address them. Avoid personal confrontation -- either raise issues at team meetings, convey them to the team leader, or contact the instructors if you are uncomfortable with the other options.

Green Marinee theme adapted by David Gilbert, powered by PmWiki