The client is the person for whom the software is being developed. Occasionally, several people may act as a joint client, but the client is always one or more named individuals. A client can be anybody except yourself (e.g., a member of a Cornell department, a local company or other external organization, a member of faculty or staff, etc.).

Client expectations

The client can expect the following from the students:

  • A careful study of the requirements.
  • A design that meets those requirements.
  • Tested and well documented software that performs as specified.

In return, the student can expect the following from the client:

  • Weekly meetings.
  • Feedback on plans, prototypes, and draft documentation.
  • Attendance at the project presentations.

The client must understand that a semester is a very short period of time to complete a substantial system. In previous years, about half of all CS 5150 projects have resulted in systems that have gone into production. However, the client has often found it necessary to continue work after the semester to add extra functionality. Sometimes, members of the project team have continued work the following semester, as an independent project.

Remote clients

Because we hope that the client will attend presentations in person, we are cautious about clients who are not based in the Ithaca area. If your client is not based locally, you need to discuss what methods of communication you will use to work together. Recently there have been some successful projects for remote clients. For more about this topic, see Working with Remote Clients.

Student organizations

It is possible to do a project for a Cornell student organization, with an officer of the organization as client. If you propose such a project, the instructor needs to meet with the client before a definite decision is made.

Entrepreneurship projects

In the past we have had several projects for student entrepreneurs. Some have worked well; others have been less successful. If you propose such a project, the instructor needs to meet with the client before a definite decision is made.