Computer Science Department, Bucknell University

CSCI 479 Computer Science Design
How to Organize Your Project Team

``The people who succeed in an industrial environment are team-oriented, have leadership attributes, and can express themselves orally and on paper.''

Above quote written by Kenneth Neves in ``Thoughts On CS Candidates For Industrial Positions,'' ACM Computing Surveys, Vol. 28, No. 4es, December 1996.

Since most software and hardware in industry is developed in teams, you need practice in sucessfully functioning on teams; performing in leadership roles; and writing, and presenting technical material.

Team Planning

Planning is the key to a successful team project. We suggest that your team use the three-step stategy as outlined below:
  1. Team agrees on purpose, scope and overall technical tasks.
  2. Individual members take assigned tasks and develop detailed plans and solutions.
  3. Team reviews members' work frequently and provides feedback.

This strategy combines team work and individual effort; it is effective because it draws on the strengths of both.

Leadership

Leadership is another key to success. However, it is a myth that a team must have a leader. Each successful team requires leadership, i.e., members being proactive and moving the team closer to its goals, not necessarily a leader. For synergy and creative collaboration this leadership should be shared by all the team members. [Stein and Hurd page 171].

"Every successful human endeavor involving collective action requires leadership." [Oakes, page 349] Without leadership, humans tend to drift apart, act alone and lose purpose. Many times this leadership is supplied by an appointed leader or by a leader selected by the team. However, it is important for members of a team to realize that all members should provide leadership, e.g., keep the team focused and productive.

Team Roles

You should select a facilitator, notetaker and timekeeper at the first team meeting. We recommend that the three roles be rotated among the team members, say every week.

Team Meetings And Minutes

Your team should meet at least once a week. When the team meets, an individual will be assigned the task of notetaker or scribe. The notetaker takes Minutes which includes the following sections:

Communication

Effective communication between your team members as well as with your Customer and Instructor is a must. Formal communication lines, e.g., minutes of meetings
, memoranda, reports and Wiki are important. However, be aware that informal communication lines, e.g., email between team members, are important too and fostering them is the responsibility of the team.

To foster communication, each team will be issued an account and Wiki space.

Configuration Management

Part of a team's organization is configuration management, i.e., keeping a history of all the configurations (versions) of the project. A project evolves over time and sometimes it is important to be able to back up to a previous step. Perhaps, the team decides that a recent design decision was the wrong one and wants to backup and try an alternative. A team should apply configuration management to ideas, designs, reports and programs.

Configuration management is especially important for computer programs since they are so fluid. In the case of programs, a configuration management tool such as the Subversion can also be used as part of a disaster plan. For example, late one night one of the members of the team accidently does irrepairable damage on a large program file. With Subversion, the team can easily retrieve a previous version of the file.

You are required to use a configuration management system! We suggest you use Subversion for your programs. We have added it as a plug-in to Eclipse.


Page maintained by Dan Hyde, hyde at bucknell.edu Last update August 29, 2009
Back to CSCI 479's home page.