Esta es una pregunta algo compleja de responder porque, como muchas cosas, realmente depende de las circunstancias del proyecto, el nivel de control que tiene la compañía contratada, si el software personalizado ha sido administrado por la compañía contratada durante todo su ciclo de vida, la cantidad de "interferencia" de otras personas con acceso a la base del código, la actitud de todas las personas involucradas, la complejidad del proyecto y las metodologías utilizadas ... Realmente podría continuar.
Todos los sistemas tienen un grado de deuda técnica. En algunos casos, esto puede no ser particularmente notable debido a los esfuerzos diligentes por parte de los desarrolladores que trabajan para mantener siempre una base de código limpia, sin embargo, ningún sistema es perfecto y un rediseño importante puede hacer que un problema aparentemente inocente pero de larga data sea evidente. Entonces, ¿cómo manejan esto las empresas contratadas?
En muchos casos no lo hacen. A menudo, el software será escrito por una empresa, luego modificado por otra, y no es inusual ver que la base del código se desordene realmente ya que cada compañía bajo contrato trabaja con un plazo ajustado y no justificará el tiempo para mantener el código limpio ( y a veces apenas probado) si esto significa que podrían arriesgarse a perder una fecha límite.
En otros casos, encontrará empresas que no solo administran bien su proyecto contratado, sino que de alguna manera encuentran el tiempo para dejar la base de código existente en un estado mejor de lo que lo encontraron. Hacen esto a menudo con una planificación cuidadosa, identificando fuentes de deuda técnica, generalmente aquellas que tendrán un mayor impacto en el trabajo nuevo, e idean estrategias para proporcionar casos de prueba y modificaciones que contribuyan a administrar la deuda técnica y tengan en cuenta todo esto en el cronograma del proyecto. .
¿Ser un software personalizado garantiza una deuda técnica en lugar de escribir un producto central? La respuesta corta es no, sin embargo, es probable que la deuda técnica se acumule si no se trata activamente. Esto es lo mismo que con cualquier otro proyecto de software. Si controla el proyecto por completo a lo largo de su ciclo de vida, entonces tiene una mejor oportunidad de lidiar con la deuda técnica. De lo contrario, tendrá que lidiar con la deuda técnica que puede haberse acumulado del código que la compañía anterior dejó atrás.
Por otro lado, si su pregunta fuera preguntar si escribir software independientemente de su modelo de negocio es una garantía de deuda técnica. La respuesta sería absolutamente. La verdadera pregunta es cómo cualquier compañía maneja la deuda técnica. ¿Dejar que se acumule y tratar con él a una hora programada, o administrar una base de código limpia de manera continua para pagar la deuda técnica lo antes posible? Esa respuesta se reduce a las prioridades individuales de una empresa, y si la deuda técnica incurrida es financieramente relevante.