Wat is Application Lifecycle Management (ALM)?

In deze blog neemt onze IT-consultant Sjoerd ons mee in de toepassing, kenmerken en functies van het ALM verloop. Een essentieel onderdeel in een geoptimaliseerde IT omgeving waarbij het beheer van een applicatie, van start tot eind, inzichtelijk is.

Wat is Application Lifecycle Management (ALM)?

Application lifecycle management (ALM) is het geheel van mensen, hulpmiddelen en processen die de levenscyclus van een applicatie beheren, vanaf het ontwerp tot het einde van de levensduur.

ALM bestaat uit verschillende disciplines die vaak gescheiden zijn onder legacy-ontwikkelingsprocessen, zoals een waterval-ontwikkelingsmethode, waaronder projectmanagement, requirements management, software-ontwikkeling, testen en kwaliteitsborging, implementatie en onderhoud.

Application lifecycle management ondersteunt agile en DevOps ontwikkelbenaderingen door deze disciplines te integreren en teams in staat te stellen effectiever samen te werken voor de organisatie.

Het invoeren van ALM leidt ook tot continue levering van software en updates met frequente releases, soms wel meerdere per dag, in tegenstelling tot nieuwe releases die slechts om de paar maanden of eens per jaar verschijnen.

Application Lifecycle Management biedt een raamwerk voor softwareontwikkeling en helpt je tegelijkertijd je software in de loop van de tijd te beheren. Het volgen van ALM praktijken maakt gebruik van een lichtgewicht, vooraf vastgesteld plan en vereisten om een idee om te zetten in een applicatie.

Bij het benaderen van software ontwikkeling met ALM, moet je rekening houden met de gehele levensduur van de applicatie. Er moet rekening worden gehouden met onderhoud en toekomstige updates, inclusief wanneer de applicatie met pensioen moet gaan en vervangen moet worden.

Door deze elementen samen te brengen, leidt ALM tot snellere implementaties, een beter inzicht in je workflow, producten van hogere kwaliteit en een grotere tevredenheid bij de ontwikkelaars en gebruikers.

ALM fasen

ALM helpt je om het ontwikkelproces inzichtelijk te maken. Omdat het proces geïntegreerd is, kunt je zien welke vooruitgang is geboekt, welke stappen nog moeten worden voltooid, hoe lang dingen duren, welke tests zijn voltooid, en nog veel meer.

Applicatiebeheer (Governance)

Governance beschrijft de beslissingen die worden genomen over een applicatie. Wanneer je begint met het maken van een nieuwe applicatie, begint je met het initiële idee voor de applicatie en moet je ook overwegen hoe het zich verhoudt tot je zakelijke behoeften en doelen.

Dit draagt bij aan de vereisten voor de nieuwe applicatie, die moeten worden gedefinieerd en overeengekomen als onderdeel van de governance-fase.

Resource management, data en beveiliging, en gebruikerstoegang zijn aanvullende componenten van application governance.

Standaardisatie van deze processen leidt tot de mogelijkheid om governance te automatiseren. Het automatiseren van deze governance processen zal de levering van applicaties versnellen.

Application development

Nadat de vereisten voor de toepassing of update zijn geschetst en goedgekeurd, kan de ontwikkeling beginnen. Teams die de agile ontwikkelmethode volgen, kunnen soms wel één of zelfs meerdere keren per dag ontwikkelen en implementeren.

Het ontwerpen, bouwen, testen en implementeren van de applicatie kan allemaal worden beschouwd als onderdeel van de ontwikkelingsfase.

Testen van software

Zodra de nieuwe applicatie is ontwikkeld, zal deze moeten worden getest en zullen eventuele bugs moeten worden opgelost voordat deze in productie wordt genomen.

Voor agile en DevOps teams zou het testen gelijktijdig met de ontwikkeling moeten plaatsvinden. Feedback moet op een continue manier worden doorgegeven aan het ontwikkelingsteam.

Continue integratie zou deel moeten uitmaken van het ontwikkelingsproces om te voorkomen dat deze frequente updates met elkaar conflicteren.

Het doel van de testfase is om ervoor te zorgen dat aan de eisen van governance is voldaan en dat de applicatie werkt zoals het hoort, voordat deze wordt vrijgegeven aan gebruikers.

Exploitatie en onderhoud

Nadat de tests zijn afgerond en de eventuele bugs zijn verholpen, kan de applicatie worden uitgerold naar de gebruikers.

De operations en maintenance fase is wat ALM focust op de volledige levensduur van een applicatie. Operations en maintenance houdt niet op zodra een applicatie is uitgerold. Regelmatig onderhoud en updates moeten worden overwogen.

Het buiten gebruik stellen van een applicatie of dienst moet ook worden beschouwd als onderdeel van onderhoud. Teams moeten bepalen op welk moment een applicatie niet langer wordt ondersteund of een nieuwere versie beschikbaar komt.

ALM vs. SDLC

ALM wordt soms verward met de software development life cycle (SDLC) omdat ze beide te maken hebben met het proces van software ontwikkeling. Het belangrijkste verschil is dat SDLC primair gericht is op de ontwikkelingsfase, terwijl ALM zich bezighoudt met de gehele levenscyclus van een applicatie, van concept tot onderhoud en uiteindelijk ontmanteling, en doorgaat nadat de applicatie is ontwikkeld.

SDLC kan worden beschouwd als een onderdeel van het beheer van de levenscyclus van toepassingen, hoofdzakelijk tijdens de ontwikkelings-, test- en invoeringsfasen. ALM kan verschillende levenscycli voor de ontwikkeling van een bepaalde toepassing omvatten.

Beheerprogramma’s voor de levenscyclus van toepassingen

ALM-tools fungeren in wezen als projectmanagementtools die je helpen mensen en processen samen te brengen. Zoek naar een tool met versiebeheer, de mogelijkheid voor teams om in real time te communiceren, functies voor het beheer van vereisten, schatting en projectplanning, broncodebeheer, en testbeheer.

Misschien vindt je alle functies die je nodig hebt in 1 tool, of misschien moet je integreren met extra tools – ontwikkelaar-specifieke tools, bijvoorbeeld. De ALM tool die je kiest moet ook je ontwikkelingsproces ondersteunen, of het nu agile, waterval, DevOps, of iets anders is.

Voorbeelden van ALM-tools:

– Atlassian Jira

– IBM ALM oplossingen

– CA Agile Centraal

– Microsoft Azure DevOps Server

– Tuleap

– Basecamp