Estás haciendo la pregunta correcta. Es absolutamente correcto suponer que un montón de archivos de código fuente no es un activo de la misma manera que lo sería un convertible. Una gran parte de la inversión que va a hacer son las personas en el equipo técnico que contrata, su experiencia y la cultura del equipo.
Dependiendo de muchas variables, si en algún momento decide cambiar la compañía, el costo comparativo de reescribir cada pequeño fragmento de código desde cero puede ser positivo, cero o incluso negativo. Tener cuidado.
Hay un par de opciones entre las que puede elegir para desarrollar un proyecto de software. Aquí están algunos:
- La autoedición, el desarrollo de aplicaciones y Teespring solían ser nichos sin explotar. ¿Cuáles son los nichos actuales y futuros de 'goldrush' que pocas personas conocen?
- Aplicaciones nativas vs aplicaciones multiplataforma: ¿Alguien puede decirme los principales beneficios para cada una?
- Cómo seleccionar la mejor tienda de desarrollo para la aplicación móvil de mi startup
- ¿Tiene alguna idea creativa e innovadora para una aplicación móvil?
- ¿Es posible construir aplicaciones de teléfono Android / Windows en un Chromebook o en línea?
1. Contratar una empresa para escribir el software. Personalmente no me gusta esa opción. Empecé con esto solo para desanimarte a que lo tomes y sigas adelante.
La idea aquí es que la empresa de outsourcing comparte algunos riesgos con usted, de modo que si el proyecto falla, ellos asumen responsabilidad. Siendo solo un técnico, no tengo idea de cómo va en términos de tasas de éxito en toda la industria, pero desde mi punto de vista, el enfoque es malo. Siniestro incluso. Larga historia corta: puedes pensar que sabes qué es lo que quieres programar, pero realmente no lo sabes. Por lo tanto, no puede incluirlo en el contrato y definir sanciones para el caso que no entreguen. Y, por lo tanto, la empresa subcontratada realmente no comparte ningún riesgo con usted, pero aún así paga como si lo hiciera.
2. Contrata una empresa para organizar un equipo dedicado para ti . (Estoy trabajando en uno llamado Ciklum [Excelencia en Ingeniería de Software Personalizado])
La idea aquí es que algunas compañías contratan personas para usted y usted asume todos los riesgos asociados al proyecto. Ventajas: si el equipo técnico se encuentra en India o Ucrania, podría ser más barato que el lugar donde vive. El equipo está formado y administrado por personas que saben cómo hacerlo. Organizarán procesos de desarrollo de software para usted.
3. Comience su propio departamento de software. Desventajas: puede ser difícil encontrar \ costoso contratar buenos programadores donde se encuentre. Uno necesita ser un buen programador para conocer a un buen programador. El desarrollo de software no se puede gestionar de la misma manera que otras industrias.
Ahora a tu pregunta. En este momento estoy haciendo un proyecto en el trabajo para el que originalmente se contrató a Microsoft, utilizando las tecnologías de Microsoft para aumentar los productos de Microsoft para ciertos negocios.
Después de 18 meses, Microsoft fue despedido y mi empresa fue contratada. Todo se reduce a que los programadores reales que hicieron el trabajo por parte de Microsoft no tenían nada especial en su interior. Eran solo un par de tipos muy caros de un nivel técnico realmente promedio, que tenían que seguir enormes políticas corporativas.
Ahora lidero el equipo que se hizo cargo de las fuentes. En el transcurso de 7 meses, reescribimos el 90% de ellos pieza por pieza.
Todavía estamos luchando con muchas preguntas sobre la naturaleza de “qué significaron cuando lo programaron” y el negocio no puede responder (aunque no tengo dudas de que dieron la razón).
Entonces, si se encuentra en una situación en la que tiene que cambiar la compañía que desarrolla su proyecto, es muy probable que solo le cueste un 30% más contratar a una compañía para que escriba todo desde cero.
La experiencia de los ingenieros para resolver este problema en particular y la cultura de los equipos es en lo que realmente inviertes cuando contratas personas para escribir tu software.