¿Aplicaciones estándares o hechas a medida?

Procesos de negocio

Una de las decisiones que un Director de Tecnología (CTO en inglés) debe tomar es la concerniente a la estrategia de las aplicaciones a utilizar en la organización, de acuerdo con los objetivos de negocio y las posibilidades de la misma. Y es en esta tarea que surge el eterno dilema: ¿adoptamos una aplicación estándar del mercado o desarrollamos una a medida que implemente exactamente lo que necesitamos? Esta pregunta, como todas las de estrategia, no tiene una respuesta uniforme y debe considerarse cuidadosamente la situación en cada caso.

Las aplicaciones estándares o paquetizadas son aquellas que podemos adquirir en el mercado mediante una empresa experta que se ocupará del suministro de licencias y de la implantación.  Hay dos grandes clases de aplicaciones estándares: las horizontales y las verticales.

Las aplicaciones horizontales son aquellas que satisfacen las necesidades de una gama amplia de organizaciones, de diferentes sectores y características. Hay muchos procesos en las compañías que siguen modelos comunes, debido a que la legislación impone sus normas o a que las buenas prácticas ya son muy conocidas. Este es el caso de los procesos de ventas, procesamiento de pedidos, logística, facturación, contabilidad y control financiero, por citar algunos a grandes rasgos. Por esta razón han surgido productos de software muy completos como los ERPs (Enterprise Resource Planning), los CRM (Customer Relationship Management), las suites financieras, software de TPVs (Terminales de Punto de Venta), CAD (Computer Aided Design), gestión hospitalaria, y un largo etcétera.

Por otra parte, las aplicaciones verticales intentan satisfacer las necesidades específicas de un sector determinado. Ejemplos: ERPs para la distribución mayorista, gestión para farmacias, gestión de un supermercado, CAD para arquitectura y todas las sectoriales que podemos imaginar.

Las aplicaciones estándares presentan beneficios importantes:

  • El coste de I+D resulta repartido entre muchos clientes.
  • Uno no está solo, se aprovecha de la experiencia del implantador en otros clientes con características parecidas.
  • El fabricante de la aplicación se ocupa del mantenimiento y de la evolución del producto.
  • Podemos concentrarnos más en nuestro negocio.

En contrapartida, tenemos los siguientes inconvenientes:

  • Menos flexibilidad para adaptar la aplicación a las necesidades particulares.
  • Seguramente adquirimos funcionalidad que no necesitamos y que molesta a los usuarios al imponer un modelo más complejo de lo necesario.
  • El fabricante intentará llevarnos a su ecosistema, inclusive con un bajo precio inicial, pero poco a poco nos irá diciendo que necesitamos algunos otros productos de su catálogo para que todo funcione bien integrado. Luego, cuanto más hayamos invertido en sus productos, más alta es la barrera que tenemos que superar para cambiar de fabricante. En otras palabras, intentará tenernos cautivo.
  • La evolución del producto diseñada por el fabricante puede no estar alineada con la evolución deseada del negocio. El fabricante puede discontinuar el producto reemplazándolo por otro, quizás de una compañía que acaba de adquirir, y aunque soportará el que ya tenemos por un período de tiempo, nos irá presionando para hacer una migración. El hecho de que una aplicación sea producida por un gran fabricante no asegura su continuidad.
  • Si crece el número de usuarios u otro parámetro por los que el fabricante mide la capacidad, el coste de adquisición de licencias y los respectivos mantenimientos puede dispararse.

Para paliar la carencia de flexibilidad de los productos estándares, los fabricantes recurren a dos técnicas:

  1. La parametrización. Consiste en definir una gran cantidad de parámetros en el sistema que gobiernan el comportamiento de determinadas partes del mismo. Un ejemplo de esto puede ser en un ERP definir si se emite la factura automáticamente al emitir el albarán. Una de las tareas más importantes de la implantación es la parametrización necesaria para que la aplicación implemente un modelo de negocio y procesos lo más parecido posible a las necesidades del cliente.
  2. El desarrollo. La mayoría de los productos estándares proporcionan APIs para extender su funcionalidad y quizás sea necesario utilizar lenguajes propietarios del producto (como ABAP en SAP). Estos desarrollos tienen el inconveniente de tener unos costes muy elevados por la escasa disponibilidad de consultores y desarrolladores específicos para el producto. También es necesario que los desarrollos no toquen el núcleo del sistema y que sean suficientemente seguros frente a las actualizaciones, de lo contrario estaremos firmando nuestra propia sentencia de muerte y habrá que reimplementar todo al actualizar la aplicación estándar. Hay verticales que están desarrollados por terceros sobre productos estándares de mercado, como pasa con muchos verticales desarrollados sobre SalesForce, por ejemplo, convirtiéndose así el producto estándar en una plataforma de desarrollo.

Las aplicaciones hechas a medida se hacen según las necesidades específicas de una organización. Permiten implementar modelos de negocio particulares, con procesos únicos, lo que le brinda a la organización la posibilidad de diferenciarse para cumplir mejor su misión. Estas aplicaciones generan información única, especialmente adaptada a la visión particular de la compañía y su posicionamiento. A partir de esta información específica es más fácil construir en el BI los cuadros de mando con los indicadores claves del negocio y los informes relevantes.

Si todas las empresas utilizaran software estándar, les sería imposible diferenciarse porque todas implementarían los mismos procesos y modelos de negocio. Por esta razón hay y habrá muchas aplicaciones hechas a medida en distintos sectores de la economía, inclusive en el tercer sector, el de las organizaciones no lucrativas.

Las aplicaciones a medida pueden desarrollarse in-house, con un equipo propio de la organización, lo cual suele darse en organizaciones grandes como la banca, o pueden ser contratadas a una compañía externa.

Las aplicaciones hechas a medida presentan las siguientes ventajas:

  • No se requiere pagar licencias ni mantenimientos. Sin embargo hay que tener en cuenta que esto depende del entorno de desarrollo y ejecución que se adopte. Hay algunos fabricantes que intentan sacar una tajada no sólo con la venta de las herramientas de desarrollo sino también con licencias de ejecución del código desarrollado (licencias de runtime), a veces no directamente, sino a través del requerimiento de servidores de aplicaciones específicos que se licencian por usuario nominado.
  • Permiten ser muy creativo utilizando la tecnología más avanzada y más apropiada, implementando funcionalidad que no está disponible en productos estándares.
  • Hay más libertad para elegir, para cambiar y para decidir la evolución de la aplicación.

Como contrapartida, el desarrollo de aplicaciones a medida tiene los siguientes inconvenientes:

  • Se necesita contar con un equipo de desarrollo interno o externalizado, con un plan de continuidad, ya que la rotación del personal, sea este del propio cliente o de la empresa externa, podría poner en peligro la viabilidad del proyecto a largo plazo.
  • Requieren de experiencia en el desarrollo, gestión de proyectos y control de riesgos. Esto es cierto aunque se externalice el desarrollo. El departamento de IT tiene que implicarse en transmitir los requerimientos, aprobar diseños, probar prototipos, etc.
  • Es necesario implementar buenas prácticas de versionado, de control de código fuente y de documentación.

La inmensa mayoría de las aplicaciones se desarrollan en el modelo web por las grandes ventajas que éste representa, tales como el acceso en cualquier lugar, soporte de múltiples plataformas, incluyendo dispositivos móviles, y el no tener que instalar ni mantener software en el cliente además del navegador y los plugins más comunes. Las tecnologías actuales basadas en Javascript que se ejecuta en el navegador coordinado con el servidor, como AJAX, permiten que las aplicaciones web sean muy interactivas, rápidas y enormemente atractivas.

El despliegue de las aplicaciones puede hacerse de muchas maneras, desde la tradicional usando infraestructura propia del cliente, aprovisionada y mantenida por él (on premise), hasta mediante el uso de servicios cloud en la modalidad de software as a service (SaaS) donde el proveedor del servicio se encarga de la complejidad del aprovisionamiento y de la administración del sistema. Esta última opción no implica en modo alguno que las aplicaciones están listas para usar en cuanto se contratan al proveedor. Es necesario igualmente que el cliente o alguien contratado por él se encargue de parametrizar, cargar datos iniciales, definir usuarios, roles y permisos y personalizar informes y documentos de salida.

Las aplicaciones hechas a medida se desarrollan sobre marcos de trabajo (frameworks en inglés). Un buen framework proporciona muchos elementos comunes de una aplicación como el acceso a la base de datos, el control de sesiones o los roles de usuarios y sus permisos de acceso. Pero un buen framework también facilita mucho el desarrollo de las aplicaciones. Es muy importante la decisión acerca del lenguaje y del framework para el desarrollo. Hay frameworks cuyo modelo de programación es sólo imperativo y orientado a objetos, mientras que otros frameworks permiten más agilidad con una programación declarativa, construyendo ellos los detalles de la implementación. De este modo se puede trabajar en alto nivel, escribiendo la lógica de la aplicación casi al nivel de las reglas de negocio, lo que se traduce en una mayor productividad y en un mantenimiento más fácil. Esto es lo que puede hacer que el desarrollo a medida sea rentable en más casos frente a la adaptación de productos estándares.

Finalmente, hay que destacar el papel del software libre. En el post “El silencioso avance del software libre” hemos hablado de ello. En el caso de hacer un desarrollo a medida, el software libre ofrece muchas opciones ampliamente utilizadas y bien mantenidas, con lenguajes tradicionales u otros más avanzados, y con una gran variedad de frameworks. Aún si se implementa una aplicación estándar del mercado, es muy posible que tenga ciertas partes elaboradas con software libre. El uso del software libre produce un importante ahorro de costes y lo que es más importante aún, preserva la libertad de elección y no nos obliga a pagar por tecnología que no necesitamos.

En las PyMEs el uso del software estándar es lo más recomendable, especialmente para los procesos comunes de compras, ventas, logística, administración y contabilidad. Pero es muy importante elegir uno bien adecuado a las necesidades y no simplemente el más popular. También es recomendable la opción de despliegue en modo cloud. Pero aún en las PyMEs muchas veces hay procesos y servicios que no pueden automatizarse con las herramientas estándares y resultan caras de implementar y de mantener como extensiones de una aplicación estándar. En esos casos el desarrollo de una aplicación a medida para implementar estos procesos especiales en paralelo con el software estándar para los procesos comunes es la solución más coherente.

La decisión sobre una aplicación es muy importante y no debe pensarse en ella de manera aislada sino dentro de un plan estratégico con visión a largo plazo y pensando en la evolución de la organización. Es importante estar bien asesorado. En caso de decidirse por un desarrollo a medida, si no se tiene la experiencia necesaria para supervisar el desarrollo es muy recomendable contratar una consultoría independiente como la que Liberix ofrece, que aporte esa experiencia, ayude a alinear los objetivos del cliente con los del equipo de desarrollo y limite los riesgos asumidos.

No se aceptan nuevos comentarios.