El software personalizado (también conocido como software a medida o software a medida ) es un software desarrollado específicamente para una organización específica u otro usuario. Como tal, se puede contrastar con el uso de paquetes de software listos para usar desarrollados para el mercado masivo , como software comercial listo para usar o software gratuito existente .
Dado que el software personalizado se desarrolla para un solo cliente, puede adaptarse a las preferencias y expectativas particulares de ese cliente, lo que puede no ser el caso del software comercial listo para usar . El software personalizado puede desarrollarse en procesos iterativos, lo que permite tener en cuenta todos los matices y posibles riesgos ocultos, incluidos los problemas que no se mencionaron en las especificaciones de requisitos originales (que, por regla general, nunca son perfectas). En particular, la primera fase del proceso de desarrollo de software puede involucrar a muchos departamentos, incluidos marketing , ingeniería , investigación y desarrollo y administración general . [1]
Las grandes empresas suelen desarrollar software personalizado para funciones críticas, como la gestión de contenidos , la gestión de inventarios , la gestión de clientes , la gestión de recursos humanos o para llenar los vacíos presentes en los paquetes de software existentes. En muchos casos, este software es software heredado , desarrollado antes de que el software comercial listo para usar o los paquetes de software gratuitos que ofrecen la funcionalidad requerida con un nivel aceptable de calidad o funcionalidad estuvieran disponibles o fueran ampliamente conocidos. Por ejemplo, la BBC gastó una gran cantidad de dinero en un proyecto para desarrollar su propio software personalizado de producción y gestión de medios digitales , pero el proyecto experimentó problemas y, después de muchos años de desarrollo, se canceló. Una razón clave declarada para la cancelación del proyecto fue que había quedado claro que existía software comercial listo para usar que, en ese momento, era adecuado para las necesidades de la BBC y estaba disponible por una pequeña fracción del precio. [2]
El desarrollo de software personalizado suele considerarse caro en comparación con las soluciones o productos listos para usar. Esto puede ser cierto si se habla de desafíos y soluciones típicas. Sin embargo, no siempre es así. En muchos casos, el software comercial listo para usar requiere personalización para respaldar correctamente las operaciones del comprador. El costo y la demora de la personalización del software comercial listo para usar pueden incluso sumarse al gasto de desarrollo de software personalizado.
El costo tampoco es el único factor a considerar en la decisión de desarrollar software personalizado, ya que los requisitos para un proyecto de software personalizado a menudo incluyen que el comprador sea dueño del código fuente , para asegurar la posibilidad de futuras mejoras o modificaciones al sistema instalado para manejar los requisitos cambiantes. Sin embargo, el software comercial moderno listo para usar a menudo tiene interfaces de programación de aplicaciones (API) para extensibilidad, o en ocasiones, como en el caso de Salesforce.com , un lenguaje específico de dominio (DSL), lo que significa que los paquetes de software comercial listo para usar a veces pueden acomodar una amplia variedad de personalizaciones sin la necesidad de acceder al código fuente del sistema de software comercial básico listo para usar. [3]
Además, el software comercial listo para usar tiene costos iniciales de licencia que varían enormemente, pero que a veces alcanzan millones de dólares estadounidenses. Además, las grandes empresas de software que lanzan productos de software comercial listos para usar renuevan sus productos con mucha frecuencia. Por lo tanto, es posible que sea necesario actualizar una personalización particular para lograr compatibilidad cada dos o cuatro años. Dado el costo de la personalización, estas actualizaciones también pueden resultar caras, ya que es posible que se deba destinar un ciclo de lanzamiento de producto específico para ellas. Sin embargo, en teoría, el uso de API y/o DSL documentados, en lugar de acceso directo a tablas de bases de datos internas y módulos de código, para la personalización puede minimizar el costo de estas actualizaciones. Esto se debe a que los proveedores de software comercial listo para usar pueden optar por utilizar técnicas como:
La decisión de crear un software personalizado o de optar por la implementación de un software comercial listo para usar generalmente depende de uno o más de los siguientes factores:
La industria de la construcción utiliza software personalizado para gestionar proyectos, hacer un seguimiento de los cambios e informar sobre el progreso. Según el proyecto, el software se modifica para adaptarse a las necesidades particulares del propietario del proyecto , el equipo de diseño y los contratistas generales y comerciales. [4]
Los datos específicos del proyecto se utilizan de otras maneras para adaptarse a los requisitos únicos de cada proyecto. El software personalizado se adapta a las preferencias y expectativas particulares de un equipo de proyecto, lo que lo hace adecuado para la mayoría de los procesos y desafíos de construcción:
Los desarrolladores de software personalizado utilizan varias plataformas, como FileMaker Pro , para diseñar y desarrollar software personalizado para la industria de la construcción y otras industrias.
Los hospitales pueden mantener registros médicos electrónicos y acceder a ellos en cualquier momento. Esto permite que un médico y sus asistentes transfieran los datos de un paciente a través de una red.
Mantener los grupos sanguíneos de los pacientes en una base de datos del hospital hace que la búsqueda de sangre adecuada sea más rápida y sencilla.
Los hospitales también utilizan software de facturación, especialmente en sus dispensarios .
Las escuelas utilizan software personalizado para mantener los datos de admisión de los estudiantes. También elaboran certificados de transferencia. Algunos gobiernos desarrollan software especial para todas sus escuelas. Sampoorna es un proyecto de sistema de gestión escolar implementado por el Departamento de Educación del Gobierno de Kerala, India, para automatizar el sistema y el proceso de más de 15.000 escuelas en el estado. Estos proyectos aportan uniformidad a las escuelas.
La facturación es un uso común del software personalizado. Los pequeños comercios, los supermercados y los vendedores mayoristas suelen utilizar el software personalizado para gestionar los detalles del inventario y generar facturas.
Los miembros del Parlamento y funcionarios del Reino Unido han investigado exhaustivamente los fallos y los sobrecostes de los proyectos informáticos del gobierno; han encontrado un rico filón de fallos para examinar, entre ellos:
Cuando una empresa está considerando una solución de software, las opciones generalmente son crear una hoja de cálculo (que a menudo se hace en Microsoft Excel ), obtener un producto listo para usar o contratar un software personalizado creado específicamente para satisfacer sus necesidades. Hay cinco criterios principales que intervienen en la selección de la solución correcta:
Si bien las evaluaciones iniciales de las opciones según estos criterios pueden desviarse marcadamente de la realidad de la solución final cuando se ponga en práctica, debido a factores tales como sobrecostes, capacitación insuficiente, ajuste deficiente del producto, confiabilidad de la solución, etc.
Estos factores deben tener en cuenta el funcionamiento de la empresa, su sector, su tamaño y su facturación. Por lo tanto, la decisión solo se puede tomar en función de cada empresa para determinar si es necesario un desarrollo personalizado, así como la propiedad del software.
El software personalizado generalmente producirá el sistema más eficiente ya que puede brindar soporte para las necesidades específicas de la empresa, que podrían no estar disponibles en una solución estándar y brindará mayor eficiencia o un mejor servicio al cliente.
Si se adopta un enfoque de desarrollo adecuado, como DSDM , el software personalizado también producirá la mejora del servicio más adecuada o más acertada. Las empresas pueden adaptar el software a lo que quieren sus clientes en lugar de tener que elegir un paquete que se adapte a un mercado genérico. Por ejemplo, una empresa de impresión puede querer un software que responda en el menor tiempo posible, mientras que otra empresa de impresión puede centrarse en producir los mejores resultados; como estos dos objetivos suelen entrar en conflicto, un paquete estándar normalmente se situará en algún punto intermedio, mientras que con el software personalizado cada empresa puede centrarse en su público objetivo.
Aunque no siempre es la opción más adecuada para proyectos más grandes o complejos, una hoja de cálculo permite que menos personal técnico de una empresa modifique el software directamente y obtenga resultados más rápido. El software personalizado puede ser incluso más flexible que las hojas de cálculo, ya que está diseñado por profesionales del software que pueden implementar funciones para una amplia gama de necesidades empresariales.
Las principales desventajas del software personalizado son el tiempo y el costo de desarrollo. Con una hoja de cálculo o un paquete de software comercial, un usuario puede obtener beneficios rápidamente. Con un software personalizado, una empresa necesita pasar por un proceso de desarrollo de software que puede llevar semanas, meses o, en el caso de proyectos más grandes, años. Los errores introducidos accidentalmente por los desarrolladores de software y las pruebas exhaustivas para eliminarlos pueden obstaculizar el proceso y hacer que tarde más de lo esperado. Sin embargo, las hojas de cálculo y los paquetes de software comerciales también pueden contener errores y, además, dado que pueden implementarse en una empresa sin pruebas formales, estos errores pueden pasar desapercibidos y causar errores críticos para la empresa.
El software personalizado suele tener un coste varias veces superior al de las otras dos opciones y normalmente incluye un coste de mantenimiento continuo. Esto hace que el software personalizado no sea viable para las empresas más pequeñas. Estos costes más elevados pueden ser insignificantes en las empresas más grandes, donde pequeños aumentos de la eficiencia pueden estar relacionados con grandes ahorros en costes laborales o donde el software personalizado ofrece un gran aumento de la eficiencia.
En particular, con el software en la nube moderno, es posible un modelo híbrido de software personalizado en el que el enfoque principal se centra en el software comercial listo para usar, principalmente en la falta de correspondencia entre sus características, funciones y los requisitos, preferencias y expectativas comerciales. La idea aquí es comprar un software comercial listo para usar que satisfaga la mayor cantidad de requisitos y desarrollar software personalizado (extensiones o complementos) para llenar los vacíos que deja. Este es el enfoque estándar utilizado al implementar SAP ERP , por ejemplo.