Practicalities

Teacher:

  • Jari Vanhanen, cs-c2130#aalto.fi, PL 15400, 00076 AALTO

Language:

  • 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 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.

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. However, additional programming related courses or programming experience from work or hobbies is highly recommended.
  • 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.
Prerequisites for Software Project 3:

  • 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


Educational goals

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 may work as a basis for new real products or startups, see e.g. Snore Tracker.


Project duration and effort 

The duration of the project is about 21 weeks. 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 all team members are also writing their BSc thesis during the spring.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 other 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 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):

  1. Each student must register before the deadline for the SW Project 1 or SW Project 3 course.
  2. The teacher publishes the Student List on a Google Sheet, where all students should state ASAP their preferences on topics, weekly work times etcThe Student List contains also the Scrum Masters (SW Project 3 students).
  3. Each Scrum Master recruits at most 5 (was 4) developers to her team before the recruitment deadline. The Scrum Masters will contact developers, who have some similarities in their preferences. However, developers may also contact Scrum Masters.  
  4. After the recruitement deadline, the teacher assigns the remaining developers into the teams. The final team size will be about 1+8 students.
Alternatively, the students may form a team of max. 4 developers (and possibly also a Scrum Master) themselves even before the course begins. Such teams must send an e-mail to the teacher before the SW Project 1 course registration deadline. The teacher will supplement also these teams by some developers. A preformed team without a Scrum Master should find one immediately when the Student list becomes available.


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 yet.

Each team should prepare a "team 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 session, the Clients will discuss 10 minutes with each of the four best candidate teams who sent a CV. Immediately after the session, each team and each Client will tell the teacher their 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
  • 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 signatures. 


Passing the course

In order to pass the course(s), the student must:

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
Viimeksi muutettu: maanantaina 11. maaliskuuta 2024, 16.05