Information for prospective clients

If you are interested in being considered as a client for Software Engineering for the Cloud, please contact Prof. Joel Sommers in the Computer Science Department at Colgate University.

How do students work on projects?

The team of 4-6 students works for three-four two-week iterations. Each iteration begins with a meeting between the customer and the team (in person). These meetings are structured to elicit the customer's feedback on desired new features and desired changes/improvements to existing features. At the end of each iteration, the goal is to have a working version of the application with new and/or modified features. The idea is that each iteration makes the application a little better.

What time commitment is expected from the customer?

  • An initial 30-60 minute meeting during fourth or fifth week of the semester with your project group, to help the students understand your business and the desired application. The team will capture notes about the problem to be addressed and a key set of desired features for the application. This meeting can be in person at Colgate, at your site, or at some other an agreed-upon location.
  • Three to four more 30-60 minute meetings (once every 2 weeks over an 6-7 week period) to evaluate progress on the application and to provide feedback to the team.
  • Optional but highly recommended: attend the final demonstration session at Colgate during the final week of the semester (specific date and time varies each semester the course is offered).
  • Customers are not expected to have any technical background.

What kinds of projects are a good match for this course?

Software that can be delivered as a service (i.e., web applications). Past project examples include: finding and being notified of campus events of interest; tracking Colgate cruisers on their routes; managing schedules of vacations and work shifts that have complex staffing rules; matching students driving home with students who need rides along the same route(s); a "crowdfunding" site to support area non-profit organizations;

We welcome the opportunity to enhance or extend projects we have worked on previously; our intention is to, over time, develop mechanisms for "handing off" an existing project to a new team of students.

The following types of sites/apps are probably not a good fit:

  • Design or redesign of a mostly static-content website, or a site that could be managed with an off-the-shelf Content Management System such as WordPress or Drupal
  • iOS or Android apps. We can prototype a working mobile app in HTML5/JavaScript if the app requires a cloud-based part (most do), but that is the extent of any mobile-specific development that can be done.
  • We cannot in general extend existing systems built on commercial frameworks such as Salesforce.
  • Whether we can extend existing open-source systems using frameworks other than Rails is on case-by-case basis.
  • If your project is an app that would normally handle sensitive data (e.g., HIPAA-protected patient data or FERPA-protected student data), you may need to help the students create some "fake" data for testing, since our projects run on a cloud infrastructure that is not HIPAA or FERPA certified. However, you will be free to move the app to a compliant infrastructure later.
  • Be aware that if your project involves giving students proprietary information, students will be required to share substantial details of the project with instructional staff, and neither students nor staff can bind the university to an NDA.
  • We ask student teams to make their code open source under BSD license or similar, so the customer can continue to use it royalty-free after the class ends.

Who owns the IP (intellectual property) associated with the project?

Colgate's official policy is that undergraduate students (who are the usual project teams in this course) own their own coursework. We encourage the students to make their projects available under a liberal open-source license, specifically a license that (a) allows the customer to use and further develop the software on their own without paying any fee, and (b) allows future students in the next offering of the course to further develop the project, such as the Modified BSD License, MIT License, or one of the Creative Commons licenses. While we cannot force the students to do this, historically there has never been resistance to making project code open source. Note that if there are any patentable technologies developed through a project, Colgate's official policy is that the University retains ownership of those technologies.

What if my organization's intellectual property or confidential data is part of the project?

The students would have to keep all of the project data in private repositories, which we would ask you to pay for since for open source projects there would be no charge. Also, the instructional staff and their supporting staff would need access to the project data throughout the course, and we cannot bind the university to an NDA for this purpose, so you'll have to trust us.

If the only sensitive aspect is the data that the app will handle (for example, you have data about patients or clients), we can work with you to create realistic but fake data to use during development, and you can populate it with your own data later.

What happens after the course is over?

We make every effort to ensure you end up with a usable project, even if it does not have all the features you want. In most cases, this project is deployed on the cloud provider service Heroku (https://www.heroku.com), which is free for low-volume applications; so if your app is running there, you can probably just continue to use it.

What if I want further enhancements or changes to the app after the course is over?

You're free to negotiate with the student team, or if you want to hire your own developer to enhance the app or migrate it to a different hosting environment, we can help advise.

We will also poll you at the end of the class to see if you would want to have another student group work on and enhance the app.

Additionally, we are exploring ways to employ students during the summer to make enhancements and to manage existing deployed applications, or to deploy applications that at or near completion.