Software personalizado


El software personalizado (también conocido como software a medida o software a medida ) es un software especialmente desarrollado para alguna organización específica u otro usuario. Como tal, puede contrastarse con el uso de paquetes de software desarrollados para el mercado masivo , como software comercial estándar o software libre 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 estándar. El software personalizado se puede desarrollar en procesos iterativos, permitiendo que se tengan 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 perfectos). 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 gestión general . [1]

Las grandes empresas suelen desarrollar software personalizado para funciones críticas, incluida la gestión de contenido , la gestión de inventarios , la gestión de clientes , la gestión de recursos humanos o, de otro modo, para llenar los vacíos presentes en los paquetes de software existentes. En muchos casos, dicho software es software heredado , desarrollado antes de que el software comercial disponible 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, fue cancelado. 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 a menudo se considera caro en comparación con las soluciones o productos disponibles en el mercado. Esto puede ser cierto si se habla de desafíos típicos 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 desarrollar software personalizado.

El costo tampoco es la única consideración 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 propietario del código fuente , para asegurar la posibilidad de mejoras o modificaciones futuras en el sistema instalado para manejar los requisitos cambiantes. Sin embargo, el software comercial moderno disponible a menudo tiene interfaces de programación de aplicaciones (API) para la extensibilidad, u ocasionalmente, como en el caso de Salesforce.com , un lenguaje específico de dominio (DSL), lo que significa que los paquetes de software comerciales disponibles a veces pueden acomodar una amplia variedad de personalizaciones sin la necesidad de acceder al código fuente del sistema de software comercial principal.

Además, el software comercial estándar viene con costos de licencia iniciales que varían enormemente, pero que a veces llegan a los millones de dólares estadounidenses. Además, las grandes empresas de software que lanzan productos de software comerciales listos para usar renuevan sus productos con mucha frecuencia. Por lo tanto, es posible que deba actualizarse una personalización particular para que sea compatible cada dos o cuatro años. Dado el costo de la personalización, dichas actualizaciones también pueden resultar costosas, ya que es posible que deba asignarse un ciclo de lanzamiento de producto dedicado. Sin embargo, en teoría, el uso de API y / o DSL documentadas, a diferencia del acceso directo a tablas de base 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 disponibles en el mercado pueden optar por utilizar técnicas como: