CS 498 - Senior Project outline - Spring 2024
Objective: design and implement a complex software system utilizing the skills acquired in CS 410
All grades are calculated out of 50 pts maximum
Note: all dates are subject to change
Project phases, deliverables, and due dates
This project must be completed by teams of three or four students using
an agile process model.
Each deliverable must be submitted on or before the indicated
due date. Teams will not be allowed to proceed to a subsequent project
phase without submitting a satisfactory deliverable for the previous
phase.
Each deliverable document must have a title page indicating the
project title, deliverable name, team name and membership, and submission
date.
The following will always be considered when grading your work in this course:
- Presentation: the report is well formatted, easy to read, and easy to navigate;
- Quality of writing: language, grammar, clarity, professionalism;
- Consistency: all required points are addressed in the same order as listed in each section below.
Get to know your team and make decisions about your own rules. Submit a PDF document containing the following:
- Introduce your team: give your team a unique name and provide a group picture of the entire team.
What are the strengths of your team as a whole?
- Introduce each team member: include a picture and a 100 word biography of each team member.
A biography should be professional as if you were introducing yourself to a prospective employer.
Identify one team member who will serve as the main contact for the instructor
- Hold your first virtual meeting: include a picture showing your camera feeds in a video conferencing software of your choice
- Discuss every aspect of the team agreement in detail and describe all your decisions in the writeup
Your team agreement must include the guidelines for the following
(but feel free to add any other items you believe are important):
- methods of communication (email, phone, messenger, text, ...)
- communication response times (email, phone, messenger, text, ...)
- meeting attendance (when to meet, whether all meetings are mandatory, ...)
- running meetings (when, where, face-to-face vs. online, who takes minutes/notes, ...)
- meeting preparation (whether preparation is needed, what to prepare, ...)
- version control (what to/not to commit, content of log messages, ...)
- division of work (how to divide work, who will decide who does what, ...)
Important note: it's not OK to have a strict division of responsibilities, e.g. one team member will write all documentation/reports, one will serve as a team manager, one will serve as a developer, one will serve as a tester. Each team member is expected to contribute to a broad spectrum of the team's tasks.
- submitting assignments (when to submit, who will submit, who will review the submission, ...)
- contingency planning (what if a team member drops out, what if a team member consistently misses
meetings, what if a team member is academically dishonest, ...)
- Each team member needs to create GitHub account. Include each member's GitHub account name in the writeup
Submit a detailed prioritized product backlog document (PDF, no page limit) as described below:
- Estimate the size of your user stories.
Use Fibonacci numbers within the range of 1 to 8 to represent a relative size of each user story.
Label each user story as high, medium, or low priority.
Note the projected cumulative size of all user stories in your product backlog.
- Taking into account the priorities and any possible dependencies, identify a subset of user stories to be implemented during the first sprint (there will be a total of six sprints). Be sure that the cumulative size of the selected user stories is about 1/6 of the projected size of the full backlog. Describe the functionality that your partially implemented system will have at the end of the first sprint.
Every week, each team will update the class about the current status of their project.
Each team will need to briefly address the following during each weekly scrum (WS) and sprint retrospective (SR):
- Briefly introduce your team and project.
- For the current week/sprint:
- What did the team accomplish during the week/sprint?
SR only: How many story points did you a) plan for and b) completed? Include a demo focusing on the work completed in this sprint.
- What were the individual contributions of each team member during this week/sprint? Specifically, what were the tasks assigned to each team member and how much each team member was able to accomplish?
- SR only: what was your customer's feedback from the current sprint review (be sure to give a demo to your customer showing what was accomplished during this sprint).
- SR only: What aspects of the sprint (development/technologies/teamwork/etc) worked well for you?
- What problems did you encounter and how did you resolve them?
- SR only: What are the lessons learned so far?
- SR only: What changes will you be making based on the lessons learned?
- For the next week/sprint:
- What are your plans?
SR only: what are the specific sprint goals for the next sprint?
- What challenges do you anticipate?
WS will not include a demo. Each SR must include a brief demo focusing specifically
on what was accomplished during the sprint being reported on. Be sure to address the amount of work accomplished during
the sprint by comparing the number of story points planned vs story points actually completed.
For each SR, submit a report (PDF, no page limit) indicating every SR-specific point outlined above. Include a backlog for the next sprint as well as its goals.
All software developed within this project must be successfully
demonstrated in class. Each demonstration must be accompanied by
a brief presentation explaining the nature/specifics of the project.
Project demonstration grade will reflect the quality and degree of project completion.
Submit the user manual document (PDF, 2 pages minimum, not including the screenshots) as described below:
- Detail all necessary steps needed to deploy/install your system. Provide all necessary technical specifications (2 pts)
- Explain the main features of the system to a potential user who may not be familiar with it (3 pts)
- Provide a walkthrough for the main scenario of using your system; include screenshots as necessary (3 pts)
- Provide walkthroughs for at least two additional scenarios with additional/alternative functionality; include screenshots as necessary (2 pts)
Grading, teamwork, and project completion
All deliverables will be graded as a result of work of the entire
team. However, individual students may receive different grades
based on the degree and quality of their involvement in the project.
To facilitate the objectivity in grading, each student will be required
to complete one or more confidential survey about the involvement of other
members of his or her team in the project. This survey will be
strictly confidential. Students who fail to complete a teamwork survey
will receive a grade of zero for the entire course project.
Each course project is expected to meet customer requirements and be completed by the end of the semester. The degree to which the project meets original requirements will be determined by the project customer and the course instructor. In cases when the project requirements are not fully met, the team's project grade may be adjusted proportionally.