¿Cómo se mantienen los proyectos de software después de que los desarrolladores de software independientes construyen el producto inicial?

Desafortunadamente, este es un problema complejo, incluso cuando el producto es simple y el equipo inicial es pequeño.

Los contratistas se preocupan por sus negocios, no por los suyos.
No todas estas son malas noticias. Se preocupan por el boca a boca y se preocupan por la reputación. Sin embargo, los desarrolladores de software tienen que vivir en el mundo real: el mantenimiento puede ser un costo significativo y, a menudo, excede el costo del proyecto original a largo plazo. Los contratistas y consultores generalmente no tienen en cuenta este costo en sus estimaciones; ese es su problema.

Se trata de enfoque.
Si el software es el foco principal de su negocio, y usted ha subcontratado por completo el desarrollo del mismo, tengo malas noticias. Las empresas que externalizan su negocio principal están en problemas. Si ya está en esta etapa, me temo que necesita hacer algunos cambios urgentes.

Si el software es más conveniente para su negocio, probablemente no necesite o desee talento interno. Mantenga el desarrollador original en retención y espere gastar entre el cinco y el veinte por ciento del costo original por año en mantenimiento. Si cambia de contratista, espere un costo inicial significativo mientras se familiarizan con las cosas, a menos que le hagan un gran esfuerzo para obtener su negocio.

Si su negocio está en el medio, seguramente querrá llevar su soporte y mantenimiento a la casa. Obtendrá más de su costo actual del 5-20% si lo gasta en empleados en lugar de contratistas, y cuanto más dependa su empresa de este software, más importante es que la empresa tenga tiempo completo, empleados a largo plazo que entienden tanto el negocio como la tecnología.

Plan de obsolescencia.
Un hecho desafortunado sobre la industria de la tecnología es que las cosas cambian muy rápidamente, y el software a menudo tiene una vida útil corta. Es muy difícil estimar con precisión por cuánto tiempo una pieza de software seguirá siendo relevante: puede ser tan corta como uno o dos años, o tan larga como décadas. La rapidez con la que debe planear hacer otra inversión de capital, nuevamente, depende.

Si el software es el núcleo de su negocio, me temo que esto empeora las cosas. Sus competidores están constantemente gastando dinero para salir adelante, y si no tiene un equipo permanente que mejore su producto, innova y mantenga todo funcionando, pronto se encontrará perdiendo. Espere mantener un equipo interno de desarrolladores y personal de operaciones, y confíe en contratistas y consultores para cubrir fallas temporales en la capacidad. Si no es un experto en software, debe contratar a alguien para asegurarse de que cuenta con las personas adecuadas para hacer lo correcto.

Si, nuevamente, el software es una conveniencia, entonces es probable que tenga que reconstruirlo en diez o quince años. Los sistemas operativos y el hardware eventualmente tendrán dificultades para ejecutar sus sistemas obsoletos, y no hablarán con los sistemas más nuevos a medida que los reemplace.

Si se encuentra en un punto intermedio, probablemente esté buscando entre tres y diez años antes de que su software esté obsoleto y necesite una revisión importante. Asegúrese de planificar tanto el costo como el tiempo de entrega: no desea descubrir que sus sistemas críticos para el negocio son obsoletos un par de años demasiado tarde.

Eso suena caro.
Está. El software personalizado es costoso. Si le cuesta $ 200,000 construirlo, y dura diez años, y gasta un 10% anual en mantenimiento, su software de $ 200,000 le costará $ 400,000. Si el software es esencial para su negocio, espere que su software de $ 200,000 le cueste más como $ 2.2 millones en diez años, y cuente con suerte si su inversión de capital sigue siendo relevante durante diez años.

Tenga en cuenta que esto no es dinero perdido. Esta es una inversión, no solo en el beneficio que genera, sino también en su reputación como empresa de tecnología moderna.

Puede que no lo quieras.
Hay muchas razones realmente buenas para construir software personalizado, pero también hay muchas razones convincentes para no construirlo. Hay una gran cantidad de software disponible y de código abierto disponible, y puede que sea mejor usar algo que alguien más haya creado. El vendedor (o responsable del proyecto) cubrirá el costo sustancial de mantenimiento e innovación, y generalmente lo obtendrá por una tarifa de licencia anual, o incluso de forma gratuita.

Muchas empresas gastan mucho dinero en software personalizado, cuando lo que realmente quieren es un CMS como WordPress, y un tema personalizado mucho más barato. Incluso si está haciendo algo más complejo que un sitio típico de comercio electrónico o portal de clientes, puede haber opciones disponibles que satisfagan sus necesidades.

El mejor consejo que podría dar a cualquier empresa que esté considerando gastar dinero en software personalizado (o que ya lo haya hecho) es encontrar un buen mentor tecnológico, alguien inteligente, con mucha experiencia, en quien pueda confiar para cuidar sus intereses y no los de ellos. y sigue sus consejos. Encontrar a esa persona, sin embargo, no es fácil.

Los desarrolladores independientes no mantendrán el código después de la entrega de forma gratuita, a menos que sean propietarios de la IP. Lo máximo que puede obtener es llegar a unas condiciones de éxito muy bien definidas para el proyecto, y no pagarlas a menos que se cumplan los criterios.

Algunas compañías contratan contratistas y hacen que uno de los empleados supervise todo el trabajo realizado por el contratista. Una vez finalizado el proyecto, el empleado pasa el trabajo a un equipo de mantenimiento interno.

En mi opinión, ambos modelos no funcionan. Los desarrolladores no funcionan bien si no van a ser responsables de ello. Si los desarrolladores no tienen que mantener el código, tenderán a escribir código que no se pueda mantener. Esa es una de las razones por las que la industria de TI no es grande en el trabajo independiente.

More Interesting

¿Qué programas utiliza en su negocio diario como desarrollador de software además del IDE y por qué?

¿Con qué otras carreras funcionaría bien el conjunto de habilidades de un desarrollador web?

¿Es común que las personas con experiencia en hardware consideren que el desarrollo de software es trivialmente fácil?

¿Cuál es mejor, un desarrollador de software que escribe las pruebas unitarias pero no cumple con la fecha límite del proyecto o un desarrollador de software que ignora las pruebas unitarias y cumple con la fecha límite del proyecto?

¿Cuál es la mejor estación de trabajo ergo (escritorio) diseñada para un desarrollador de software?

Si otro sistema operativo supera a iOS, ¿los desarrolladores seguirán creando aplicaciones para iOS?

Rol del desarrollador de software en el proceso de desarrollo moderno. ¿Cómo ha cambiado en los últimos 10 años y cómo, en su opinión, cambiará en el futuro?

¿Qué tiene de malo promover desarrolladores de software basados ​​en la tenencia?

¿Cómo se puede crear una start-up con un equipo de desarrolladores e ingenieros de web / aplicaciones / software reclutados en el extranjero (con la expectativa de trabajar en proyectos en su país de origen)?

¿Cómo puede un mal desarrollador de software encontrar trabajo?

¿Qué materias debo elegir para mis niveles A si quiero convertirme en desarrollador de software o ingeniero de software?

¿Se considera que un desarrollador de software de automatización de pruebas es un desarrollador de software "normal"?

¿Qué proyectos debo hacer para incluir en mi currículum el puesto de desarrollador web, desarrollador de software, desarrollador de C # o SQL?

¿Qué calificaciones necesita un desarrollador de iOS?

Para un primer trabajo, ¿es preferible ser ingeniero / desarrollador de software en una gran multinacional o una startup? ¿Por qué por qué no?