- Jari Vanhanen, cs-c2130#aalto.fi, PL 15400, 00076 AALTO, (room A217, post box "V" in A2-corridor printer room)
- Lectures, slides and 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. They cannot be taken separately unless the student is absent from the university during the Spring term. The credits of both courses will be given in April.
- CS-E4910 Software Project 3 (5-8cr) is intended to the M.Sc. students in the SSE major. They act in the Scrum Master role (about 1 per team).
Usually, a couple of students from other M.Sc 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.
Prerequisites for Software Project 1 & 2:
- mandatory: all first year programming courses or similar programming skills
All team members need not 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. If you are unsure, you can postpone this course to the 3rd year.Prerequisites for Software Project 3:
- mandatory courses: Software Project 1 & 2 (or similar project 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
On 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). 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.
Project duration and effort
The duration of the project is about 21 weeks. Any team can also choose to do a shorter project (about 15 weeks), which means more weekly effort. The duration must be chosen in the beginning of the project, but it can be changed later.
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. It is highly recommended to allocate weekly 1-2 team work sessions each lasting several hours. The course will take about 10 hours per week during the project. The effort worth about 1cr is spent before the project for team formation, topic selection and Scrum training.
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. The clients rarely run out of ideas before the whole budget has been spent. However, if that happens, the team can focus more on educational activities such as learning to use some new tools e.g. for testing.
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 ruin the learning experience of the whole team.
Forming the team
It is recommended to form teams who 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 in Oodi to the SW Project 1 or SW Project 3 course.
- The teacher publishes the Student List in Google Drive, where all students should state their preferences immediately. The Student List shows also the number of the teams and their Scrum Masters (SW Project 3 students).
- Each Scrum Master recruits at most 4 developers to her team before the recruitment deadline.
- The teacher assigns the remaining students into the teams. The final team size will be about 8 students.
Choosing the project topic
The teacher collects lots of project proposals from companies and Aalto. They are available to all teams. 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.
The project proposals are published before the teams are formed. However, the Clients may not be contacted before all the teams have been formed.
Each team should prepare a CV that helps the Clients evaluate tentatively which team would be most suitable for their project. Each team is allowed to send their CV up to 5 Clients about a week before the lecture, where the Clients will pitch their proposals to all the students. During the latter half of the lecture, the Clients must discuss shortly with all the teams who sent a CV, and immediately after that they will decide and tell which team they would like to "hire".
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. Usually by the end of the lecture, all teams have found a Client.
When discussing with a Client, the team should ensure that:
- she has prepared for the project well enough, and is committed to it
- she can fulfill the team's needs regarding HW/SW and technical guidance
- she appreciates the educational aspect of the project
- 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 will sign the contract first, and then the contract must be signed by all the student team members, and delivered to the teacher.
Each team gets a Coach, who is a member of the course personnel. He helps the Scrum Master and the rest of the team with the use of Scrum and other non-technical issues. He also evaluates the fulfillment of the work practice related requirements listed in the Project Manual.
The team meets their Coach several times during the project. The meetings include:
- Sprint 0 plan (getting to know the coach, and presenting the plan)
- Sprint 0 review (presenting the Sprint 0 results)
- Project reviews
- Other meetings a few times
Both the team and the Coach can propose having a meeting whenever there seems to be a need for one. For example, the Coach can be invited to a team's work session, Client meeting, Sprint Demo or Sprint Retro. In these meetings the team may discuss the use of Scrum, course requirements, project's work practices, or any problems. Creating an agenda for the meetings allows the Coach to prepare better.
The team can also ask help from the Coach by e-mail. Keeping him up-to-date with the project helps him to help the team. For example, notify him whenever some new artifact, such as a Sprint Plan, has been created.
Before the project starts, the course will arrange Scrum Game sessions where the use of the Scrum is simulated and learned in practice by using Lego bricks as code. Several sessions will be arranged for 3-6 teams at a time.
Every student needs to participate to one of the sessions preferably with her own team. The game is also an important opportunity to get to know the other team members. If you come alone or with a small number of team mates, you will be assigned to some random team in the game.
Registration to the sessions will be done in a Google Sheet before the games. Register immediately when at least the scrum master and a few team mates have found a suitable time. You can change the session later, if needed. Try to fill the first sessions first!
Experience Exchange Sessions (EES)
The teacher will arrange Experience Exchange Sessions on different themes. Before each EES, discussion topic proposals are collected from the teams. A topic proposal can be 1) a problem description, 2) a good solution to a common problem, or 3) a short demo of a useful tool. It should attract the interest of the other teams too.
In the EES, each topic is shortly presented by a proposer, and thereafter discussed by some/all participants including the course personnel and possibly a guest expert. The participation is highly recommended to the Scrum Masters, but some developers may participate too. However, the is a limit of max. 2 persons per team per EES. The language will be English, except for one of the sessions which will be mainly intended for the developers.
A team earns 0.5 points from an EES, if 1) someone from the team adds at least two topic proposals to the EES agenda in Google Drive by 13:00 the day before the EES, and 2) participates to the EES. At most 2 points can be earned from the EESs, even if more than 4 sessions were arranged.
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 Game session (or write a compensatory essay)
- write learning diary entries during the project (or write a compensatory essay after the course)
The assessment and credits of 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 on 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 (see the Scrum lectures and Scrum Game)
- Providing a Coach for each student team
- Arranging free licenses to some useful tools
- Providing the project contract template
- Organizing Experience Exchange Sessions (EES)
- Evaluating project teams and giving feedback (see Evaluation Principles)
- Organizing project reviews
- Organizing the Software Project and Quality Award Gala with Accenture