2023-2024 / PROJ0010-1

Software project engineering and management

Durée

20h Th, 280h Proj.

Nombre de crédits

 Master : ingénieur civil en informatique, à finalité10 crédits 
 Master : ingénieur civil en informatique, à finalité (double diplômation avec HEC)10 crédits 
 Master en sciences informatiques, à finalité10 crédits 
 Master en sciences informatiques, à finalité (double diplômation avec HEC)10 crédits 

Enseignant

Benoît Donnet, Bernard Hauzeur, Guy Leduc, Laurent Mathy

Langue(s) de l'unité d'enseignement

Langue anglaise

Organisation et évaluation

Enseignement durant l'année complète

Horaire

Horaire en ligne

Unités d'enseignement prérequises et corequises

Les unités prérequises ou corequises sont présentées au sein de chaque programme

Contenus de l'unité d'enseignement

(ce cours est exclusivement en Anglais)

In this course, teams of 4-6 students will carry out a substantial integrated software project, which builds on the knowledge, know-how and skills acquired during their bachelor studies (programming, software engineering, data bases, operating systems and networks).

Yet, this is not a "coding project", but one that can only succeed through an efficient collaboration between all team members in addition to the proper mastering of a series of tools and techniques as used in leading IT projects (JIRA, SCRUM, GitLab, CI/CD, Kubernetes, devOps/gitOps, knowledge sharing & collaboration tools). The quality of final code is only a part of the grading criteria.

The environment is as close as possible to leading practices in the software industry. Project steps are adjusted given the high volume of practical knowledge to acquire. The project is structured in 5 SCRUM 'sprints' at an average 4 weeks interval during which usable and published product increments are released using 'devOps' techniques.

Seminars are organized to provide fundamental guidance in project design, management, tooling, as well as team coordination, and communication. Students must acquire by themselves much of the additional knowledge required by this project given the enormous diversity of modern software tools, platforms, technologies, methodologies and practices, and availability of suitable information on the Internet.

Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement

The project aims at developing the students' ability to carry out a realistic, complex and collaborative software project from an initial and incompletely defined idea throughout to the operational deployment of a working application.

The students will learn and actively practice new disciplines like requirements engineering, architecture, modelling, source control, test driven development, continuous integration and deployment, project management, team leadership, reporting, oral presentation, and knowledge sharing, thereby improving their autonomy and ability to work efficiently in a team, and their communication and writing skills.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, III.3, III.4, IV.1, IV.2, IV.3, IV.4, V.1, V.2, VI.1, VI.2, VI.3, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5, VII.6 of the MSc in computer science and engineering.

Savoirs et compétences prérequis

A bachelor degree in computer science or engineering with a major implication in computer science. Incomplete achievement of IT-related courses from the bachelor degree may prevent entry into the present course.

Activités d'apprentissage prévues et méthodes d'enseignement

Seminars on:

  • modern software architecture and landscapes;
  • fundamentals in project management with a focus on Agile methodologies, SCRUM in particular;
  • software engineering techniques: requirements engineering, modelling, testing, source code management, CI/CD, microservices;
  • (basic) knowledge management;
  • team dynamics.
5 compulsory project reviews are organized that close each of the 5 sprints with a formal oral presentation of the project status and a demonstration of the application at stake.

Teams must use:

  • XWiki to structure and maintain the whole project documentation from early sketches to final specifications, meeting minutes, progress reports, presentations, and procedures;
  • JIRA for the management of the projet's backlog and reporting;
  • Gitlab for source code control and integration, with suitable pipelines in place that automate build, test, and deployment steps;
  • Docker for building containerized images and local dev support and testing;
  • an OpenShift/Kubernetes cluster for application deployment and execution.
Weekly project meetings are organized project per project to help structuring initial activities, directions, and collaboration. These project meetings form an integral part of the project execution.

Regular work commitment and timely coordinations with team members is essential for a successful outcome. Unplanned, solo, or last-minute behaviours are deeply detrimental to such projects.

Mode d'enseignement (présentiel, à distance, hybride)

Cours donné exclusivement en présentiel


Explications complémentaires:

  • Seminars;
  • 5 review meetings spread from October to early May;
  • "Weekly SCRUM" meetings (part of the project execution)
  • The project itself is mainly carried out remotely by students (studies, coding, docs, plans, team coordinations,  reporting). Teams are free to organize their agenda.

Lectures recommandées ou obligatoires et notes de cours

Slides used during the seminars and a wiki do provide guidelines and tips yet are far too short to support all activities of the project, nor sufficient knowledge required for an efficient execution. Every project is different, every team is different; henceforth, students are expected to extensively search, collect, and equip themselves with all necessary knowledge and resources for their specific project. This self-learning workload is typically 10 to 30% of the project execution.

In most efficient teams, members do specialize on learning topics and teach each other members in collaboration.

Modalités d'évaluation et critères

Travail à rendre - rapport

Evaluation continue


Explications complémentaires:

No exam in June.

Grading is based on the content of the project's wiki, of JIRA and Tempo, of gitlab, in addition to review presentations and working demonstrations of the application at stake. 

Students are expected to describe their project, their actual organization and the technical solutions with appropriate justifications about design choices.


Each of the 5 project sprints bears a distinct objective and weight into the final grading. As follows:

  • Sprint 0 - 10% - hands on all tools at stake, selection of technologies, drafted project backlog, and demonstration of a mock of the application (modified tuto app)
  • Sprint 1 - 15% - requirements engineering, early models, improved backlog, application mock deployed and running in the cluster (menu and navigation)
  • Sprint 2 - 25% - careful SCRUM execution (sprint backlogs, retrospectives, velocity) and 50% of the App working, tested, and deployed
  • Sprint 3 - 25% - managed SCRUM project delivering 100% of the achievable / planned / predicted functionalities, efficient CI/CD pipelines supporting devOps, quality source code
  • Sprint 4 - 25% - a short final run (literally) to fix or improve the App and supporting materials, prepare the final defense of the project (pitch talk) and package the whole for handover to the client
Detailed project milestones, requirements, and review criteria for each sprint review are published in the course's wiki.  

Every sprint review session consists of an oral presentation with a live demonstration, followed by a question/answer session. All deliverable products of the project (doc, code, procedures, scripts, data, work backlog, reports altogether in Xwiki, JIRA, Tempo, Gitlab, and OpenShift/Kubernetes) shall be up to date at all times for evaluation by the education team, and reach a final state suitable for a formal handover to the client.

The final grade takes into account the amount and quality of the achievements, the team's efficiency (velocity, organisation, management), the quality of the code, docs, reports, and oral presentations, as well as the pertinence of answers to questions during sprint reviews.

Grades are assigned to the whole group given that a project is first and foremost a collective endeavour. However, evidences of a significant difference in the personal involvement of some members of a group may drive the educational team to assign a maximum of 2 points (on 20) up from the collective grade, else down by an unlimited amount (to floor 0).

Resit

In case of issue in June, a resit is possible. Students will have to improve their software based on a requirements sheet. Students will have to submit the updated code and provide a clear description of the improvements and individual contributions in the updated project wiki, JIRA, and gitlab. A repeated final review (with live demo) is organized in August/September.

The grade obtained at the resit session only replaces those of the last 2 review sessions and project deliverables. The first 3 review sessions irrevocably weigh on the final outcome.

Stage(s)

Remarques organisationnelles et modifications principales apportées au cours

Teams comprise 4 to 6 students, formed as much as possible on individual project preferences, while ensuring a diversity of student profiles in each group (i.e. computer scientists and engineers, mixed levels and expertises).

Presence at the seminars and review meetings is compulsory.

The project starts early during the 1st quarter. The final sprint review (final defence and demonstration) takes place on the second week of May. The project execution is suspended from mid-December to January for mid year exams regarding all other courses.

Course materials (archived lectures, course schedule, project list) and administrative communications are hosted on the eCampus web site : PROJ0010-A-a : Software project engineering and management 20h Th, 280h Proj.

Additional resources and facilities notably relating to the execution of software projects are available at the course's dedicated wiki.

Contacts

MS-Teams or Discord group chat and channels will be created per project to communicate with the educational team in addition to e-mail.

Coordinators:

  • Benoit Donnet (Benoit.Donnet@uliege.be)
  • Bernard Hauzeur (B.Hauzeur@uliege.be)
  • Guy Leduc (Guy.Leduc@uliege.be)
  • Laurent Mathy (laurent.mathy@uliege.be)
Teaching assistant(s):

  • T.B.D.

Association d'un ou plusieurs MOOCs

Aucun MOOC n'est associé à ce cours.

Notes en ligne

Web page
The course web page contains PDF of the seminar slides, projects subjects, Sprints/Reviews details, the Course agenda.  In addition, students can interact with the Pedagogical Team through the Discusson Forum.

wiki
additional materials