The centerpiece of this course is a team software project—but what projects will the teams work on? This is where you come in: You may now propose a project, and potentially serve as customer for a team who will build it for you.
Here is how the selection/assignment process will work:
You submit a proposal.
If it follows the instructions below, I add it to the pool of candidate proposals.
Each student reviews all the proposals, and votes for their favorites.
I will take the most popular proposals, create teams, and assign each team to a proposal.
By submitting a proposal, you are agreeing to both work as a developer on one team, and also serve as customer to a different team, which is implementing your proposed software. As a customer, you will communicate with the team assigned to your project throughout the remainder of the semester, explaining your vision for the project, and giving feedback on the software they build.
The project must be a database-driven web app that can be developed using Ruby on Rails.
The project must be suitably large to keep a 4-person team (give or take) busy for roughly 8 weeks. It is acceptable to have a core feature set in mind, and then add “bonus” features if the team finishes the core features early.
The project must not require any special hardware (unless you are willing to provide it, and it does not create a workflow bottleneck).
The team may not have time to complete all the requirements you come up with.
When the course ends, the team is under no obligation to continue working on the project.
You and the team will share joint ownership of the code produced.
To submit a proposal, simply answer the following questions.
Project title? (You may optionally include your name as well. It’s up to you.)
(75-word minimum) What is the motivation for this project? Possible sub-questions to answer: What user needs will your software fulfill? Why would anyone want it? Will it solve a problem? Will it bring happiness?
(150-word minimum) What form will the project take to fulfill the promise of question 1? Without getting too detailed, focus on the sorts of features the web app will provide. In answering the above questions, make sure it’s clear to the reader what the project is about. Also, it wouldn’t hurt if it came across as interesting or exciting.
Each submission that follows the above instructions and is of at least decent quality will earn 1 A&B point (maximum of one submission per person).
If your project is chosen to be built, you will receive a total of 3 additional A&B points—one per project iteration that you serve as customer. Of course, you must fulfill your duties as customer in order to earn these points.