Homepage Syllabus Schedule Homework Project

CSCE 431: Software Engineering

Project

Introduction

Students will complete a course project in teams of 5-6. Grading will be shared among all members (i.e., the project gets a grade, not each student separately), and we will require specific proof of each member’s role in the group. Groups will be assigned to an external customer (e.g., student organization, local non-profit) to build a SaaS application. See examples of previous projects from UC Berkeley.

The timeline of the project is as follows:

Project Solicitation

If your team has an idea and a customer for a project:

Team Formation

Teams are self-selected. They are normally six members, but class enrollment may require some teams of five. If you cannot find a team, post on Piazza and the TAs will help you. If you are not on a team of 5 or 6 members, please post on Piazza looking for a team. If necessary we will reshuffle teams to make sure all teams have 5 or 6 members.

Please create a team name (be creative!). Team names should not include the word "Team". ONE PERSON on the team should send an email to the TA using the following format:
To: <TA Name>
Subject: [CSCE 431] Project Team - (Team Name)
Team Name: AgileAggies
Jane Student <UIN>
Joe Student <UIN>
...

Project Selection

A list of projects will be posted on the course website, and teams will email the instructor a list of their top 5 projects and bottom 5 projects. Projects will then be assigned to teams. Teams that already have an approved project will not take part in this selection. The instructor will email your project customer contact informing them of the project selection (or non-selection) and which team will contact them.

Iteration 0 (Points: 10)

This week you should set up meetings with your customer. Emphasize to them that time is short, so you need to get going right away. In the first meeting(s) you should extract their user stories, sketch low-fi user interfaces and story boards (bring something to sketch on/with), etc. It might help to record your conversation (e.g. on your phone). You can then iterate with them and prioritize the stories. Each team should select a Scrum Master and Product Owner. The Scrum Master will submit the team reports. I recommend it be the Product Owner who makes contact with the customer to set up the meetings. You need to meet with the customer every iteration, if at all possible.

Turn in the following, with all elements in a single PDF file:

Iterations 1 to 4 (Points: 5 per iteration)

Overall Requirements

Specific Milestones in Each Iteration

Turn in the following, with all elements in a single PDF file:

  1. Customer meeting date to demo this iteration.
  2. User stories implemented in this iteration.
  3. Design diagram for this iteration.
  4. Any additional documentation related to the user stories, e.g. changes to lo-fi UIs.
  5. If you were not able to implement all the stories that you initially chose for this iteration, please list which ones and why not.
  6. If you have changed any of your stories, please write a short description of the changes made and the reason behind the changes.
  7. If you are working on a legacy project, please list any user stories that were rewritten and code refactored.
  8. Evaluations of your code and tests, such as SimpleCov and CodeClimate
  9. Links to your Pivotal Tracker, Github repo, and Heroku deployment. Make sure these are up-to-date.

Please tag your git repository revision with Iteration1, Iteration2, etc. Here are some example commands for how to tag revisions:

Grading will be based on the quality of user stories, comprehensiveness, and success of your test cases. We might also create our own test cases. Make sure that we can git checkout and run your tests from scratch.

Team Peer Evaluation I (Points: 5)

Each team member must fill out the first team peer evaluation and must submit to eCampus. This peer evaluation will be non-graded for individual team members. However, ALL team members must submit their forms in order for the team to gain the points.

Classroom Presentation (Points: 10)

Each team will give a 15-minute prepared presentation (including 3-minute Q&A) in class on the project progress. All team members must participate in the presentation. See Schedule for the presentation schedule.

Final Report (Points: 30)

Submit a zip-compressed file to eCampus including the PDF of your poster, your progress presentation slides, and a final report (as a PDF) with following items:

  1. Two-paragraph summary of the project as implemented, including the main customer need and how the application meets it, including who the stakeholders are. This will contrast to what you wrote in Iteration 0.
  2. Description of all user stories (including revised/refactored stories in the case of legacy projects). For each story, explain how many points you gave it, explain the implementation status, including those that did not get implemented. Discuss changes to each story as they went. Show lo-fi UI mockups/storyboards you created and then the corresponding screen shots, as needed to explain to stories.
  3. For legacy projects, include a discussion of the process for understanding the existing code, and what refactoring/modification was performed on the code, in addition to the user stores listed above.
  4. List who held each team role, e.g. Scrum Master, Product Owner. Describe any changes in roles during the project.
  5. For each scrum iteration, summarize what was accomplished and points completed.
  6. List of customer meeting dates, and description of what happened at the meetings, e.g. what software/stories did you demo.
  7. Explain your BDD/TDD process, and any benefits/problems from it.
  8. Discuss your configuration management approach. Did you need to do any spikes? How many branches and releases did you have?
  9. Discuss any issues you had in the production release process to Heroku.
  10. Describe your implementation environment – homebrew, VirtualBox, AWS, Cloud9, etc., and any issues with it.
  11. Describe the other tools/GEMs you used, such as CodeClimate, or SimpleCov, and their benefits.
  12. Link to two-minute video interview with the customer. Store the video on Vimeo.
  13. Link to the 2+ minute demo highlighting your app's main features. Here are two examples from past projects: Nurse Vacation Scheduler and Pet Foster Home Finder.
  14. Link to your public GitHub repo. Make sure all code (including Cucumber and RSpec!) is pushed to your repo.

Notes:

Final Poster/Demo Presentation (Points: 20)

Customer Satisfaction Survey (Points: 5)

Each group (project owner) must send their customer the customer satisfaction survey, and ask their customer to email the instructor the completed survey by the end of the demo day.

Team Peer Evaluation (20% of your total project score)

Each team member must fill out the final team peer evaluation. Each member must submit these to eCampus separately.

Valid XHTML 1.0 Strict