PSU CS Capstone Sponsor Information

Portland State University
Software Engineering Capstone Experience

The PSU Computer Science Capstone course is a 20-week "real-world" software development experience. Teams of 6-9 students work together to solve a problem posed by an outside sponsor. In cooperation with the sponsor, the students develop requirements, design a solution, write software, validate the software, and deliver it in a ready-to-use form.

The Capstone is one of the last Computer Science courses taken by our undergraduates. These students have all substantially completed an undergraduate degree program in Computer Science. They have already taken a software engineering course that taught them basic software development skills.

Capstone students are expected to work a minimum of 12 hours per week over roughly 15 weeks; thus, teams will put in well over 1,000 hours over the duration of the project.

Each Capstone team will have a student Team Lead, selected by the instructor, who will be responsible for most team and project management. The Team Leads and the Capstone instructor will work together to form balanced, high-quality teams. The Team Leads will meet with the instructor and also provide written reports for the duration of the project.

About Capstone Sponsorship

The role of the Capstone sponsor is to provide an interesting software project for a skilled, motivated team of developers with an interesting project to tackle. Our sponsors have ranged from experienced software developers from local tech firms to community members that have never written a program in their life.

Sponsorship is free of charge. However, there is no per-project PSU budget for special Capstone equipment. We provide each team with access to meeting space and to small Intel boxes that they may use as shared computers. (We also have a few older Macs available.) Any additional equipment, software licenses, etc. needed to complete the project must be supplied by the sponsoring organization.

The sponsoring organization must identify a contact person and a backup contact person. At least one of these should meet regularly with the team to provide information and discuss progress — preferably weekly. This is particularly critical during the early stages of the project, but is important throughout the six-month effort. Thus, the sponsor contacts must be available for the duration of the project.

The students are expected to handle the technical side of the project on an end-to-end basis, from gathering and organizing requirements through delivery of the product. All that the sponsor needs to do is provide a well-defined problem that has a software solution, and then interact with the students to ensure that the product produced will be of maximum use to the sponsor.

Intellectual Property

As a matter of State law, the student developers retain the rights to all intellectual property (copyrights and patents) that they develop as a product of coursework. Portland State University disclaims all ownership of intellectual property.

We pretty much insist that the students and sponsors agree on open source licensing for their product. The MIT License is often a good choice; however, the instructors can provide expert advice on open source licensing and strategy. An open source license protects both the students, who cannot be required to provide 1,000 hours of free labor for a specific company, and the sponsors, who can ensure that the students' work product will be freely available to their organization in perpetuity. Open source licensing makes sense both for infrastructure software (whose utility outside the sponsoring organization is likely moot anyhow) and for many kinds of product software. Perhaps the biggest problem is for tech startups, who will need to consider carefully whether the value they get from major contributed development offsets the lack of IP rights in the result.

No Mission Critical or Partial Projects

Our Capstone project success rate is very high, and most failures are due to sponsor issues. Nonetheless, we cannot promise that a given student team will succeed. Sponsors must not propose projects whose failure would cause a serious problem for the sponsoring organization. The ideal project is something on the sponsor's "wish list" of things that the organization would like to have, but that they do not have the time or money to develop in-house.

Because we want the students to have a realistic software development experience, we cannot accept projects that are "just coding", "just QA", static websites, etc. (Webapps are fine.) The students need to learn from developing the project through its entire life cycle. We also cannot accept projects where the bulk of work is non-software.

Our students have a wide range of software experience, including web and mobile development in many cases. However, it is up to the sponsor to provide the knowledge about the application domain, organization specifics, etc. that the students need to succeed.

About the Capstone Sponsorship Process

Capstone sponsorship is granted through a competitive process. There are typically twice as many proposing sponsors as teams. Early in the course, sponsors will give 10-minute in-class talks describing their proposed project. Students will follow up with potential sponsors during the succeeding weeks. The instructor and student teams will select projects somewhere around or before the fifth week, and have a kick-off meeting with their chosen sponsor immediately thereafter.

In general, students are looking for a project that fits their skill set and a sponsor they can work well with. It is hard to predict what the students will select, so generally it is better that sponsors not worry too much about it and just propose something they need. The Capstone instructor can help the sponsor figure out what ideas to present and how to increase their appeal.

There will be two student presentations, one at the halfway point at the end of the first quarter, and the other at the end of the project. Sponsors are strongly encouraged to attend both of these. The presentations are open to the public.

How to Propose a Capstone Project

First, get in touch with Bart Massey or Warren Harrison. We can help you sort out ideas and get you going.

Once we have an idea of what is being proposed, we will want a short (no more than one page) description of the proposed project for our review. If it is a software project, of the appropriate level for a team of fourth-year Computer Science undergraduates, and you appear to have the appropriate expectations of the project, you will likely be asked to make a presentation to the class: we will ask you in advance for PowerPoint slides or similar that we can have ready for presentation and archive for the students. Sponsors have only 10 minutes to present, and there will be many competing projects, so you will need to use your presentation time effectively.

Because the process is designed so that up to half the projects are not selected, we discourage sponsors from investing large amounts of time into pre-selection activities. We do not need detailed specifications, precise wireframes or extensive technology surveys until (and unless) your project is selected.

What Kinds of Projects Have Been Built in the Past?

Since we started requiring CS students to participate in a Capstone experience in the late 1990s, we have produced more than 150 Capstone projects. Here is a small sample:

About Sponsoring

Important Questions to Answer if You Are Interested in Becoming a Sponsor (accumulated through the school of hard knocks):

  1. Do I have a well-articulated idea of what I am looking to have built? If you cannot explain, in general terms, what the final product would look like, a sponsor proposal may be premature.

  2. Do I have the time to personally invest in this adventure? While we appreciate the factors that cause sponsoring organizations to assign their busiest employees as sponsor contacts, this has seldom worked out well in the past. It is very important the person interacting with the team is personally invested in the project and really wants to see the end product. Poor support from the sponsorship organization is the single largest cause of our rare Capstone failures.

  3. Do I have a stable situation where I will be around to interact with the team for at least six months? If the project is related to your work, you should have confidence that you will be working at the sponsoring organization at least until the project is completed. If this is a personal project, is you should be confident that you will be around the area so you can interact with the team in person until the project is completed.

  4. Are there other parties involved in the project? For instance, if you want an application that accesses a proprietary data source, you will want to have cleared this with the provider of the data source before you propose. If there is a particular hosting service you have in mind, you should work out the details before you propose.

  5. Are there any legal issues that still need to be worked out, including legal issues within your own organization? Before you propose, the intellectual property issues should be clear. If the proposed project is related to your work, you should clear it with your legal department or advisors before proposing.