Second Year Project: Software Development in Large Teams
AbstractThe goal of this second year project is that the student take actively part in building working software according to the requirements of an industrial customer in teams of 7-9 students using the Scrum method. With the background of previous courses the students should plan, structure and execute the project, including integration of code made by others, analysis and optimisation of the program. The student should furthermore analyse and comment on another project and provide feedback.
During this course the students apply in practice all the software engineering skill they have learned during their earlier courses and learn new technologies. The students work for the industrial customers on industrially relevant topics provided by the customers, thus they will experience how it is to work for a real industrial project in a setting as realistic as possible.
The projects will be offered by industrial customers. All teams will work with a different project for a different customer. The course will provide the customers bringing in suitable projects.
Agile - Scrum.
The student teams will learn to apply the Scrum method, one of the agile methods, in practice by performing several short iterations in their project. The basic elements of Scrum are: face-to-face work in small teams and in close collaboration with the customer, work prioritized in the backlog, short 1-4 week iterations, sprint planning meetings, sprint reviews, sprint retrospectives and daily Scrum meetings. Each team will have a Scrum Master (a master level student) and a coach (from the industry) to support them while learning Scrum in practice.
The teams will work with different programming languages and different technologies depending on the chosen project. Each team will choose the technologies used in collaboration with their customer. Learning new technologies is a must.
The student teams will apply the software engineering skills they have learned during earlier courses in practice. They will analyze several software engineering related problems and learn to solve them.
The main part of the course work will take place in teams of 7-9 students. Thus, learning to organize teamwork in practice, to analyze faced teamwork related problems, to participate in implementing jointly decided solutions and to reflect over them is needed.
- You are enrolled on the BSc study program in software development.
- You know the basics of software engineering, e.g., different software process models and related activities, corresponding to what is covered in the BSc course Analysis, Design and Software Architecture.
- You are able to apply some programming language to construct fully functional software programs, corresponding, e.g., to what is covered in the BSc course Analysis, Design and Software Architecture.
- You are aware of the basic techniques for planning and conducting a software development project in a small team of 5-7 students.
Intended learning outcomes
After the course, the student should be able to:
- Plan, structure, and execute a large-scale software development project as part of a team in collaboration with an industrial customer
- Select and apply a suitable software engineering method or practice to a given situation
- Characterize, analyze and solve software engineering problems
- Apply the Scrum method in practice and reflect over its’ usage
- Plan, organize and conduct work in a software engineering team and solve teamwork related issues
- Analyze, select and apply new technologies / programming languages
- Plan, organize and conduct collaboration with an industrial customer
Students take active part in a software development team working on a large project from the ground up. The project is by design too large to be created by two or three people in the time allotted and the students are required to efficiently split the work up amongst themselves, taking individual responsibility for a substantial part of the project by themselves, using the techniques taught in System Development and Project Organisation. Students work actively with an external customer and collaboratively with him/her build and manage the product backlog, plan the work in sprint planning meetings and review the work done in the end of each sprint.
Mandatory activitiesThere are 3 mandatory activities:
- Active participation in one 4-hour Scrum simulation with your own team: to practice Scrum before the projects start and writing a learning diary about the experience.
- Active participation in Review 1 meeting with your own team and delivering the required materials for the review: an individual learning diary and a team delivery.
- Active participation in Review 2 meeting with your own team and delivering the required materials for the review: an individual learning diary and a team delivery.
The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.
The course material will consist of articles.
Student Activity BudgetEstimated distribution of learning activities for the typical student
- Preparation for lectures and exercises: 4%
- Lectures: 1%
- Exercises: 8%
- Assignments: 3%
- Project work, supervision included: 80%
- Exam with preparation: 4%
Ordinary examExam type:
D: Submission of written work with following oral, internal (7-trinsskala)
D2G: Submission of written work for groups with following oral exam supplemented by the work submitted.