2023-2024 / PROJ0010-1

Software project engineering and management

Duration

20h Th, 280h Proj.

Number of credits

 Master of Science (MSc) in Computer Science and Engineering10 crédits 
 Master of Science (MSc) in Computer Science and Engineering (double degree programme with HEC)10 crédits 
 Master of Science (MSc) in Computer Science10 crédits 
 Master of Science (MSc) in Computer Science (joint-degree programme with HEC)10 crédits 

Lecturer

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

Language(s) of instruction

English language

Organisation and examination

All year long

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

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.

Learning outcomes of the learning unit

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, solution design, source control, test driven development, continuous integration, deployment automation, containerization, 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 reporting 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.

Prerequisite knowledge and skills

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.

Planned learning activities and teaching methods

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 (minimal overhead with maximum benefits if you listen well);
  • JIRA for the management of the projet's backlog and reporting (same as above);
  • 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 of delivery (face to face, distance learning, hybrid learning)

Face-to-face course


Additional information:

  • 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.

Recommended or required readings

Slides used during the seminars and a wiki do provide guidelines, hyperlinks, and tips yet are far too short to support all activities of the project, nor contain sufficient knowledge required for an efficient execution => using these guidelines, plus references to the technologies applicable to their particular project, students are expected to extensively search, collect, and equip themselves with all necessary knowledge and resources for their specific project. Self-learning activites can weigh 15 to 30% of the project execution workload.

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

Written work / report

Continuous assessment


Additional information:

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 document 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 prepare the final defense of the project (pitch talk), as well as package the whole for handover to the client. Also a last chance to fix or improve the App and supporting materials.
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 ultimately 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.

Work placement(s)

Organisational remarks and main changes to the course

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) / Weekly SCRUM facilitators:

  • T.B.D.

Association of one or more MOOCs

There is no MOOC associated with this course.

Items online

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