CS-C2130 - Software Project 1, Lecture, 7.9.2022-9.12.2022
This course space end date is set to 09.12.2022 Search Courses: CS-C2130
Student's Manual
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. 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 (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:
- Minimum prerequisites are all the first year programming courses 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
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.
In order to get an idea of of the projects that are typically carried out on 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 (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 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 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 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 contains also 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 SW Project 1 students, who they would like to recruit. However, SW Project 1 students may also contact the Scrum Masters.
- After the deadline, the teacher assigns the remaining students 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 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:
- 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 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.
Coaching
Each team gets a Coach, who is a member of the course personnel. The coach helps the Scrum Master and the rest of the team with the use of Scrum and other non-technical issues. The coach 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 an additional meeting if there seems to be a need for one. For example, the Coach can be invited a couple of times 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. In order to get better support, keep the Coach up-to-date with the project. For example, notify the Coach whenever some new artifact, such as a Sprint Plan, has been created.
Scrum Simulation
The course will arrange Scrum Simulations where the use of Scrum is learned in practice. Several sessions will be arranged for 2-5 teams at a time.
Every student needs to participate to one of the sessions preferably with their own team. This 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 session.
Registration to the sessions will be done in a Google Sheet. 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 course will arrange EESs on different themes. The target audience of each EES depends on the theme, and can be Scrum Masters and/or developers. There is usually a limit of max. 3 persons per team per EES.
Before each EES, there is usually a small preparation task, e.g. submitting discussion topic proposals related to the session theme, or preparing a small presentation on e.g. team's system architecture. In the EES, each topic is shortly presented, and thereafter discussed by some/all participants including the course personnel and possibly a guest expert.
A team earns 0.5 points from an EES, if 1) someone from the team makes the preparation task 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 Simulation session (or write a compensatory essay)
- write four learning diary entries during the course (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
- Providing a Coach for each student team
- 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