CS-C2130 - Software Project 1, Lecture, 4.9.2024-20.11.2024
Kurssiasetusten perusteella kurssi on päättynyt 20.11.2024 Etsi kursseja: CS-C2130
Course Overview
Practicalities
Teacher:
- Jari Vanhanen, cs-c2130#aalto.fi, PL 15400, 00076 AALTO
Language:
- Lectures, slides and course materials in English
- Each team's work language as desired by the team members
Many course codes, same project:
- CS-C2130 Software Project 1 (5cr) & CS-C2140 Software Project 2 (5cr) courses consist of a single project where the students work as developers. The courses cannot be taken separately unless the student is absent from the university during the Spring term. The courses will be evaluated as a whole with the same grade for both courses. The credits of both courses will be given in May.
- CS-E4910 Software Project 3 (5-8cr) is intended for the MSc students in the SSE major. They act in the Scrum Master role.
Sometimes, a couple of students from other MSc majors or among the SW Project 1 course students are needed to have enough Scrum Masters. Contact the teacher before the course begins, if you want to volunteer as a Scrum master.
Prerequisites for Software Project 1 & 2:
- Minimum prerequisites are all the first year programming courses of the computer science BSc studies and the databases course. Additional programming related courses or programming experience from work or hobbies is highly recommended.
- All team members need not to know the programming languages and technologies used in the project, but you must have enough programming experience and the right attitude to learn the required technologies quickly.
- Mandatory courses: Software Project 1 & 2 (or a similar course in another university), CS-C3150-Software Engineering
- Recommended courses: SW Design and Modelling, SW Processes and Projects, Requirements Engineering, SW Testing and Quality Assurance
Learning outcomes
In this course, teams of about seven students carry out a software development project for a real client using the Scrum process framework (see the Project Manual). Before the project begins, the course will give teaching and training about Scrum.
The students learn to apply Scrum as a developer (SW Project 1 & 2) or as a Scrum Master (SW Project 3), and they get an understanding of the common technical and non-technical challenges related to software development projects. Furthermore, the students become familiar with some particular domain and implementation technologies depending on the chosen project.
The projects are from different domains and involve different programming languages and technologies. The teams have lots of freedom in choosing the project, as well as their development practices and tools within the Scrum framework. The students should use the project as a sandbox for gaining practical experience of domains, technologies, work practices and tools they are interested in. The detailed lessons learned depend a lot on the chosen project and the responsibilities taken by each student.
In order to get an idea of the projects that are typically carried out in this course see the previous projects. In the best cases, the results are published to a large audience, see e.g., VR matkalla-Vuosi raiteilla feature, MAFY-laskuri, or epicMeets.io.
Project effort and duration
Each SW Project 1&2 course student is expected to spend 225 hours (about 9 credits) for the project part of the course. This effort includes also the time spent on studying the required technologies. The effort worth about 1cr is spent before the project for team formation, topic selection and Scrum training.
The scope of the project will be tuned with the client during the project to match the fixed effort. The clients rarely run out of ideas before the fixed effort has been spent. However, if that happens, the team can focus more on additional, educational activities such as learning to use some new tools e.g. for testing.
The default duration of the project is about 21 weeks and thus the course will take about 10 hours per week during the project. It is highly recommended to allocate weekly 1-2 team work sessions each lasting several hours.
Any team can also choose to do a shorter project, which means more weekly effort. A shorter project may be a better option, e.g., if many team members are also writing their BSc thesis later in the spring. The duration must be chosen in the beginning of the project, but it can be changed later.
If you are unsure about being able to invest the required effort to the project, take the course next year. Students, who do not keep their promises to the rest of the team may even spoil the learning experience of the whole team. Based on the student feedback, real clients and real projects are the essence of this course. Such a setting is possible only if the students allocate enough effort and are able to create valuable results.
Forming the team
It is recommended to form teams which can arrange weekly team work sessions. Furthermore, similar preferences on project topics, technologies, work language etc. should be considered.
The team formation process (see the dates in the course schedule):
- Each student must register before the deadline for the SW Project 1 or SW Project 3 course.
- The teacher publishes the Student List sheet, where all the students should state ASAP their preferences on topics, weekly work times etc. The Student List contains also the preferences of the Scrum Masters (SW Project 3 students).
- Each Scrum Master recruits at most 4 developers to her team before the recruitment deadline. The Scrum Masters will contact some developers, who have somewhat similar preferences. However, any developer may also contact the Scrum Masters in order to join their team.
- After the recruitement deadline, the teacher assigns the remaining developers into the teams. The final team size will be about 1+8 students.
Choosing the project topic
The teacher collects lots of project proposals from companies and Aalto. They are available to all the teams and published in the beginning of the course. Furthermore, the students may look for a Client themselves before the course begins. Such projects are reserved for the teams built around the students who found the Client. The requirements for the projects and Clients, and the legal issues are described in the Client's Manual.
In october, each team must prepare a "team CV", send it to their 3-5 favorite Clients, and make their favorites visible to the other teams. Don't include unnecessary personal information (birth dates, addresses etc.) to the CV but focus on the skills and competences that are relevant for the proposed project. The team can customize the CV for each Client, and mention, if a Client is their first option.
The Clients will use the CVs to tentatively prioritize the teams, and to choose about four best candidates, if they get too many CVs. During the Pitches & meetings session, the Clients will discuss 10 minutes with at least about four best candidates. Immediately after the session, each team and each Client will inform the teacher about their final prioritized list of clients/teams they would like to work with. Based on these priorities, the teacher will make the pairings between the teams and Clients.
If several teams are interested in the same project, only one of them will get it. Therefore it is crucial that each team sends their CV to several potential Clients. Also, the Client cannot be sure that she will get her favorite team, because another Client may hire them.
When discussing with a Client, the team should ensure that:
- they have prepared for the project well enough, and are committed to it
- they can fulfill the team's needs regarding HW/SW and technical guidance
- they appreciate the educational aspect of the project
- they don't have any legal requirements that some team member(s) don't want to accept
- the project is not clearly too difficult for the team
Depending on the project, the results are either published as open source or the Client will get the intellectual property rights (IPRs). The team must choose a project, whose IPR model can be accepted by all the team members.
Aalto University has created a project contract template that covers e.g. IPRs and confidentiality. The Client signs the contract first and sends it to the student team. Then all the student team members must sign it before delivering it as a PDF to the teacher. Alternatively, the Client's digital signature system can be used to collect all the signatures.
Passing the course
In order to pass the course(s), the student must:
- participate to a team that gets enough points from the project (see Evaluation Principles)
- spend (credits - 1) * 25 hours to the project work
- participate to a Scrum Simulation session (or write a compensatory essay)
- write four learning diary entries during the course (or write a compensatory essay after the course)
The final assessment and credits of the Software Project 1 & 2 & 3 courses are given after the end of the project (period V).
Summary of the support for the projects
Even though the teams in this course are expected to work independently, the course personnel supports the projects in many ways:
- Collecting project proposals
- Providing a Scrum based software development process framework (see Project Manual)
- Providing Scrum training to facilitate the adoption of Scrum
- Providing a Coach for each student team (see Coaching)
- Providing the project contract template
- Organizing Experience Exchange Sessions (see EES)
- Evaluating project teams and giving feedback (see Evaluation Principles)
- Organizing Project Reviews
- Organizing the Software Project and Quality Award Gala with Accenture
Furthermore, the Clients actively participate to the projects and may support them in many ways as described in the Clients Manual.