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
Ordinary examExam type:
D: Submission of written work with following oral, Internal (7-point scale)
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.