Week 1 - Course Introduction - Introduction to Requirements Engineering
The first week we will be discussing about the course modality: content of the course, evaluation, pre-requisites, goals of the course. We will have an introduction about Software Requirements Engineering: why it is so important nowadays and why most of the project failures derive from this phase of software development (contrary to what one might think at first).
Time permitting, we will be covering an introduction of Lean and Agile Methodologies to give the savour of what has to come: a short introduction of the principles behind them and why they emerged in the first place in response to more heavy-weight methods.
Lecture
- Course Introduction
- Introduction to Software Requirements Engineering
- Introduction to Agile Methodologies
In-Course Project
Teaching about Requirements Engineering and Agile development without some practical application would be impossible (and very boring, keeping all theoretical). For this reason there will be a small project during the semester in groups of 4 that will be formed to have more heterogeneous experience/background of students as possible. Most of the effort of the project will be kept during lecture (e.g. when looking at user stories / CRC cards / prioritization) each group will use their requirements. The main points:
- every student will contribute with their own expertise (i.e. you do not have to develop software if you never did so before);
- the idea is that the project should be fun. We will be following as project motivational reading the following link: Magicka post-mortem - a successful project developed by students. Your project does not need to be a game. You should spend time to think about the "selling" idea of your project, that is the characteristic that will make the project emerge in comparison to other products;
- the final evaluation is based on the process, not on the product - we care about the requirements engineering process, not the finalized product that can be absolutely incomplete, as long as the requirements were modelled, prioritized, discussed, scheduled, etc.. according to the practices we will discuss during the course;
- given the previous point, you are absolutely free to adopt the technology you think fits best for you. Although some mobile application would be nice to have, also just a plain command line interface or just an HTML prototype would be equally fine;
- The project outcome will be just a Pass/Fail evaluation, with up to 5 bonus points for exceptional performance;
- 2 bonus points will be also awarded during the final presentation by other students to the project with the best idea;