In this course teams of about seven computer science students carry out software development projects from 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 4.9.2019 to the teacher Jari Vanhanen (firstname.lastname@example.org). Send a web link, or a file (HTML/PDF). 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 (about 15 teams expected).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 2nd year B.Sc students, but some students take the course later. The 2nd year students have already taken at least four programming courses (all use Scala in exercises) and a database course. Through additional courses, work or hobbies some 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 16.10.2019 16:15 - 18:00 in TuAS building hall TU1 (Maarintie 8), each Client will be given about two minutes for pitching their topic to all the students. After the last pitch, each student team will discuss with all their favorite Clients. When all the teams have had the possibility to discuss with all their favorite Clients (i.e. about 30 minutes later), the teams and the Clients are allowed to make a decision on starting the project with each other. In practice, most of the teams will be "hired" in the end of this session.
The student teams will send team CVs to their favorite Clients before the pitching session. The CVs help the Client decide tentatively, which team would be best for the project. 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. 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), or they will get lots of bad publicity among the other interested teams.
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 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 each Project Review 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 team.
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
- Print two copies of the contract.
- Fill the contact information, project name, the correct IPR option, and signature.
- Give the contracts to the student team, whose members will sign them and deliver them to Jari Vanhanen, PL 15400, 00076 AALTO (or room A217).
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.