Me imagino que la decisión es impulsada por 3 factores principales:
- ¿Cuánto presupuesto tienes para construir el software? (Cuanto más dinero tenga que gastar, obviamente, más opciones de las que puede elegir)
- ¿Qué tan rápido quieres terminar el proyecto? (Cuanto más grande sea el equipo, más rápida será la construcción (la mayoría de las veces))
- ¿Cuánto estás dispuesto a gestionar el proyecto? (Una persona / equipo de desarrollo externo necesitará instrucciones de usted, no tendrá un deseo inherente de autogestión o realmente conectarse con el proyecto, la motivación probablemente se basará en que el proyecto es lo que está trabajando actualmente porque se les paga para construirlo).
Después de haber desarrollado software durante muchos años, puedo hablar personalmente sobre las dos opciones A y C que usted describe arriba:
Opción A: He escrito personalmente algunas aplicaciones SaaS complejas para clientes a lo largo de los años y me encargué del proyecto de desarrollo completo. Las ventajas eran simples, tenía el control del proyecto como gerente, DBA y codificador. No hay confusión con los desarrolladores subcontratados, no hay demoras para los SOW a medida que avanza el proyecto, solo construya, pruebe e implemente. Las desventajas eran más simples: yo era un chico y si algo me sucedía, entonces tendrían que encontrar a alguien u otra cosa para tomar el testigo y terminar el proyecto. Obviamente, dependiendo de a quién contrate, ese factor se puede minimizar, pero en mi caso, al ser un consultor confiable con un historial de proyectos de varios años, no tenían nada de qué preocuparse.
- Soy un desarrollador de software, ¿vale la pena hacer MBA, dado su costo?
- ¿Cuáles son las posibles preguntas de entrevista formuladas en la compañía CTS para desarrolladores Java con 3 años de experiencia?
- ¿Debo preguntarle a mi futuro gerente sobre los detalles específicos del trabajo de desarrollo de software?
- Como desarrollador de software mal pagado; ¿Debo esperar para mudarme de mi trabajo actual (primer trabajo)?
- Si su lista de contactos contiene nombres de contacto en inglés y tailandés, ¿qué algoritmo utiliza normalmente para ordenar la lista de contactos?
Opción C: Después de muchos años de consultoría, me mudé a la casa de mi cliente más grande. Algunas de mis tareas finalmente incluyeron el desarrollo de software y elegimos algunos proyectos para construir en lugar de comprar. Una vez más, los 3 factores que enumeré anteriormente realmente deberían impulsar esta decisión, pero en nuestro caso, tenía el conjunto de habilidades y la experiencia para saber qué incluiría en la construcción personalizada y hacer el trabajo en casa. La ventaja nuevamente fue el control completo del proyecto, y un costo realmente fijo para desarrollar con el tiempo como la única variable en el proyecto (el tiempo que pasé desarrollando fue tiempo fuera de otras tareas). La desventaja solo se dio cuenta cuando dejé la empresa y nadie en el departamento era capaz de continuar desarrollando las aplicaciones que había creado. Por lo que me dijeron, finalmente eligieron la Opción C para reemplazar mis habilidades de desarrollo un año después.
Estoy seguro de que nunca recomendaría la Opción B, ya que varios desarrolladores independientes probablemente lucharán por el crédito y la culpa de todo lo relacionado con el proyecto. Sin embargo, consideraría equipos más grandes de desarrolladores si el presupuesto lo permitiera.
Buena suerte.