Software onderhoud en applicatiebeheer: de complete gids.
Je software staat live en wordt gebruikt. Wat is er daarna nodig? Hieronder lees je wat software onderhoud inhoudt, hoe het verschilt van doorontwikkeling en welke afspraken je vastlegt.
Wat is software onderhoud?
Software onderhoud is al het werk dat nodig is om een applicatie bruikbaar, bijgewerkt en beheersbaar te houden nadat de eerste versie live staat. Denk aan het oplossen van fouten, het bijwerken van het framework en de gebruikte pakketten, het aanpassen van koppelingen en het controleren van back-ups. Software is nooit helemaal af: de omgeving om je applicatie heen verandert continu, ook als je zelf niets aanpast. Onderhoud is daarom geen teken dat er iets mis is met je software, maar een normaal onderdeel van het gebruik.
Dat komt doordat moderne applicaties leunen op onderdelen van anderen. Een webapplicatie draait op een programmeertaal zoals PHP, gebruikt een framework zoals Laravel en praat met externe diensten voor betalen, mailen of boekhouden. Al die onderdelen krijgen nieuwe versies. Onderhoud zorgt dat je applicatie daarin meegaat, zodat je niet ineens voor een grote en dure inhaalslag staat. Bovendien houd je met regelmatig onderhoud kennis van je eigen applicatie, zodat wijzigingen later sneller en met minder risico kunnen worden doorgevoerd.
Applicatiebeheer, onderhoud en doorontwikkeling
De begrippen worden vaak door elkaar gebruikt. Applicatiebeheer gaat over het dagelijks laten functioneren van een applicatie: gebruikers en rechten, instellingen, vragen van medewerkers en de afstemming met hosting. Technisch onderhoud gaat over de code zelf: fouten herstellen, afhankelijkheden bijwerken en zorgen dat koppelingen blijven werken. Doorontwikkeling betekent dat de software nieuwe mogelijkheden krijgt. Bij kleinere bedrijven liggen deze taken vaak bij dezelfde partij, maar het helpt om ze in je afspraken toch apart te benoemen.
Het onderscheid is belangrijk voor je afspraken. Foutherstel en updates zijn terugkerend werk dat je vooraf kunt afspreken. Een nieuwe functie vraagt een eigen afweging: wat levert het op, hoeveel werk is het en wanneer past het? Daarom maken we bij Lilopel duidelijk welk werk onder de afspraken valt en wat we apart begroten. Zo weet je vooraf waar je aan toe bent. Dat voorkomt discussies achteraf en maakt het makkelijker om nieuwe wensen te plannen.
Waarom updates niet kunnen wachten
Uitstellen voelt veilig: de applicatie werkt toch? Maar iedere versie die je overslaat, maakt de volgende stap groter. Een framework dat een paar versies achterloopt, vraagt bij bijwerken vaak aanpassingen op meerdere plekken tegelijk. Bovendien stoppen ontwikkelaars van frameworks en programmeertalen na verloop van tijd met beveiligingsupdates voor oudere versies. Een applicatie die op een niet meer ondersteunde versie draait, ontvangt geen oplossingen meer voor nieuw ontdekte beveiligingsproblemen. Dat risico groeit met iedere maand dat je wacht.
Regelmatig onderhoud houdt die stappen klein. We brengen in kaart welke pakketten verouderd zijn, werken ze bij op een aparte testomgeving en controleren of alles nog doet wat het moet doen. Pas daarna gaat de update live. Dat maakt het werk voorspelbaarder en voorkomt dat een noodzakelijke update samenvalt met een drukke periode in je bedrijf. Een grotere update kun je dan bewust plannen in een rustige periode, in overleg met de mensen die de software dagelijks gebruiken.
Laravel onderhoud in de praktijk
Veel maatwerkapplicaties die Lilopel bouwt en onderhoudt, draaien op PHP en Laravel, vaak met Filament voor beheerschermen en MySQL als database. Laravel brengt regelmatig nieuwe versies uit en ondersteunt oudere versies maar een beperkte periode. Laravel onderhoud betekent daarom dat je het framework, PHP en de gebruikte pakketten in samenhang bijwerkt. Een oudere Laravel-applicatie breng je daarom meestal in tussenstappen naar een actuele versie, waarbij we per stap controleren wat er in de code moet worden aangepast en of alles nog werkt.
Geautomatiseerde tests helpen daarbij. Ze controleren na een update of belangrijke onderdelen, zoals inloggen, facturen maken of orders verwerken, nog werken. Ontbreken die tests, dan kunnen we ze stap voor stap toevoegen voor de onderdelen die het meest kritisch zijn. Zo wordt iedere volgende update minder spannend en houd je grip op de kwaliteit van je applicatie. Ook Filament-beheerschermen en gebruikte pakketten nemen we daarin mee, omdat die vaak hun eigen versies en vereisten hebben.
Welke afspraken leg je vast?
Goede onderhoudsafspraken beginnen bij het gebruik. Wie mag een melding doen en via welk kanaal? Hoe beoordelen we of iets dringend is? Wie is verantwoordelijk voor de server, de back-ups en het terugzetten daarvan? Welke updates voeren we periodiek uit en hoe informeren we je daarover? Door dit vooraf te bespreken, voorkom je onduidelijkheid op het moment dat er iets misgaat. Leg ook vast hoe je wordt geïnformeerd over uitgevoerde updates en hoe vaak je samen terugkijkt op de afspraken.
Responstijden en bereikbaarheid leggen we alleen vast als die onderdeel zijn van de overeenkomst. Een interne tool die een paar medewerkers gebruiken, vraagt iets anders dan een portaal waar klanten dagelijks op inloggen. We kijken samen wat bij jouw situatie past, in plaats van een standaardpakket aan te bieden dat niet aansluit. De afspraken kunnen meegroeien: begint je applicatie klein, dan pas je ze aan zodra meer medewerkers of klanten ermee werken of zodra er koppelingen bijkomen.
Onderhoud overnemen van een andere partij
Het komt vaak voor: de oorspronkelijke bouwer is gestopt, onbereikbaar of heeft andere prioriteiten. Dan wil je weten of iemand anders het onderhoud kan overnemen. Dat kan, maar het begint met een beoordeling. We bekijken de code, de technische omgeving, de koppelingen en de beschikbare documentatie, en we controleren of we toegang hebben tot alles wat nodig is. Ontbreekt toegang tot de code of de server, dan zoeken we eerst samen uit hoe die kan worden verkregen.
Op basis daarvan bespreken we wat we tegenkwamen: welke onderdelen goed in elkaar zitten, waar achterstallige updates zitten en welke risico’s aandacht vragen. Soms is het verstandig eerst een inhaalslag te maken voordat regulier onderhoud zinvol is. In andere gevallen kunnen we direct verder. Je krijgt in ieder geval een eerlijk beeld voordat je afspraken maakt. Ook als je uiteindelijk niet met ons verder gaat, heb je daarmee een helder document dat je aan een volgende partij kunt geven.
Hoe AI helpt bij onderhoud
Lilopel werkt AI-first. Bij onderhoud helpt AI ons bijvoorbeeld om onbekende code sneller te doorgronden, de gevolgen van een update in kaart te brengen, tests voor te stellen en mogelijke oorzaken van een fout te onderzoeken. Dat versnelt het uitzoekwerk, vooral bij software die we niet zelf hebben gebouwd. Ook bij het beschrijven van wijzigingen en het bijhouden van technische documentatie is AI een nuttig hulpmiddel, waardoor kennis over je applicatie beter bewaard blijft.
Een ontwikkelaar beslist, controleert en blijft verantwoordelijk. AI-voorstellen worden beoordeeld en getest voordat ze worden toegepast, en niets gaat live zonder controle. Het gebruik van AI bij ons werk staat los van de vraag of jouw software zelf AI-functies heeft; voor onderhoud is dat meestal niet nodig. Wil je wel AI-functies in je applicatie, bijvoorbeeld om documenten te verwerken of vragen te beantwoorden, dan is dat doorontwikkeling en bespreken we dat apart.