In this course teams of about seven computer science students carry out software development projects from late October to April. The course is an opportunity to have a software project made, and simultaneously provide an educational, real-life project experience for the students.
Each student allocates about 200 hours for the project. The effort is spent mainly to the project work including learning new technologies, but some effort is required for educational purposes.
Proposing a project to the course
Anyone (companies, research groups) can act as a Client and submit a project proposal by We 31.8.2022 to the teacher Jari Vanhanen (firstname.lastname@example.org). Send a web link, or a PDF-file. Do not include confidential material because the proposals will be published on the course web page. If you consider submitting a proposal, please notify the teacher as early as possible.
Requirements for the projects :
- The Client must prepare the project relatively well. It should be possible to identify the most important system requirements during the first weeks of the
project. The Client must ensure that the are no insurmountable risks related to the required software or hardware components. Very loosely specified projects are not suitable for this course.
- The project must cover all typical software development project activities, i.e. analysis, design, programming, testing and delivery. Additional activities, such as technology/tool evaluations or content production, should not take a large role in the project.
- The Client must be able to adjust the scope of the project during the project to suit the size and skills of the team, because the project effort is fixed.
- The project documentation must be public so that it can be published on the course web page during the course. The source code and technical documentation may remain unpublished, but the course personnel needs to be able to review them.
- The team must use the Scrum process framework with some modifications set by the course (see Project Manual).
In order to provide a suitable project for each team, we will accept more proposals than there are teams. The students will choose which projects will be started. An interesting and well-prepared proposal, a committed Client, and any facilities provided increase the probability of getting a team. We cannot give tips on interesting topics as the students' interests vary each year. For more information on popular topics see the previous projects.
Most of the students are 3rd year computer science B.Sc students, who have taken at least four programming courses (all use Scala in exercises) and many other CS courses. Through additional courses, work or hobbies students also know other programming languages and technologies. In each team, a Software and Service Engineering M.Sc. student acts as the Scrum Master.
Getting a project team
The students form teams based on e.g. similar project preferences. Each team will choose 2-5 favorite Clients based on the project proposals.
On We 12.10.2022 16:15 - 18:00 each Client will be given about two minutes for introducing themselves and for pitching their topic to all the students. After the last pitch, each student team will discuss max. 10 minutes with each of their favorite Clients. Immediately after the session, each team and each Client will tell the teacher their prioritized list of clients or teams they would like to work with. Based on these priorities, the teacher will pair the teams and Clients.
The student teams will send team CVs to their 2-5 favorite Clients before the pitching session. The CVs help each Client make a tentative prioritization of the teams. If the Client gets more than four CVs, he should make a short list of about four best candidates, discuss only with them, and inform the rest of the teams about the situation before the pitching session. However, the Clients are not allowed to choose a team before the pitching session (unless some members have already been fixed in the original topic proposal).
Responsibilities of the Client
The workload for the Client is usually a few hours a week, with more emphasis on the beginning of the project.
- The Client must act as the Product Owner as defined in the Scrum Guide.
- The Client must participate at least to creating the Product Vision, Sprint Plannings, Sprint Demos and three Project Reviews, and perform acceptance testing.
- The Client may get more results, if she can help the students with the selected technologies. The course personnel does not provide technical supervision.
- The Client must evaluate the student team giving points and concrete feedback in three Project Reviews according to the Evaluation form. In the end of the review, the Client discusses the evaluation privately with the course personnel, who ensure fair evaluation.
- The Client must provide necessary SW/HW unless it is already provided by Aalto University. Aalto IT provides the students with, e.g. many computer classes (Windows, Linux, Mac).
- The Client can also promise other support to the team, e.g., a work room at their office, a development server, any necessary devices, arranging a project kick-off with pizza and coke etc.
Aalto University has created a contract template that covers e.g. intellectual property rights (IPR) and confidentiality. The contract must be signed by the Client, student team members and Aalto. The students cannot be forced to sign any additional contracts. If some additional contracts are required for some very good reason, they must be mentioned in the proposal, and discussed with the students before choosing
The Client must mention in the project proposal the chosen IPR model. There are two alternatives:
- The results are published under an open source license selected by the Client, or
- The Client gets all IPRs to the results
When the project begins, the Client must
- Fill the contact information, project name, and the correct IPR option to the template.
- Use the company's digital signature system to collect all signatures OR give the signed contract to the student team (as a PDF), whose members will sign and send it to Jari Vanhanen (as a PDF).
Clients, who get a team, are required to pay a fee to Aalto University. The fee per topic is:
- 0€ if, the client is from the Dept. of Computer Science,
- 1500€ , if the client is from the rest of Aalto University,
- 3000€ (+VAT), if the client is from a company etc.