Cuando desarrolle software SaaS que sea bastante complejo, ¿debería contratar a múltiples desarrolladores en Upwork o contratarlos internamente en una oficina local física?

Me imagino que la decisión es impulsada por 3 factores principales:

  1. ¿Cuánto presupuesto tienes para construir el software? (Cuanto más dinero tenga que gastar, obviamente, más opciones de las que puede elegir)
  2. ¿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))
  3. ¿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.

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.

Gracias por el A2A. Definitivamente, cuantos menos, mejor, para la primera versión crucial. Idealmente, uno. Vea el razonamiento a continuación. Me especializo en automatización de negocios complejos y siento tu dolor. No mucha gente puede manejar esa complejidad, y mucho menos mantenerse enfocado con el tiempo.

La complejidad típica de los procesos comerciales, que vale la pena automatizar, ya que todos los nichos más fáciles ya se han tomado, está más allá del alcance de atención del sitio web típico del consumidor: desarrolladores de UX, comercio electrónico, etc. Un equipo independiente no lo manejará.

Y definitivamente es un desarrollo interno, ya sea que la “casa” sea local o virtual, por ejemplo, las personas que se comunican a través de Skype durante todo el día como si estuvieran sentadas en la misma oficina. Lo que estoy tratando de decir es que necesitas contratar personas a tiempo completo. Necesitas pensadores poco ortodoxos. Necesitas a alguien con resistencia. Suponiendo que tiene alguna idea de automatización poco ortodoxa, ya que mencionó la complejidad. Los freelancers tienen una mentalidad diferente: piratean rápidamente sitios web o aplicaciones móviles utilizando alguna plantilla. Y la mayoría de ellos son trabajadores a tiempo parcial.

No encontrarás suficiente localmente, a menos que … tengas una universidad cerca. Por lo tanto, puede contratar a un experto de confianza, que puede traer graduados recientes que Google aún no haya captado o dañado por la TI corporativa.

Sin embargo, si encuentra al experto adecuado, él / ella puede manejar el proyecto más allá del MVP, construyendo una versión sólida extensible. Es un largo viaje, los ingenieros principales son caros y tienen mucha demanda, lo que trae mi siguiente punto: solo un cofundador realmente puede dedicarse a su idea.

Las opciones actuales para los fundadores técnicos y comerciales coincidentes, por ejemplo, FounderDating apestan. Pruébalos ¿Qué tienes que perder? Actualmente estoy trabajando en una mejor solución, pero eso es todo lo que tengo libertad para decir en este momento.

No estoy familiarizado con Upwork. Si se trata de una versión exclusiva de Freelancer, no encontrará allí a la persona del calibre del ingeniero principal.

Hay una serie de variables específicas de la situación que entrarán en juego con esta decisión, pero en mi experiencia es mucho mejor contratar desarrolladores directamente o contratar una casa de desarrollo local.

Con un sitio como Upwork, tiende a encontrarse con un escenario de “las probabilidades son buenas, pero los productos son extraños”. Es posible que se encuentre con problemas en los que se iluminan la luna y no puede dedicar suficiente tiempo a su proyecto, donde desaparecen durante meses sin razón aparente, donde tienen malas habilidades blandas como la comunicación que ralentiza su proceso, o cualquier cantidad de otros posibles interruptores del proyecto.

Al menos con una casa de desarrollo local o un personal interno, puede mitigar la mayoría de estos problemas.

La compensación es el costo, pero de “Rápido / Calidad / Barato” solo puede elegir dos.

Si está desarrollando desde cero, es mejor llevar el desarrollo internamente. Los freelancers en sitios como Upwork (siendo uno yo mismo) tienen muchos otros proyectos en curso, y en esos momentos la comunicación entre múltiples freelancers se vuelve extremadamente tediosa. La contratación de trabajadores independientes es ideal si necesita una pequeña característica desarrollada en un período de tiempo relativamente corto, pero no para el desarrollo desde cero.

Gracias por la solicitud, Sophie!

Debes saber que realmente no me siento calificado para responder con confianza a esta pregunta porque no tengo mucha experiencia en el trabajo independiente. También trabajo principalmente solo en mis proyectos, pero como he estudiado mucho sobre emprendimiento, principalmente en empresas tecnológicas, siento que debería ayudar con lo que aprendí.

De la pregunta, supongo que esto es para alguna empresa, tal vez una startup. Básicamente, existe un consenso sobre la orientación de que, en este caso, debe utilizar un equipo interno completo que sea técnicamente competente y tenga el tamaño adecuado para sus necesidades. Lo que básicamente necesita es un equipo altamente cohesionado que pueda comunicarse de manera rápida y efectiva, y autogestionarse. El hecho de que los miembros del equipo probablemente tengan equidad o sean partes interesadas muy cercanas también será necesario para el compromiso correcto de tener un buen producto.

También he observado que, eliminando la relación de trabajo independiente, un espacio físico común puede ayudar, pero no es necesariamente necesario. Contamos con tecnología accesible para la comunicación y puede establecer un compromiso con otros factores.

¡Espero que ayude! ¡Atentamente!

No sé qué son SaaS o UpWork, pero me preguntaste.

Creo que el desarrollo interno es mejor para un software complicado, cuanto más pueda reducir los canales de información necesarios, menos posibilidades de confusión y malentendidos. La contratación de talentos externos, freelancers o desarrolladores de contratos crean más interfaces de comunicación. La confusión y los malentendidos pueden ocurrir y seguirán sucediendo en un equipo interno, pero tendrá más control sobre las interfaces.

Un esfuerzo interno también le dará más poder y control para elegir quién está en el equipo, el esfuerzo no tendrá éxito a menos que pueda construir un buen equipo.

En casa, es realmente la única forma de avanzar en un ciclo de desarrollo complejo a menos que trabajes todo el trabajo en una casa de desarrollo. La elección depende de dos cosas, finanzas y experiencia.

¿Tiene dinero pero no tiene personal calificado? Envíalo a un equipo de desarrollo de software.

¿Tiene menos dinero y buen personal? Hazlo en casa.

¿No tiene dinero y muy pocos buenos empleados? ¿Considerar código abierto? (Sin embargo, prepárate para un @eache real [protegido por correo electrónico] )

En cuanto a la contratación de uno o más desarrolladores de un sitio independiente, no lo recomendaría, esto puede ponerse feo rápidamente. Desde problemas de ND hasta problemas de coordinación, niveles de habilidad desconocidos y mucho más.

Buena suerte.

Por lo general, necesita al menos uno (preferiblemente dos) desarrolladores internos que sean responsables de la arquitectura general. Es peligroso que la infraestructura de software de toda su empresa esté en manos de una sola persona que no está incentivada para llevarlo a cabo y es notoriamente difícil conseguir que un grupo de freelancers dispares trabajen juntos si no tiene a alguien a cargo de cómo encaja todo.

Por lo tanto, mi voto sería encontrar un cofundador, alguien lo suficientemente técnico como para construir grandes porciones de su servicio y lo suficientemente experimentado como para supervisar la agricultura de las partes que no pueden hacer por su cuenta.

Probablemente quiera contratar a varias personas para trabajar en diferentes partes y hacer que trabajen en equipo. Puede ser inteligente contratar a un hombre mayor en la casa para dirigir el equipo, establecer las prioridades técnicas y asegurarse de que las cosas funcionen como se supone que deben hacerlo.

He trabajado en equipos como este en mi pasado y tiende a funcionar bastante bien siempre y cuando la gente deje su ego en la puerta.

More Interesting

¿Qué tan fácil en Estados Unidos para un desarrollador de software una vez terminado para encontrar un nuevo trabajo?

He oído hablar de desarrolladores de software que ganan 300-500 $ k. Soy un principiante relativo en el campo, todavía no he arañado 100k. ¿Cómo llegas a esas sumas? ¿Qué conocimientos / calificaciones pueden llevarte allí?

¿Los desarrolladores de software hacen un verdadero "desarrollo de software" en TCS / CTS / Infy y empresas de TI similares?

¿Qué debo hacer si he perdido interés en el desarrollo de software?

Después de 10-20 años, ¿dónde podría ver a un desarrollador de aplicaciones móviles en India?

¿Cuál es la mejor empresa de desarrollo de software del mundo?

¿Qué cosas han mejorado los niveles de habilidad de los desarrolladores de software o los han hecho profesionales? ¿Cuáles son algunas historias?

¿Cuánto tiempo le tomaría a una persona promedio sin experiencia en programación convertirse en un desarrollador de pila completa? Quiero ser competente en las tecnologías front-end y back-end. Tengo un conocimiento muy básico de HTML y estoy aprendiendo CSS.

Cómo avanzar en freecodecamp cuando el mapa cambia constantemente

¿Es posible que el ingeniero de control de calidad pase a un rol de desarrollador dentro del equipo de Apple después de un año más o menos?

¿Hay alguna forma práctica de entender por qué Java es un lenguaje malo y aburrido?

¿Cuáles son las 10 principales compañías para comenzar su carrera como desarrollador de software para nuevos en la India?

¿Cómo se siente que los desarrolladores de software sean despedidos en su primer día de un nuevo trabajo?

Cómo conseguir un trabajo de desarrollador iOS con seis meses de experiencia

¿Qué operaciones de sistemas y responsabilidades de monitoreo debe adoptar un desarrollador de software para un proyecto sin personal de operaciones tradicional?