Discussion Details
You and your entire discussion session will be working as a group to enhance or complete an open source
Java project. After researching and finding a list of open source projects, your group will vote and
finalize a project to continue developing. You will work on this project for the remainder of the
semester. You will define, show, and report the specifics of the tasks that need to be performed.
Below, I include information regarding the general areas which must be satisfied, focusing on keeping
you in a software engineering mindset.
Week #1 (September 1, 2009)
During your first discussion complete these activities:
- Introduce yourself to everyone.
- Discuss your interests within Computer Science. Get to know each other a little bit.
- Select a group name.
- Define the group structure you will use, including how you will make decisions for the direction
of your project, the assigment of tasks, distribution of work, and so on. Assert to Hale & Jeff
your group structure by the end of discussion.
- Discuss the role each person will be assuming in the group. Everyone must have a clearly defined
role within the group. Required roles to identify are listed below. Assert to Hale & Jeff your
breakdown of roles within the group by the end of discussion.
- Present and discuss your three project proposal ideas.
- Plan and distribute tasks for the upcoming week.
Due Week #2 (September 2, 2009)
Between the first and second discussions complete these activities:
- Select the project you will work on this semester. Note, this selection will determine details for
the following assignments. Ensure you have finalized this selection with enough time in the week
to work on these other activities.
- Create version one of a representation of the currently existing system structure. Note,
this will not represent what you are going to do. Instead it will represent the state of the
system right now, as you begin your work. It will serve as a good talking point for starting the
second week. Your representation might include system diagrams, code fragments, code comments and
so on.
- Create a project website. Your project website will contain links to your entire project
description, documentation, and resources (repository, references, wiki, group process log, and so
on). In addition, the group project site will link to your invidual pages and time sheets.
Incorporate within the website an identification of your group structure and individual roles and
responsibilities.
- Each group member will create an individual/personal web page. Your individual web pages will
contain your role, your individual responsibility assignments, your individual time sheet (log
book), and projected responsibilities for the upcoming week of activities. Note, your time sheets
will include at a minimum the activity date, activity details, projected time spent on the
activity, and the actual time spent on the activity.
- Ensure your individual web page has been linked to the project website.
- Research and setup the usage of a versioning system, such as
CVS or
Subversion.
- Provide repository access to all group members.
- Each group member must prepare an activity plan reflecting their tasks and responsibilities for
the upcoming week. These assignments might be self determined and assigned or they might be
assigned by a group leader, depending on your group structure. Every group member must have their
assignment list posted each Monday (the night before discussion) at 11:59 PM in preparation for
presenting your upcoming assignments during discussion. You must also update your weekly record
from the previous week by Monday at 11:59 PM so that your prior work can be presented in
discussion. Your timesheet will be evaluated for the first time on Tuesday, September 8, 2009 and
it will include your completed list of tasks from September 1, 2009 through September 7, 2009.
Note, the completed list will contain at a minimum the date of the activity, a description of the
activity, the estimated time of the activity, and the actual time of the activity. This timesheet
will also include your upcoming tasks between September 8, 2009 and September 15, 2009. For
upcoming tasks, you will include at a minimum the projected date, activity description, and
estimated time.
Project Roles & Group Structure
Everyone in the group needs to have a role to play within the continuing development of your system.
Some roles will have specific action items associated with them, others will be more abstract. A more
abstract role relies upon the diligence of the individual to ensure their tasks are completed (I am a
developer... what are you currently tasked with developing?). Adding specific details to the abstract
role will allow you to manage the expectations others have of your performance. Sometimes it will be
appropriate for one person to serve in more than one role (for example, the same person being the
Repository and Website Manager). Sometimes it will be appropriate for a group of people to satisfy a
single role (the GUI Development team). You need to clearly define who will be doing what. The roles
I have listed here you are required to identify. Other roles exist that you will want to fill in as
well (such as developer, designer, and so on).
Process Log Manager: Someone who will manage the process log of the entire project. The process
log will include the list of activities performed by the group, at the group level; meetings, pair
programming, and so on. The process log must be kept up to date so that groupwide information can be
reported to the TAs in discussion sessions.
Website Manager: Someone who will be responsible for managing the group website. This person
will need to ensure all project details are current on the website; requirements, design, link to the
process log, links to individual web pages, and so on.
Repository Manager: Someone who will be responsible for managing the system repository. This
person will ensure everyone has access and that the repository system is stable.
Documents Manager: Someone who will maintain all the system documentation; requirements, design,
test plan, and so on.
Contact Manager: Someone who will report the weekly set of activities to the TAs and myself on a
weekly basis. In addition, this person will be responsible for ensuring all aspects of the system which
need to be presented are in place where they should be at the time they are supposed to be.