(These notes also apply to course 540 for MSc Specialism students)
This course is about the development and management of software projects. We hope that you will learn and put into practice state-of-the-art techniques used in industrial software development to ensure that your team produces software co-operatively, reliably and on schedule. The material here is selected to support the Software Engineering Group Project. You will get individual help and advice in your team on putting these things into practice.
As students have previously been introduced to the principles of agile development during the second year summer term projects, we will not give a lot of lectures in this course. We are providing most of the core content online. We have given a series articles, videos etc covering the main topics. You should study these as you need them, to re-cap topics from earlier courses, and to get more detail, to help you with your project. The given material is just an introduction, and you should also do your own research on the internet to dive more deeply into the areas that are relevant to your project.
To support you in applying these techniques, we are providing consulting to individual project groups. Your group must have at least one consultation during the first 3 weeks of the project, and at least one during the second 3 weeks. You may also want one during the last to weeks of the project. The consultations are not graded, but are a compulsory part of the project. Your group should book an appointment at a time that suits you. There are lots of teams and a limited number of slots, so make sure that you book early to get a slot that works for you. The whole group should attend.
Agile Development - we look at the development practices common to agile development, the current industry best practice for developing software products.
Project Management - as this is a bigger project than you have undertaken before, with a larger team, we focus on some of the techniques you might use (and industry uses) to manage such a project effectively.
Quality Assurance - we cover various techniques for assuring the quality of the software produced, in terms of reliability and user satisfaction.
Customer Relationship - in these projects you have a customer, and you need to work with them to make sure that you can deliver what they want and expect, on schedule.
We encourage you to raise any queries or discussion points on the Piazza forum.
The software engineering part of the project is assessed through coursework and checkpoints in the autumn term, to be done and submitted in your Group Project groups. The coursework is designed to be lightweight, and the aim is that doing it should help you to produce a better project, not be a distraction from thr project. Following good software engineering techniques should result in a better end result for your project, and the markers will be looking for evidence that you did this.
You can (and should) find lots of related material on the internet, but we have also listed some useful books on the reading list.