Computer Science Department, Bucknell University

CSCI 475 Senior 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

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 notes which includes:

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 Project Notebook 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, I will issue team accounts and team lockers (in room 124 Dana). The team locker is a central location to store the Team Notebook and other materials of the team.

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 CVS (Concurrency Version System) 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 CVS, the team can easily retrieve a previous version of the file. To encourage you to use CVS, I will be requiring a CVS log be handed in for each Iteration and Release.


Page maintained by Dan Hyde, hyde at bucknell.edu Last update September 6, 2004
Back to CSCI 475's home page.