Source
This is a completely new module jointly developed by Geosparc with support of KU Leuven.
Ownership
Main authors: Frank Maes (Geosparc) with contributions by Danny Vandenbroucke (KU Leuven), Jeroen Saegeman (Geosparc) and Maria da Saudade De Brito Pontes (KU Leuven). This lecture is provided under CC-BY-SA license ( Creative Commons Attribution Share-Alike License https://creativecommons.org/licenses/by-sa/3.0/).
Abstract

The module provides an introduction on the main methods for software development. It starts by describing the ‘old’ waterfall method which is a step-by-step method for developing systems but which led often to too complex implementations not taking into account the dynamics of the user requirements and which fell short to collect feedback from users in time and therefore led often to failure (under-used and under-performing systems). The Agile method allows to work faster and in a more systematic way by involving users throughout the development process.

The module introduces how Agile methods work (with focus on Scrum), highlights the importance of systematic testing, the role of refactoring, the potential of pair programming and also provides concrete hints how Scrum might work in practice including: scrum roles, product backlogs, Agile planning etc.

The module can be given in the form of a seminar/webinar and includes examples. Real-world ‘exercises’ are not provided within the module but are extensively foreseen during an Internship where learners can participate in case-based learning scenario’s. During the internship learners start ‘reading’ existing code, learn to recognize ‘smelling code’ and might contribute to the coding by looking over the shoulder of a professional programmer (pair programming) or by developing some smaller pieces of code during one of the sprints.

Structure

The module consists of 5 parts (which might be given as separate lectures).

Part I: Software Engineering Context

  • Chaos – Capability Immaturity
  • High Ceremony Methodologies

Part II: Changing Context

  • Technological Context
  • Economical Context, the need for Speed
  • Crossing the Chasm

Part III: Agile Movement: Travel Light, Move Fast

  • Agile Manifesto
  • Agile Principles
  • Compliance versus Delivery
  • Agile Methodologies

Part IV: Agile Toolbox

  • SCRUM
  • Test Driven Development
  • Refactoring
  • Continuous Integration
  • Pair Programming

Part V: Scrum applied

  • Scrum roles
  • Product backlog
  • Agile estimating and planning
  • Scrum team and rest of the Organisation

Learning outcomes

At the end of the module the learner should be able to:

  • identify the difference between a waterfall approach and an Agile development method
  • provide examples of user stories as method to describe requirements
  • identify the major roles in the set-up of a scrum development approach
  • identify and understand the role of testing as integral part of the code development
  • identify and mediate ’bad smalls’ in code (in case of an Internship)

Intended Audience

Academic students that want to take an elective Internship course in a geo-ICT company that focuses on geo-ICT development of software, tools and/or platforms.

Students might also be GI-experts that want to upgrade their ‘coding’ skills (public sector, private companies, university personnel).

Pre-requisites

No specific pre-requisites required although it helps that the learner already has some background in computer languages (e.g. python).

Language
English
Format

Presentation for self-learning or to be used a webinar/f2f training. Ideally followed by in depth ‘exercises’ during an internship.

Expected workload
A minimum of 4h is required (without the Internship).