Legacy in een moderne wereld
Software ontwikkeling in een legacy omgeving Christiaan Heidema Software Architect, Application Lifecycle Management Software ontwikkeling in een legacy omgeving. Dat roept de vraag op wat is “legacy”. Een woord met een negatieve klank. Je kunt er grote pleidooien over houden, maar legacy is in mijn ogen niets meer en niets minder een gevoel. Utrecht, 23 januari 2014
Legacy…… Een geautomatiseerd systeem en zijn omgeving waarvan in het algemeen het gevoel bestaat dat de houdbaarheidsdatum is verstreken Een geautomatiseerd systeem: we hebben het over software Zijn omgeving: dit is de hardware waar de software op draait, maar ook de omgeving, de organisatie (bouwteam/testteam) en de procedures die er voor gelden (incident/changes/bevindingen/duur van testen) In het algemeen: merendeel van de organisatie Houdaarheidsdatum: niet meer in investeren, heeft zijn beste tijd gehad Legacy is meer een gevoelstemperatuur dan een objectieve beoordeling waar je een checklist op af kunt vinken. Moeilijkheid: welke waarde koppel je ergens aan voordat je aangeeft of iets oud is of niet. Vgl fiets op kamers/wielrennen/eerste baan Maar hoe zit dat met mainframes? Software, machines …….wat is de waarde van deze “kolossen”. Welke waarde hebben deze systemen nog?
Mainframe Legacy……? 24 januari… STUFI Payday Hoeveel mainframes zijn er nodig om stufi uit te betalen?...... MF hebben nog hun waarde, maar worden toch door veel bedrijven gezien als legacy…waarom?
Historie (1) – Begin jaren IT Leading Stand-alone Mainfame FORTRAN/ COBOL/ Assembler Beloften Snel Goedkoop Veilig …… In de begin jaren was IT redelijk simpel. Er werd een grote machine naar binnen gerold, een aantal experts aangenomen en er wordt IT bedreven. IT-ers hadden bijna een goddelijke status. IT bepaalde hoe er gewerkt werd, wat het systeem doet en organisatie, de business had maar te volgen. Mainframe was ook zo’n beetje het enige aparaat dat de benodigde verwerkingscapaciteit had. Maar vanaf het begin hebben we als IT-ers geroepen: we kunnen het snel, goedkoper, veilig etc. etc.
Historie (2) – Jaren 80 en 90 Business meer leading Technologie tijdperk Fusies Mix van systemen / applicaties Koppelingen ……beloften……. Vernieuwingsdrang Minder investeringen Er kwam een kentering. In de loop van de tijd begon de business zich te roeren. IT dient ondersteunend te zijn aan de organisatie en niet andersom Tevens zag je in de tijd een opmars van diverse nieuwe technologiën, grote verwerkingen waren niet meer alleen toebedeeld aan mainframe. Voorzicht werden de eerste server parken ingericht al dan niet in huis. Bedrijven kregen ook temaken met fusies waarbij naast organisaties ook ICT-systemen samengevoegd moesten worden. Nieuwe technologien hadden ook nieuwe beloften: snel, goedkoop, veilig Zo onstond er een drang naar vooral technologische vernieuwing, waarbij minder geinversteerd werd in de reeds bestaande (mainframe) systemen
Legacygevoel! Historie (2) – 2000 + Business leading “Dot com” bubble burst Achterstallig onderhoud Onderhoudskosten Wildgroei Beloftes……zucht Legacygevoel!
Historie (2) – Laatste jaren Duurzaamheid Strategische keuzes Budget???? Slechten van eilanden / muren Legacy gevoel door Leeftijd Achterblijvende ontwikkelingen …. Software ontwikkeling
Software Ontwikkeling Ontwikkelingen? “Proven” technology Achterblijvende investeringen Vastomlijnde procedures COBOL updates Systeem Ontwikkeling Methodiek Eigenlijk zijn er gedurende de ruim 50 jaar relatief weinig ontwikkelingen geweest (de laatste jaren gaat het beter). Vandaar het vraagteken Het mainframe bestaat uit proven technoly en software wat gewoon werkt. Nijpende budgetten en stabiele omgevingen leiden eigenlijk tot weinig noodzakelijke veranderingen. Voorbeeld : COBOL 50 jaar oud, slechts 10 major taal aanpassingen De systeem ontwikkeling methodiek verschilt vaak per organisatie maar is voor veel organisaties af te leiden van de waterval methode
Software Ontwikkeling Kenmerken mainframe applicaties Veelal batch systemen Online transactie “Groene schermen” Programmeren op techniek Vaak monolitisch Voorbeeld omvang: 2.4M regels code 2500 programma’s 465 schermen 500 procedures (335 batch) COBOL 50 jaar oud, slechts 10 major taal aanpassingen
Software Ontwikkeling Methodiek Basis Gefaseerde aanpak Eerst fase afsluiten voordat je aan een nieuwe begint Voordelen - Vroegtijdige foutdetectie relatief goedkoop - Hoge documentatie graad - Het is een rechttoe-rechtaan methode. De manier van werken zorgt ervoor dat er zich concrete fasen vormen. Nadelen Er zijn een aantal nadelen van deze manier om software te ontwikkelen. Invloed exteren factoren (wetgeving, opdrachtgever) Moeilijk planbaar door lange fasen - Verandering van inzichten moeilijk te structureren: bouwers kijken anders naar een FO bv - Experts per fase zorgen voor tijdsverspilling, omdat in feite al met een andere fase begonnen kan worden - Het testen gebeurt pas in één van de laatste fasen van het project. Doordat er zoveel nadruk wordt gelegd op documentatie, is de watervalmethode niet efficiënt - Vaak lange doorlooptijden Ik denk dat deze aanpak van de systemen een uitermate belangrijke rol heeft gespeeld en nog speelt bij het legacy gevoel. Hoewel goed beheersbaar zijn hier wel erg veel kosten mee gemoeid en lange doorlooptijden……
Software Ontwikkeling - Documentatie Consequentie Studie Definitie Studie Functioneel Ontwerp Technisch Ontwerp Procedure / Transactie Beschrijving Programma beschrijving Scherm layout Print layout Testdossiers Programma Procedure FAT / GAT / EXP Insteek van de waterval methode is de documentatie (kort toelichten)
Software Ontwikkeling Ook aan de buitenkant is er niet veel veranderd. Werd er vroeger gewerkt met een terminal (zwart / groen scherm) tegenwoordig gaat dat met een emulator, maar de schermen zijn allemaal nog gewoon karakter georienteerd
Software Ontwikkeling Het wijzigen van een programma gaat dus ook zo! Een line command editor. Op de command staat “FIND ALL COFFEE” en zo kun je tekst zoeken in het de code. Regels toevoegen of verwijderen Verder moet je vaak je eigen JCL maken = script taal voor het uitvoeren van je compilatie, je programma of systeemtest Zeer werkbaar, maar voor mensen die beginnen is dit erg lastig, in vergelijking met andere gangbare editors. Henk gaat jullie daar meer over vertellen
Software Ontwikkeling Zo ziet een scherm voor een medewerker. Ook beperkte in kleuren, geen drop-down etc. Geen event driven, maar afvangen van toetsaanslagen
Software Ontwikkeling Complexiteit Technische afhankelijkheden Leerzaam Performance issues COBOL Wat is er zo leuk?
Software Ontwikkeling Documentatie graad Procedures Moeizame procesverbeteringen Doorlooptijd Wat is er zo leuk?niet leuk
Uitdagingen Systeem aanpassingen komen niet alleen, maar zitten in een compleet applicatie landschap Inzicht hierin is lastig, wat valt er om als je ergens iets aan past Enorme historie is in de source code aanwezig, kun je niet 1-2-3 vervangen. Complexiteit maakt het ook wel weer leuk : PROLONGATIE WSF
Uitdagingen Personeel is lastig te vinden. De experts naderen tussen nu en 10 jaar de pensioengerechtigde leeftijd. En dan? Het stoffige imago zorgt er ook voor dat Er van onderaan geen nieuwe aanwas meer te komt. Hoe waarborg je de kennis
Uitdagingen Distributed Development Environment Enterprise Implement Build & Stage Production Environment Provision & Validate Server(s) Deploy Developer Builder Tester Build Develop Development Assets Deployment Een ander probleem nog niet genoemd is dat elke eigen applicatie / omgeving zijn eigen ontwikkelclubje heeft die aardig op zich zelf staat En communicatie is niet iets wat we als ICT goed kunnen. Tezamen met de complexe landschappen waar we mee te maken hebben,
Uitdagingen Doorlooptijd en kosten…..
Break
Toekomst COBOL blijft Positie mainframe versterkt
Toekomst Integratie wordt bepalend
Toekomst Delen, bundelen, verspreiden van kennis gaat bepalend worden.
Toekomst Opstellen van een roadmap
Vragen? Er zijn nog veel meer te noemen……
Bedankt! Elke keer als je presenteert, vertegenwoordig je Sogeti. Sogeti is trots dat je jouw kennis en kunde overdraagt aan anderen en daarmee aan ‘de rest van de wereld’. Laat daarom via Twitter, Facebook of andere social mediakanalen weten dat (en wat) je presenteert. Om je presentatie via Slideshare te delen kun je Corporate Communicatie inschakelen. Tot slot kun je jezelf promoten door je Linkedin en/of Twitter account te vermelden. Zorg ervoor dat de presentatie geen gevoelige informatie bevatten die Sogetisten, Sogeti en/of klanten kunnen schaden.