Una de las dudas más frecuentes que nuestros clientes se plantean cuando quieren desarrollar un nuevo proyecto es la de subcontratar el desarrollo a una empresa externa o bien contratar a un equipo propio desde el comienzo. Normalmente, y de manera incorrecta, este tipo de decisiones se suelen tomar basándose exclusivamente en el aspecto económico, cuando en realidad intervienen varios factores que se han de tener en cuenta.

En primer lugar, y a la vez lo que según nuestra experiencia consideramos como lo más importante, está la dificultad de formar un buen equipo de desarrollo. Para que un equipo de desarrollo sea productivo se tiene que cumplir que el equipo sea equilibrado y esté formado por buenos profesionales, tanto a nivel técnico como personal. Contratar a la ligera a las personas equivocadas puede traer graves consecuencias para el proyecto, como retrasos en la entrega o mal ambiente en el equipo de trabajo. Y no solo son importantes los miembros del equipo encargados del desarrollo técnico, sino aquellos encargados de la gestión y dirección. Es importante disponer de tiempo y experiencia suficiente para poder elegir a las mejores personas a contratar, precisamente por esto existen grandes agencias de recruiting que ofrecen a empresas el servicio de búsqueda de los mejores candidatos para una oferta de trabajo. Al final un mal equipo producirá código de baja calidad y poco mantenible.

Por otra parte está el aspecto económico. Es habitual pedir presupuestos de desarrollo de un producto y compararlos con el coste que supondría contratar a una o dos personas a tiempo completo. Este tipo de comparación que a priori parece lógica incita al error de creer que una o dos personas recién contratadas para un proyecto nuevo van a poder alcanzar la misma productividad y calidad que una empresa externa que se dedique a ello de manera profesional y con experiencia. Esto se vuelve más importante en proyectos que necesitan estár terminados en ciertos plazos de tiempo concretos por restricciones externas, como una meta impuesta por un inversor o un cliente.

La continuidad del proyecto es uno de los miedos más frecuentes que tienen algunas empresas cuando se plantean subcontratar el desarrollo. Habitualmente nos encontramos con casos en los cuales no se desea externalizar el desarrollo de un proyecto pensando que después de su finalización va a ser una tarea casi imposible el continuar con él, bien mediante un equipo propio o mediante otra empresa diferente. Esto depende directamente de la calidad del código desarrollado y la documentación generada en el proyecto, así como el uso de frameworks estándar que sigan una serie de patrones de diseño bastante conocidos. Si el proyecto se desarrolla de manera adecuada, puede ser mantenido y ampliado perfectamente en el futuro por cualquier desarrollador competente.

Nuestra recomendación general, sobre todo para startups que quieran desarrollar la primera versión de su proyecto, es establecer una estrategia híbrida. La idea es preparar un MVP (minimum viable product o producto mínimo viable) en el menor tiempo posible, en rango que vaya desde tres hasta seis meses como máximo, subcontratando este desarrollo a una empresa especializada. A partir de ahí y una vez lanzado el proyecto a producción, en función del éxito y de la inversión disponible, crear y transferir el proyecto a un equipo de desarrollo propio, que sea capaz de continuar con mantenimiento y desarrollo de nuevas funcionalidades. Este tipo de estrategia híbrida la hemos puesto en práctica con varias empresas, siendo la que aporta un mejor balance en términos de coste, tiempo, calidad y funcionalidad del producto a desarrollar.