Introduction
In your assigned group of 3 to 4 students, complete three iterations of
development on a Meetly geotagged scheduling application that interacts with
both nearby Android devices and a centralized server. Your group will create
a git
repository that you must use for development.
Your grade for the project will largely be based on the quality of your
submissions, marked as a group. Portions of your mark will come from your
individual contribution. At the end of the semester, you will provide
constructive feedback to your group members on their strengths and areas for
improvement. Students with poor participation with their team will earn a
poor grade or be removed from the group.
Getting Started
- Create a group in CourSys named the
same as the group name given in class.
- Also create a single repository for the group on GitLab.
The name of your repository must be
<Team Name>-meetly
in lower case,
e.g. fritter-meetly
. This repository should be used for all development.
Add the instructor and TA as "Reporter" members in GitLab. This allows the
instructor and TA to track your progress, but it is also how part of the
project may be graded.
- Decide how/when you will meet as a team. See suggestions at bottom of page.
- Pick a Scrum Master for Iteration 1. This role will rotate to other members
in later iterations. This person is in charge of setting up team meetings
and communicating with the customer or customer representative.
- Understand user stories for Iteration 1. Break down user stories into
development tasks.
- Sketch a UI for Iteration 1, and create an OOD.
- Code your application and deliver working software!
Iteration 1 (Due March 13)
Iteration 2 (Due March 27)
Iteration 3 (Due April 13)
Team and Project Support
Suggestions for all groups:
- Find a good mode/place to meet: in person, via video-chat, or IM/email.
If in person, find somewhere that works for everyone
(a quiet place like a team room?).
- Find a time that works for everyone's difficult constraints:
diverse schedules, 3 campuses, jobs, ….
Be on time for these meetings!
- Respect everyone's mode of communication. Some people don't like to speak
up during meetings but share more thoughts via email later. Try to identify
and work with each person's strengths.
- Respect team member's task preferences: give everyone a fair shot at
working on the part they want to (UI, application logic, …).
Extra group-related support is available for any student or team to draw on.
Example support includes:
- Help discussing challenges with your team to work out a solution.
- Discuss the situation with the instructor to develop a strategy to solve
the problem.
- If some members are not contributing equally, I can highlight with them
the need for more contributions, and the consequences of not participating.
- I can watch
git
repositories and ensure a reasonable amount of activity
by all group members. I may email teams if I see a lack of commits from
some team members. If pair-programming, please put other programmer's name
in the commit message.
Handling Group Problems
If a student is found to not be contributing well to his/her team then the
instructor will do the following:
- Email the whole team highlighting the situation. All team members are
invited to reply and clarify the situation (such as if the person was
working on something not visible in
git
).
- Meet with team as a whole or with individual members. The group problem
will be explained, and the required changes in the student's performance
will be outlined. Team members can contribute to this discussions by
highlighting their needs and views.
- An under performing student will get a reduced grade on that iteration;
other team members may have their grades scaled up if their mark suffered
as a result of other's poor performance.
- An under performing student may be placed on probation; see below.
Probation
An under performing student may be told they are on probation within their
group due to previous poor performance in the group. The student will be
told how long probation is to last (perhaps a week), during which time the
student must demonstrate that they have changed their behavior and become
a contributing team member. Expectations for all students, especially those
on probation, include:
- Explain to the instructor any extenuating circumstances affecting group
performance.
- Attend all group meetings, or explain to group why that's not possible,
e.g. conflicting commitments, and make a reasonable effort to catch-up with
group afterwards.
- Contribute to group discussions clearly, effectively, and respectfully.
- Respond to all relevant group communications within 1 day at the most.
Expectations for communication may be set by the teams, such as replying to
text messages within 2 waking hours.
- Commit code changes to
git
often (daily at least). Commit only high
quality code. Don't break the build. If in doubt about high-quality code,
see the instructor. Clean code conforms to a style guide such as this one
for plain Java.
- Agree to reasonable amounts of work, and reasonable deadlines. Make best
effort to meet these commitments. Keep team informed about challenges and
ask team members and the instructor for help as required.
- Actively seek to compete an equal share of the work and push the project
ahead.
At the end of probation, when a student demonstrates they have changed their
behavior and become a functional member of the team, their probation ends
with no extra consequences (may still have reduced grade for earlier work).
However, if by the time probation ends a student has not demonstrated they
are a productive member of the team, they will be removed from the group.
Students removed from groups will either get 0 on remaining work, or be
required to complete some/all of the work individually; penalties may apply
for failure to function in a team.
If a student is removed from a group then the remaining members of the team
will either complete less of the requirements, or their product polish will
be less. Please discuss with the instructor for each iteration to decide what
is required for your team.
The instructor may make adjustments to these guidelines to better address
individual situations.
Team management \& probationary strategies for CMPT 276 courtesy
of Dr. B Fraser