Mastering Legacy Code

In deze tweedaagse training leer je hoe je het ontwerp van software stap voor stap kunt verbeteren, terwijl je doorgaat met waarde leveren voor je klanten.

Iedereen wil software die ‘gewoon werkt’, die een plezier is om te onderhouden, waar je makkelijk
nieuwe features aan toe kan voegen. In de praktijk zijn er echter altijd bugs te fixen en klanten die tevreden gehouden moeten worden. Het team vervalt in haastwerk, de ontwerpschuld loopt op, met als resultaat legacy code – code zonder tests.

Je wilt de software stapje voor stapje verbeteren met behulp van refactoring - het verbeteren van het ontwerp van bestaande code, zonder dat het gedrag verandert. Er lijkt echter geen mogelijkheid te zijn om dat in kleine stapjes te doen: om veilig te kunnen refactoren heb je eerst geautomatiseerde tests nodig zodat je weet dat alles nog naar behoren werkt. Om tests toe te voegen, moet je de code echter eerst meer modulair maken met behulp van refactoring.

Gelukkig kan het ook anders. Via presentaties, demonstraties, oefeningen en een representatieve casus leer je ’smells’ te vinden, afhankelijkheden te verbreken, te refactoren en tests toe te voegen in legacy code die een bende is, zodat je eenvoudig en met vertrouwen nieuwe features kan toevoegen.

De technieken die aan bod komen zijn ook bruikbaar in nieuwe projecten, om te voorkomen dat er legacy code ontstaat. De technieken helpen je snel te herstellen van eventuele misstappen en te leren van voortschrijdend inzicht.

Deze training helpt je een begin te maken en biedt zowel praktische technieken als moed om vol te houden.

Leerdoelen – wat levert het op?

Als je deelneemt aan deze training, zul je:

  • specifieke ’smells’ in code leren te herkennen en aan te pakken met behulp van refactoring.
  • enkele technieken toepassen om ongewenste afhankelijkheden in code te verbreken.
  • te weten komen hoe je kan beginnen met wijzigingen maken en tests toevoegen op eenvoudige en verantwoorde wijze.
  • in staat zijn naden op te sporen in code en deze te gebruiken om afhankelijkheden te verbreken.
  • inzicht krijgen in de systeemdynamiek van ontwerpschuld.
  • plezier hebben! – we zijn trots op de plezierige en effectieve leeromgeving die wij creëren. Daarom mixen we presentaties met simulaties, oefeningen en programmeeropdrachten.
  • ervaren hoe je in een team een grote refactoring prioriteert, plant en in kleine stapjes uitvoert, in echte legacy code.

Publiek – wie heeft het meeste baat bij deze cursus?

Softwareontwikkelaars, architecten, team leads, Scrum masters en agile coaches die hun begrip van refactoring willen vergroten, zodat ze vaker betere code op kunnen leveren.

Vereiste voorkennis:

  • Object-oriëntatie
  • Ervaring met een programmeertaal met Object/Class features, bijvoorbeeld Java, C#, C++,  VB(.Net), Ruby, Python of Smalltalk
  • Enige ervaring in softwareontwikkelprojecten
  • Basiskennis van geautomatiseerd unittesten

Programma

Mastering Legacy Code bestaat uit twee intensieve trainingsdagen.

De eerste dag is inleidend, met een overzicht van refactorings, ’smells’ in code, het verbreken van afhankelijkheden door naden in de code op te sporen. We gebruiken een mix van presentaties, demonstraties en oefeningen. Je zult ook inzicht krijgen in de systemische oorzaken en gevolgen van ontwerpschuld en hoe refactoring in kleine stappen kan helpen om de achterliggende vicieuze cirkel te doorbreken.

De tweede dag is grotendeels praktijkgericht. In twee delen zullen we een grote refactoring plannen en uitvoeren op een echt legacy systeem. Deelnemers worden begeleid in het toepassen van wat ze geleerd hebben: werken met een grote hoeveelheid niet zo beste legacy code zonder de weg kwijt te raken; gebruikmaken van het vocabulaire van ’smells’, refactorings, naden, afhankelijkheden, om met een team een grote refactoring te coördineren, te plannen en uit te voeren. En dit alles op veilige, verantwoorde wijze, ondanks het ontbreken van geautomatiseerde tests.

Praktische informatie

We bieden deze training op basis van open inschrijving en als in-house training. Als je deze training graag binnen je bedrijf wilt hebben, neem dan contact met ons op.

Lengte: 2 dagen, 9:00-17:00

Aantal deelnemers: 8–14

Kosten openinschrijving (in Nederland): € 1050 per persoon  (exclusief BTW)

Kosten in-company training: op aanvraag