Mantenimiento del software… opcional o necesario?

Amalgama
Amalgama’s Blog
Published in
4 min readApr 28, 2020

--

By: Clarilopezb

Muchos creen que el desarrollo tiene un par de meses de duración y que es la última parte en el proceso de creación de productos digitales. Pero no, el desarrollo no termina una vez que lanzamos el producto al mercado.

Una vez que lanzamos el producto al mercado, y la gente lo empiece a usar, necesitamos contar con un equipo técnico (ya sea interno o externo) encargado de “seguir metiendo mano en el código”. ¿Por qué? Veamos primero qué significa “mantenimiento” y qué diferentes tipos existen.

¿Qué es el mantenimiento?

El mantenimiento es cualquier cambio que hagamos a la versión del software en producción, ya sea para corregir errores, agregar funcionalidades, mejorar alguna, o simplemente conservar la capacidad de prestar el servicio para el cual fue pensado y diseñado.

Tipos de mantenimiento:

  • Mantenimiento evolutivo: como lo dice su nombre, tiene el fin de evolucionar y perfeccionar el producto. Una vez que la plataforma está en el mercado, y es usada por usuarios reales, aprendemos mucho, y en este aprendizaje, puede surgir que descubramos nuevas necesidades o incluso, oportunidades de mejora. El diseño centrado en el usuario, busca desde el momento cero, crear una plataforma lo más amigable posible, para evitar estos cambios a futuro, pero siempre aparecen funcionalidades que no habíamos tenido en cuenta, o cosas que podrían haber sido dispuestas de una mejor manera.
    Acá les es dejo un ejemplo simple de Instagram.
  • Mantenimiento preventivo: aquel que tiene como objetivo evitar posibles problemas que puedan surgir en el futuro, como problemas de seguridad u operatividad, o bien cuestiones de escalabilidad y compatibilidad.
  • Mantenimiento correctivo: consiste en los cambios que hacemos para eliminar errores existentes en el código. Puede ser un error percibido y descubierto por uno o muchos usuarios, o un error más pequeño que no llegue a percibirse, y se arregle a tiempo.
  • Mantenimiento adaptativo: como sabemos, el mundo del software y tecnología, avanza increíblemente rápido, y para poder “sobrevivir” en el mercado, las aplicaciones y plataformas tienen que adaptarse y moverse al mismo ritmo si no quieren ser eliminadas. Voy a hacer foco en este tipo de mantenimiento, que es el más complejo de entender, pero a la vez, de los más necesarios.

¿Qué significa adaptar nuestra plataforma a los cambios del mundo tecnológico?

El mundo tecnológico está en constante cambio, por lo que tenemos que estar continuamente adaptándonos. Veamos un par de ejemplos:

  • La evolución y variación de entornos: nosotros desarrollamos para cierto navegador en determinado sistema operativo, pero ambos cambian constantemente y se actualizan. ¿Cada cuánto el teléfono nos pide que actualicemos la versión del SO? Cada actualización puede exigir algún cambio en nuestro código, a veces más chico, y otras tan grande que sino me adapto, puede no funcionar, o funcionar mal.
  • Exigencias de Mkt Place: para que las apps estén al alcance de las personas, uno debe publicar su plataforma en algún Market place, como Apple Store y Google Play, y para esto, debe adaptarse a sus reglas. Hay ciertos guidelines que existen hace mucho tiempo y generalmente cualquier aplicación las cumple, pero a menudo, salen nuevas reglamentaciones que exigen cambios.
    Acá les dejo un ejemplo reciente de Apple, donde cambió sus políticas de Log In en las apps.
  • Actualización de librerías: muchas veces, para reducir los tiempos y mejorar la calidad, al desarrollar se recurre al uso de librerías o frameworks. Una librería es una porción de código escrito en determinado lenguaje que soluciona un problema específico. Estas librerías también se actualizan y por ende, cambian. Un cambio en esta puede hacer que ya no “encaje” con mi sistema de la misma manera que lo hacía, y que sea nos exija actualizar parte de nuestro código para que vuelva a funcionar.
  • Integración a sistemas externos: también suele pasar que al desarrollar nos integremos a otros sistemas ya existentes, externos a nuestra empresa. Un ejemplo : supongamos que queremos mostrar el clima en nuestra app. Claramente no vamos a desarrollar un sistema que calcule la temperatura y se fije si llueve o hay sol. Nos vamos a integrar a algún sistema que ofrezca estos datos al público, y que nos permita “absorberlos”. Dado que estos sistemas son externos, ellos pueden ir modificándolos y actualizándolos como les parezca, sin nuestro permiso, y cuando lo hagan, puede ser que dispongan de esa información de una manera distinta, o hasta puede ser que dejen de proveer esa info. En cualquiera de los dos casos, vamos a tener que analizar el cambio y ver cómo nos impacta, para hacer los ajustes correspondientes.

Conclusión

Habiendo dicho todo esto, creo que quedó bastante claro porqué el mantenimiento es un requerimiento, y no una opción. Si no nos adaptamos, perdimos. El objetivo entonces es alargar al máximo la vida útil de nuestro producto y mantenerlo activo, y de la mejor calidad, durante el máximo tiempo posible.

Si te gustó la nota, contanos haciendo click acá.

--

--

We are a digital consulting firm. We develop digital products that people love to use. Visit us at www.amalgama.co and contact us at hello@amalgama.co