Computer Science 121 - Project #2

Requirements Development

Spring 2007

Introduction

We talked about a good product definition being a prerequisite for a successful product, the characteristics of good requirements and the process for developing them. We have also talked about the elements of a good team and ways of partitioning work among the members of a team. In this project, you will organize yourselves into teams and develop requirements for a new product.

The primary goal of this project is to give you real experience with the major activities associated with the creation of a product concept, and the development, qualification, and prioritizing of requirements. A secondary goal is to further develop your abilities to intelligently plan a group endeavor, and critically evaluate a completed project.

The Problem

You may choose any type of product you want, a new product, or an improved version of an existing product. You will not be graded on the type of product you choose ... but you should be aware that some choices are better than others:

The Assignment

For this project you will:

WARNING

The instructor (and/or TAs) will be present at (but not participate in) your customer review session. We will ask one team to conduct their customer review session in class (on 2/13 and/or 2/15) ... for which they will receive substantial extra credit.

The primary work products should all be well prepared, and should include:

  1. Plan

    describing the steps that will be taken to perform this project, the division of work among team members, and the points at which results will be reviewed, combined, and turned into final work products.

  2. Product Concept Description

    One page or less, describing what the product does, who wants it, and why they would want it.

  3. Competitive analysis

    A summary of what products already exist, what features they have, how they have been successful (or unsuccessful), and what would make your product compelling (or more compelling than existing products).

  4. Product Requirements

    A list of things that your product has to do, augmented and validated by review with potential customers. These requirements should be proritized and ready to give developers, and have all of the goodness characteristics described in our reading and lectures on requirements.

  5. Notes from a customer review meeting

    where you presented your concept, gathered their feedback on the concept, gathered new requirements from them, and feedback on the requirements you had already developed. These notes what you presented, the comments you got, the questions you asked, the answers you received, and a summary of conclusions that you drew from that meeting.

  6. A Post Mortem

    You, as a team, should conduct a meeting where you review and assess:

    One of you should write this up as a formal report.

In addition to these I also want to see your preliminary notes:

  1. Your initial product description.
  2. Your preliminary use cases (before talking to customers).
  3. Your prelminary requirements (before talking to customers)
I don't care how sloppy or poorly organized these are ... but I will use them to evaluate the benefits you obtained from your customer elicitation and the results of your reconciliation and prioritization efforts.

I am not specifying formats for any of these work products, and will accept them in any combination of ASCII text, html, word, powerpoint, standard graphics formats, or even paper. Part of the exercise is for you to review what we've said about the purposes of these work products, and to figure out what information each should contain, and a way to effectively convey that information. I believe that forcing you to work this out for yourselves will have greater educational value than giving you forms to fill in.

Rules, Submissions and Grading

This is a team project, but different individuals will have primary responsibility for different processes or work products (or different parts of a single work product or process). Each team will be working on a different type of product. You are free to talk your team members (and for that matter other teams) about the processes you are following. You may review your work products with your own team members, and revise them based on their feedback.

  1. You may not include (uncited) material written by anyone else in a work-product for which you have primary responsibility.
  2. You may not share your work products with members of other teams.

You will be doing research to develop your product definition and requirements. I expect that many of the ideas for your product will come from this research. Cite all of your sources for each work product, and explain how each source contributed to your work products.

All of your primary work-products will be developed, maintained, and submitted in a subversion repository, which I will create for each team. I expect the primary work products to evolve as a result of your research and meetings, and to see that evolution reflected in the svn commits and comments.

When you are done, package together:

  1. the names of your team members
  2. the URL for your subversion repository
  3. an index of your work products, briefly enumerating and describing each, and listing specifically who did what parts of which.

    This will (1) be compared with the plan and (2) be the basis for the individual work portion of your grade.

And send all of these things to me in an e-mail with the subject "cs121 - proj2". If you will be submitting a project late, please notify me of this on or before the project due date. When you finally do submit it, please tell me how many of who's (3 each) slip-days you want to use.

So that you will know exactly what I expect to see, here is a pointer to the grading guidelines that will be used to score your submissions.