SDL Project Proposals

Thank you for your interest in providing projects for the Software Development Lab (SDL). In SDL, each team of 3 to 5 students works on a moderately large project for a full academic year. Projects start in September, with final delivery toward the end of May. Teams will attempt to deliver running systems, but deployment is the responsibility of the client.

Successful projects have several characteristics:

Students respond particularly well to projects that provide value to a larger community. Projects for non-profits certainly fall into this category. But projects that benefit businesses also work; we just need to identify a benefit to people other than investors. Students are also interested in learning new technologies and addressing new problem areas. The key element is motivation: building useful systems and providing opportunities to learn new skills.

Clients are expected to engage with the students throughout the project:

We will consider multi-year projects, but we cannot guarantee that any particular project will be picked up by a team in the following year. It generally works best to break large projects into smaller pieces with a different portion implemented each year. It is critical that students in successive years have important new features to implement rather than simply refining existing features done by previous teams.

Constraints

Process and Timelines

Ideally, we start collecting new projects in March. However, we will accept ideas any time in the year.

  1. When proposing a project, clients should write a paragraph briefly describing the problem to be solved, how that system will benefit users, and what technologies will be involved. Email that to hasker (at msoe.edu). You are encouraged to contact Dr. Hasker either by email or phone (414-277-7326) if you have questions or need help refining the idea.
  2. Dr. Hasker will use the paragraph to compile a list of potential projects to be sent to the students.
  3. Mid-April: students will rank the projects by interest. In the past we have made final assignments during the summer, but we are experimenting with notifying students earlier.
  4. End of August: clients will be contacted by instructors to arrange a first meeting with each team.
  5. First week of September: initial meetings with teams establishing basic scope and expectations for the projects. Teams will interview the clients for more information.
  6. First three-week "sprint": teams will refine the requirements and develop storyboards capturing how users will interact with the system.
  7. Week 3 or 4 of the fall term: teams will review the storyboards with clients and develop prototypes.
  8. By the end of the fall semester: teams will have completed two full sprints implementing core features.
  9. Spring semester: teams will continue the project with a goal of delivering a final version, including an automated test suite, by the end of the academic year. Students are also asked to prepare materials describing the system structure for use by future teams working on the same project.
Note there is no expectation that students will work on the projects over the summer months.

Successful Projects

The following is a partial list of successful projects to help clients determine scope and evaluate ideas:

Projects from previous years are available: