Cuando hablamos de software a medida, a menudo nos preguntamos si realmente vale la pena optar por esta opción en lugar de utilizar soluciones ya existentes. En este artículo, exploraremos qué implica el desarrollo de software a medida, qué pasos deben seguirse para llevarlo a cabo de manera eficiente y en qué casos es una inversión justificada. Además, veremos situaciones concretas en las que el software a medida es la mejor opción y otras en las que es preferible adaptarse a herramientas ya disponibles. El objetivo es entender cuándo esta inversión se puede amortizar y generar un valor real.
El desarrollo de software profesional implica:
- Extraer todos los requerimientos y documentarlos para que quede perfectamente claro qué se quiere resolver. ¿De dónde venimos (system-as-is) y a dónde queremos llegar (system-to-be)?
- Analizar e investigar si ya existe una solución similar que, aunque no sea exactamente lo que se busca, pueda resolver gran parte del problema. ¿Vale la pena utilizarla como base y adaptarla? ¿Se puede hacer con un coste razonable?
- Proponer una o varias opciones al cliente. Cada una de ellas debe estar bien especificada, con croquis y/o un documento que explique las funcionalidades que tendrá.
- Diseñar la solución elegida, es decir, decidir:
- Qué sistemas realizarán el trabajo y permitirán el acceso. Esto incluye servidores, sistemas operativos, dispositivos IoT y otros softwares con los que se comunicará nuestra solución.
- En qué lenguajes se desarrollarán las partes a medida y con qué pautas y estructura de directorios se programará.
- Cómo representar la información de manera estructurada en bases de datos relacionales, no relacionales y/o archivos, trabajando primero con ejemplos realistas o, en ocasiones, con datos reales.
- Desarrollar la solución elegida mediante iteraciones (sprints):
-
- Definir las pruebas de aceptación del usuario (User Acceptance Test - UAT) para el bloque actual: ¿qué debe hacer?
- Desarrollar el bloque (sprint).
- Desplegar internamente.
- Probar internamente (depurar el código hasta que pase la UAT). Aquí se puede agilizar con pruebas unitarias.
- Actualizar la documentación técnica.
- Entregar al cliente mediante un despliegue staging, junto con la documentación técnica orientada al usuario que describe las funcionalidades implementadas.
- Refinar requerimientos o añadir nuevos.
- Pactar el siguiente sprint con el cliente y volver al punto 1.
- Para finalizar:
-
- Desplegar en preproducción con datos reales. UAT con el cliente para confirmar y, si es necesario, refinar hasta que esté listo.
- Desplegar en producción, ponerlo en marcha y realizar la UAT en producción.
(*) "Para finalizar": Un software nunca está realmente terminado. Siempre se pueden hacer nuevas versiones que amplíen su funcionalidad, pero lo importante es contar con un MVP (Producto Mínimo Viable) operativo que genere valor desde el primer momento.
¿Cuándo vale la pena el software a medida?
El software a medida vale la pena cuando la inversión se puede amortizar. Si se desarrolla correctamente y con un coste razonable, el esfuerzo y los recursos invertidos se recuperarán en forma de tiempo ahorrado, mayor eficiencia y reducción de errores.
Ejemplo de escenario que requiere software a medida
Un gestor genera semanalmente numerosos pequeños pagos a través de su banco a partir de tickets de diversos proveedores. Dedica entre 10 y 12 horas semanales a esta tarea. De hecho, ni siquiera ha contado ese tiempo, pero cuando lo haga se dará cuenta de que emplea el 30% de su jornada en ello. Un software a medida reduciría ese tiempo a solo 2 horas semanales y, además, minimizaría errores.
El software haría lo siguiente:
- A partir de los tickets escaneados, generaría archivos en un formato específico que se podrían subir directamente a la página del banco.
Por lo tanto, la única tarea manual seguiría siendo:
- Escanear los tickets y subir los archivos al banco (2 horas semanales en lugar de las 10 o 12 anteriores).
Al cabo de un año, considerando 40 semanas operativas, este gestor habrá ahorrado más de 300 horas de su tiempo, cuyo valor supera con creces el coste del software, que oscila entre 1.000 y 2.000 euros. A partir de ahí, cada año solo requerirá pequeñas mejoras y un mantenimiento mínimo, que no debería superar unos cientos de euros anuales.
Aún así, no siempre es necesario desarrollarlo todo
No es necesario reinventar la rueda. Si una funcionalidad del software es extraer texto de un ticket escaneado y ya existe una herramienta para ello, no hace falta desarrollarla de nuevo. Se puede usar esa herramienta (llamado OCR).
Esperar al momento adecuado
Si el proceso que se quiere automatizar aún no está claro o necesita más definición, es mejor esperar hasta saber exactamente qué debería hacer el software antes de desarrollar algo que luego no encaje con las necesidades reales.
A veces, no es el momento adecuado porque, como hemos dicho, requiere tiempo y esfuerzo, además de dinero, y puede que no sea la mejor inversión en ese momento.
¿Cuándo no vale la pena hacer software a medida?
Si el coste de desarrollo es demasiado alto en comparación con la alternativa de usar un producto ya existente, es mejor optar por esta última opción. Lo que no quede resuelto se puede gestionar con Excel, correos electrónicos y comunicación entre personas.
Ejemplo de escenario donde no es necesario un software a medida
Una oficina de patentes necesita mantener y hacer seguimiento de toda la documentación que genera. La tipología de esta documentación está regulada por organismos europeos y españoles. Existen productos de software que siempre están actualizados con la legislación y cubren todas las casuísticas. Estos productos soportan todos los flujos de trabajo necesarios y, además, se benefician de la experiencia de múltiples oficinas de patentes. Un equipo de ingenieros trabaja constantemente en su mantenimiento y actualización. En este caso, es mejor utilizar uno de estos productos y pagar una licencia recurrente en lugar de desarrollar un software desde cero.
Las integraciones como solución intermedia
Cuando un producto no cubre todas las necesidades, pero otro sí lo hace, es posible integrarlos. Por ejemplo, si el sistema actual no genera facturas pero se dispone de otra herramienta que sí lo hace, se puede implementar una integración automatizada para generar las facturas automáticamente, ampliando la funcionalidad sin modificar el producto principal.
Las integraciones son, en esencia, software a medida. Permiten automatizar procesos y hacer que distintas herramientas existentes trabajen juntas, evitando así la necesidad de desarrollar un nuevo software desde cero. En otro artículo hablaremos más a fondo sobre este tema.