The client for a CSCE 606 (Software Engineering) project serves a vital role for the course and the students.
Clients are expected to…
Meet with the development team periodically (at least once every two weeks) to
identify the functions that the system should perform.
sketch out a user interface and develop a “storyboard” of how the interface works.
try out the software.
provide feedback on prioritizing additional features.
create, review, and revise as needed a schedule of milestones (what features when)
Participate in requirements engineering at the beginning of the project (discussing what you want)
Participate in verification and validation at the end (discussing what you got).
Provide a final evaluation of the project, which will be used to provide feedback to the instructional team.
Treat the team members with respect.
Clients should expect…
To be contacted by the team within 1 week of project assignment.
The team to schedule regular meetings (at least once every two weeks).
The team (or its representative(s)) to come to meetings prepared with updated user stories and interface mock-ups, as well as a demonstration of the features that have been completed since the last meeting.
Very little obvious progress to be made in the first 2 - 4 weeks (1 - 2 sprints). Students are learning the language and the frameworks while they work. The team will become much more productive later.
The service to look very plain for the first 10 weeks. The focus is on functionality, not aesthetics. “No amount of pretty can make up for broken.”
A minimum viable product (MVP) to be completed at the end of each 2-week sprint. The MVP should have just enough features to be usable in order to gather feedback for future product development.
Team members to be respectful and professional.
Project Expectations
These are the basic criteria I use when evaluating a project for fitness as a 606 project.
The software must have:
Users of at least 2 different kinds with different levels of access and views of the data
Requires data persistence and dynamic updating of data
Significant control logic (i.e. does meaningful and non-trivial computation)
A browser-based / web front-end (no desktop or mobile-native apps)
Enough features for a team of 7 +/- 2 students to spend several weeks implementing (be “big”)
Not too many or too complex of features (but not “too big”)
Value for the client such that the client could potentially use it