En el nostre dia a dia, veiem que quan es desenvolupa una solució de software a mida, el focus sol estar en arribar al llançament. Un cop assolit aquest punt, moltes empreses respiren alleujades pensant que la feina grossa ja està feta. Però la realitat és una altra: el desenvolupament no s’acaba amb la posada en producció del software.

Un cop tens l’aplicació en marxa, has d’assegurar-te que continua funcionant, que aguanta el ritme del negoci i que evoluciona donant resposta a les noves necessitats que poden aparèixer. Aquí és on entren en joc el suport i el manteniment.

Diversos estudis estimen que entre el 75 % i el 90 % del cost total d’una aplicació es concentra després del seu llançament. I no per mala gestió. És perquè el software forma part d’un entorn viu que no para de canviar, i això obliga a actualitzar-lo sovint per no quedar enrere i assegurar que continua complint els objectius per als quals va ser dissenyat des del principi.

Què significa exactament suport i manteniment?

Són dues coses diferents, però complementàries.

El suport s’enfoca en l’ús diari: resolució d’incidències, dubtes dels usuaris, problemes puntuals. És l’atenció al client aplicada al software, però sense tocar el codi. Explicar el funcionament d’una funcionalitat que ja està implementada, resoldre dubtes sobre com interpretar un valor o càlcul que mostra el sistema, o quan cal ajuda per saber com fer una acció concreta.

El manteniment, en canvi, implica intervencions més tècniques. Resolució d’incidències, actualitzacions i adaptacions a nous sistemes operatius o navegadors, millores de rendiment, canvis normatius, revisions de seguretat… És la feina que assegura que el software segueixi funcionant correctament amb el pas del temps.

Per entendre-ho: el suport és aquell copilot que t’ajuda quan et perds pel camí; el manteniment és el mecànic que revisa el cotxe perquè no es pari a mig trajecte.

Tipus d’intervencions i quan es fan

En general, les intervencions de suport i manteniment es poden classificar en quatre grans grups:

Suport tècnic

Resoldre dubtes o incidències senzilles. No és necessari modificar el codi. L’objectiu és que l’usuari no es quedi parat i pugui seguir treballant.

Per exemple: Ajudar un usuari a configurar els filtres d’una llista per obtenir les dades desitjades.

Manteniment correctiu

Quan hi ha un error real en el software. Es localitza, es corregeix i es desplega una nova versió per solucionar-ho. Aquest manteniment correctiu pot donar-se tant de forma proactiva gràcies a la monitorització del sistema com de forma reactiva quan es detecta un error per part dels usuaris.

Per exemple: Corregir una pantalla que mostra valors erronis per un càlcul mal implementat.

Manteniment adaptatiu

És el que assegura que el sistema seguirà funcionant al llarg del temps i de forma segura a mesura que canviï el seu entorn d’execució. Quan apareix una nova versió d’un sistema operatiu, llenguatge, llibreria o qualsevol altre component, l’aplicació es modifica per adaptar-se al nou entorn.

Per exemple: Actualitzar l’app perquè funcioni amb la nova versió d’Android.

Manteniment evolutiu

Són les intervencions destinades a modificar el comportament del software a mesura que canvien les necessitats del negoci. Poden ser petits ajustos com també noves funcionalitats.

Per exemple: Afegir un nou camp al formulari de registre per capturar més informació del client.

Bones pràctiques per reduir incidències i costos

Per a nosaltres, el manteniment comença ja durant el desenvolupament. Decidir com es construeix una aplicació té un impacte directe en com es podrà mantenir després. I un cop està en marxa, cal seguir aplicant bones pràctiques que evitin errors innecessaris i permetin intervenir amb agilitat quan sigui necessari.

Codi net

El codi ha de ser clar, coherent i fàcil d’entendre. Una bona arquitectura i l’aplicació de bones pràctiques de programació ajuden a estructurar-lo bé, separar responsabilitats i evitar dependències innecessàries. Això fa que els canvis siguin més àgils, segurs i previsibles.

Controls de qualitat

Les proves automàtiques, les eines d’anàlisi estàtica de codi i les revisions manuals de codi permeten detectar errors abans que arribin a producció. Són mecanismes que ajuden a reduir riscos, millorar la fiabilitat del sistema i fer canvis amb més seguretat.

Separació d’entorns

Tenir entorns diferenciats per a desenvolupament, proves i producció evita riscos innecessaris i permet validar canvis abans de desplegar-los. Això facilita detectar problemes a temps i mantenir el sistema estable mentre evoluciona.

Documentació

No cal documentar-ho tot, però sí el que ajuda a entendre i intervenir en el sistema: com està estructurat, què fa cada part del codi, com es desplega el sistema… Una mínima documentació tècnica ben pensada estalvia temps i errors quan cal fer canvis després d’un temps.

Aplicar actualitzacions de qualsevol component del sistema

Les llibreries, frameworks i altres dependències s’han d’actualitzar de forma regular. Deixar d’actualitzar-les pot generar incompatibilitats, problemes de seguretat o dificultats per fer canvis més endavant. Mantenir-les al dia ajuda a tenir un sistema més estable i preparat per evolucionar.

Monitorització

Monitoritzar l’activitat del sistema permet detectar errors, caigudes o comportaments estranys abans que tinguin impacte real. Ajuda a identificar problemes a temps, prioritzar intervencions i prendre decisions amb dades.

Còpies de seguretat regulars

Realitzar còpies de seguretat periòdiques és una mesura imprescindible per poder recuperar el sistema ràpidament si passa alguna cosa inesperada. S’ha de disposar d’un pla de contingència que eviti que un incident extern es converteixi en una catàstrofe.

Preguntes freqüents sobre manteniment de software

En quin moment ha de començar el manteniment de software després del llançament d’una aplicació?

Des del moment en què la versió 1.0 està en producció (es llança). Si ja hi ha usuaris, és necessari manteniment.

Quant temps es necessita per realitzar el manteniment de software i com varia segons el tipus d’aplicació?

Mentre l’aplicació estigui en ús. Tant si són deu persones com si són mil.

Què inclou el manteniment de software i com afecta al rendiment de l’aplicació?

No només la correcció d’errors. Inclou adaptacions, evolucions i, sobretot, fer que el software segueixi funcionant com cal.

Per què és important realitzar manteniment de software de manera contínua tot i que tot estigui funcionant correctament?

Perquè el software i el seu entorn són vius. Canvien els navegadors, les versions de sistemes, apareixen problemes de seguretat… Actuar de forma recurrent és més eficient que haver d’actuar de cop quan hi ha un problema.

Quins són els riscos de posposar el manteniment de software i com afecta la seguretat i el rendiment del sistema?

Les tasques s’acumulen i és més fàcil que apareguin incidències. I posar-ho tot al dia de cop acaba sortint molt més car.

Com impacta el manteniment de software en la seguretat de l’aplicació i quines mesures es prenen per prevenir vulnerabilitats?

Sí, molt. Les actualitzacions corregeixen forats de seguretat i protegeixen les dades del teu negoci i dels teus clients si es donen.

Quin tipus de manteniment és més habitual en projectes de software personalitzats?

En projectes a mida, el manteniment correctiu i evolutiu solen ser els més freqüents. El correctiu perquè sempre apareixen petits errors amb l’ús real, i l’evolutiu perquè el negoci evoluciona i el software s’hi ha d’adaptar. L’adaptatiu sol ser més puntual, lligat a canvis d’entorn tecnològic com actualitzacions de sistemes operatius.

Quan convé separar els contractes de suport i de manteniment en un projecte de software?

Separar-los té sentit quan el volum d’usuaris o la complexitat del sistema requereix atenció constant. En sistemes més petits, pot gestionar-se tot com un únic servei. Però a mesura que creix l’ús, convé diferenciar suport (resolució de dubtes i seguiment d’ús) del manteniment tècnic (intervencions sobre el codi o arquitectura).

Com afecta el disseny tècnic inicial al cost futur del manteniment?

Molt. Si el codi està ben estructurat, documentat i provat des del principi, cada canvi posterior és més fàcil, més ràpid i amb menys riscos. En canvi, un desenvolupament sense previsió genera deute tècnic que encareix cada intervenció futura. El disseny inicial és una inversió directa en el manteniment futur.

Quins problemes apareixen quan una empresa no té planificat el manteniment del seu software?

S’acumulen tasques tècniques que després són urgents i més costoses. Apareixen errors que afecten usuaris, incompatibilitats amb noves versions de sistemes i pèrdua de control del sistema. Sense manteniment actiu, l’empresa entra en una dinàmica reactiva que consumeix més temps, genera més interrupcions i encareix qualsevol millora.

Planificar el manteniment amb criteri

El manteniment forma part del cicle de desenvolupament de qualsevol sistema. No és un afegit opcional, ni una fase que arriba quan tot ja està fet. És el que garanteix que el software segueixi funcionant, evolucionant i responent com cal.

Cada projecte té necessitats diferents. No és el mateix donar suport a una eina petita amb poques funcionalitats que a un sistema amb múltiples components i tecnologies. Per això és necessari adaptar l’enfocament, definir bé com es gestionarà el manteniment i tenir clar que hi haurà algú quan sigui necessari.

Recomanem que t’assessoris bé abans de prendre una decisió sobre com gestionar el manteniment del teu sistema. Un bon pla de manteniment evitarà improvisacions i pèrdues de temps.

Si no saps com mantindràs el sistema, tens mig projecte sense resoldre.