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 copiloto 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 quallitat

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 de 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.

  • Monitorizació

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.

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’enfoc, definir bé com es gestionarà el manteniment i tenir clar que hi haurà algú quan sigui necessari.

Recomanem que t’asesoris 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.