¿El código de outsourcing es más costoso a largo plazo? ¿Daña la calidad del código? [cerrado]

16

Soy consciente de una empresa que posee la propiedad intelectual de un producto de software decente y obtiene un excelente ingreso anual de licencias. Sin embargo, el director (no técnico) se queja del costo de mantener el equipo de desarrollo, ya que afecta significativamente los márgenes de beneficio y está considerando el desarrollo de la subcontratación de módulos específicos a otros países que cobran a una tasa más baja.

Personalmente, no creo que sea una solución más rentable a largo plazo. Esto puede conducir a fallas en la comunicación cuando hay problemas, además, las especificaciones deberán ser herméticas, lo que puede llevar más tiempo de todos modos. En mi opinión, cuando se trabaja en equipos, la comunicación es clave, ¿o hay una forma efectiva de hacer que esto funcione?

Seth
fuente
24
¿El costo de los salarios de los programadores está afectando los márgenes de ganancias de una compañía de software? ¡¿Quien lo hubiera pensado?!
Dima
20
PHB quiere más dinero -> PHB se da cuenta de que tiene que pagar los salarios -> PHB decide deshacerse de todos por personas más baratas -> la empresa se va por las nubes. Es un viejo disco cansado.
Steven Evers
2
"¿El costo de los salarios de los programadores está afectando los márgenes de ganancias de una compañía de software? ¿Quién lo hubiera considerado?", Y, en ese momento, es hora de que la compañía salga del desarrollo de software y se centre en el soporte de software de un moribundo producto. : - /
the Tin Man
19
Puede funcionar, pero necesita que la empresa principal esté ubicada en el nuevo país debido a la comunicación que es necesaria. Es probable que su compañía también ahorre un poco de dinero externalizando ese puesto de director.
dietbuddha
1
Uno de los peores ejemplos es Quark y QuarkXPress, que pasó de una cuota de mercado del 95% a casi nada.
gnasher729

Respuestas:

41

Estoy seguro de que alguien tiene un ejemplo de esto funcionando, pero no lo he visto.

He trabajado en una compañía Fortune 500 durante muchos años, donde subcontrataron mucho desarrollo. No tengo un solo ejemplo en esos años de un proyecto subcontratado que cueste menos que si lo hubiéramos hecho nosotros mismos (internamente).

Si bien sus tasas de programación fueron menores que las nuestras, pasamos 3 veces la cantidad de tiempo administrando el equipo subcontratado que lo que hacemos para los equipos internos. Eso se suma al tiempo adicional necesario para tener los requisitos más detallados que las necesidades de nuestro equipo interno y el tiempo adicional necesario en el control de calidad porque el código nunca estuvo cerca de ser correcto.

Walter
fuente
1
+1 - El mío también ... Me pregunto si todas las corporaciones usan el mismo libro de jugadas.
Ali
Eso es más o menos lo que esperaba.
Seth
He visto esto en mi antiguo lugar de trabajo. Al final gastaron más dinero, porque tuvieron que volar de un lado a otro para administrar los desarrolladores remotos. La empresa ya no realiza ningún desarrollo de software propio: personaliza los productos M $.
Giorgio
31

Puede tenerlo rápidamente, puede tenerlo a bajo costo, o puede hacerlo bien. No puedes tener los tres, y diría que incluso dos de cada tres pueden ser una exageración.

Dean Harding
fuente
18

Para una compañía de software, esto es simplemente estúpido. Lo más cerca que podrían llegar a una decisión razonablemente inteligente sería trasladar la empresa a otra ubicación que tenga un talento más barato.

Una empresa de software que externaliza su desarrollo de software ya no es una empresa de software. Yo diría que cualquier ganancia obtenida será de corta duración, porque está creando su propia competencia. Una vez que se dan cuenta de que conocen el producto mejor que tú, también se dan cuenta de que ya no te necesitan.

Steven Evers
fuente
9
+1 Cuando esto toca la regla "Nunca subcontrate su competencia central"
Sparky
Depende en gran medida de cuál sea el desarrollo; por ejemplo, subcontratamos informes de scripting y paneles que utilizan la API de nuestro producto de base de datos de series de tiempo, ya que no tenemos suficiente personal para hacer todos los diferentes scripts o personalizaciones de los clientes en nuestras instalaciones. . Subcontratar el desarrollo del producto central, sí, pero no todo el desarrollo de software es competencia central.
Pete Kirkham el
13

Mi única experiencia de outsourcing a una empresa en otro país será la última. La compañía que fue contratada, no completó su trabajo a tiempo o ni siquiera cumplió con las especificaciones de forma remota, y resultó en que tuvimos que rehacer todo el lote nuevamente internamente.

Sin embargo, si puede encontrar una compañía confiable en la que pueda confiar (es decir, que haya visto / escuchado cosas buenas de otras personas), entonces tal vez valga la pena.

adamk
fuente
¿No había cláusulas en el contrato que especificaran el producto final?
snmcdonald
16
@snmcdonald: cláusulas como esa son muy difíciles de especificar adecuadamente y muy difíciles de aplicar a través de las fronteras internacionales. Y si la empresa de outsourcing simplemente no cumple, no importa lo que hay en el contrato: estás jodido. Incluso si terminas sin pagarles un centavo, acabas de invertir tu propio esfuerzo y todo ese tiempo calendario en el inodoro.
Bob Murphy
1
@snmcdonald Sí, el producto final se especificó claramente, con partes individuales especificadas por prioridad. Cuando llegaron a enviarnos lo que habían hecho 3 meses después, aproximadamente 2 semanas después del lanzamiento del producto, nos enviaron una versión masivamente incompleta que incluía algunas de las cosas que no necesitábamos junto con implementaciones muy pobres de la mayoría. importante (si estuvieran allí) En general muy costoso y decepcionante!
adamk
10

El director quiere reemplazar a algunos de sus desarrolladores locales con experiencia por personas en un país distante cuya experiencia no es competente para juzgar, que no tienen experiencia con el código y que no pueden ser supervisados ​​o asesorados directamente por nadie que sepa el código.

He pasado por eso dos veces. En ambos casos, las firmas extranjeras de bajo costo no lograron entregar a tiempo con la calidad adecuada. Cuando los desarrolladores locales escucharon que el trabajo se dirigía al extranjero, encontraron otros trabajos en lugar de esperar a ser despedidos. A medida que continuó la hemorragia de experiencia, los horarios se deslizaron, los errores críticos no se solucionaron, los clientes se enojaron y cambiaron a sus competidores, y finalmente ambas compañías se retiraron.

También hubo problemas extraños con la comunicación, las expectativas y la cultura. Por ejemplo, un equipo extranjero no estaba registrando mucho código o respondiendo rápidamente al correo electrónico. Resultó que el gerente de TI local obtuvo una bonificación por mantener bajos los costos, por lo que tenía toda la oficina con una conexión a Internet de baja velocidad. En otra ocasión, los probadores de control de calidad del tercer mundo ponen rutinariamente varios errores muy diferentes en el mismo informe de error; su gerente tenía miedo de quedarse sin números de errores.

Algunos equipos en lugares económicos están bien. Por lo que escuché, Red Hat parece tener un equipo muy competente en Beijing. Pero ya tenían años de experiencia con personas que trabajan en todo el mundo a través del teletrabajo antes de comenzar a hacerlo, y la gente de Beijing son empleados de Red Hat, no una empresa de outsourcing.

Bob Murphy
fuente
9

Sí, obtienes lo que pagas.

En mi experiencia, a menos que sus necesidades de mercado y desarrollo sean tan simples que pueden explicarse fácilmente por correo electrónico a cualquier desarrollador con una posible barrera del idioma, y ​​tan simple que incluso un desarrollador que no está realmente invertido en la compañía aún puede tener éxito al crear un producto de calidad, entonces sí, su producto sufrirá .

Trabajé en una empresa donde teníamos un gran equipo de desarrollo local, y nuestro producto sufrió simplemente porque el equipo de gestión invirtió más dinero y esfuerzo en las ventas. Debido a que se invirtió tanto esfuerzo en las ventas, parecía que lo estábamos haciendo "bien", pero significaba obtener ingresos que estábamos obligados a seguir invirtiendo dinero y recursos en el proceso de ventas.

Teníamos un equipo remoto pero los integramos completamente en la empresa y participaron al mismo nivel que nuestros equipos locales. Esa es la única forma en que puede funcionar . Yo era el líder del equipo local para ellos y volamos a trabajar con ellos regularmente. Les dimos camisas y chaquetas de la compañía al igual que los equipos locales. Después de todo lo considerado, tal vez nos ahorró un 20-30%. Si crea un sistema que intenta reducir los costos en más de eso, su producto sufrirá en consecuencia.

Nicole
fuente
3

Si está trabajando con un equipo de outsourcing de calidad, y la gerencia está dispuesta a comunicar y hacer cumplir los criterios de aceptación.

Entonces el costo será aproximadamente la misma tasa que un producto desarrollado internamente.

También puede obtener la misma calidad, si tiene suerte.

Puedo estar un poco parcial porque mi empresa tiene un personal de desarrollo interno y no ha subcontratado ningún desarrollo de productos. Sospecho que las experiencias que hemos tenido con socios de integración que han subcontratado el desarrollo tuvieron algo que ver con esa decisión.

JGKelly
fuente
3

En mi experiencia, externalizar un proyecto no es la mejor solución cuando se trata de obtener mejores márgenes.

En el trabajo teníamos algo así y, como otros también dijeron, terminamos rehaciendo el agujero y manteniendo lo que estaba en un servidor de producción. Conclusión sobre el asunto, costó el doble.

Mi opinión al respecto es que si está pensando en tratar de hacer una diferencia en los desarrollos de externalización de márgenes, podría estar desperdiciando su inversión. Si lo piensas bien, el éxito del producto es cuestión de que las cosas funcionen como se espera, por lo que si cambias el equipo de desarrollo, las cosas podrían ponerse feas.

Guiman
fuente
1

El software de código abierto bien planificado / hecho podría ser su respuesta, ya que puede ser altamente rentable y el mantenimiento se delega de alguna manera en una comunidad, pero no hay una receta para el éxito. El mejor consejo que puedo dar es recomendar varias charlas sobre lo que realmente es de código abierto y sus travesuras:

Y quizás también:

El tema del código abierto, en mi opinión, es construir algo de valor e interés no solo para usted sino para todos, el poder del código abierto reside en las comunidades.

Además, si su jefe / empresa es reacia a abrir el software, simplemente aísle los detalles de su propia lógica y conocimientos empresariales. Entonces, qué estarías haciendo:

  1. Incube un proyecto de código abierto con sus recursos.
  2. Crecer una comunidad
  3. ???
  4. Beneficio =)

Sí, lo digo en serio y "???" implica cualquier estrategia que desee seguir después de reunir suficiente interés. Con las herramientas actuales, como Github y Twitter, puede correr la voz más fácilmente, pero tenga en cuenta que su primera impresión debería ser lo suficientemente interesante.

Si en realidad no desea el código abierto ( que debe comprender como modelo de negocio antes de implementarlo, si desea tener éxito ), siempre puede lanzarlo como un servicio, para eso verifique el video Carsonified, pero eso implica un todo Muchas otras cosas para su empresa.

Al final, ser de código abierto o lanzarlo como un servicio son formas de hacer que el proyecto sea sostenible a largo plazo.

dukeofgaming
fuente
1

No recuerdo al autor de esta cita, pero da en el clavo.

"Los equipos débilmente acoplados que trabajan juntos en componentes estrechamente acoplados fallan. Inevitablemente "

Outsourcing = equipos poco acoplados.

Intentar reducir costos dividiendo geográficamente el trabajo en componentes interdependientes siempre falla.

Por otro lado, según mi experiencia, mover una parte completa de la cartera de software podría funcionar, lo que significa que puede desarrollarse en buena calidad con costos reducidos.

Maros Urbanec
fuente
¿Cómo responde esto a la pregunta que se hace?
mosquito
El cuerpo de la pregunta es realmente sobre outsourcing = equipos débilmente acoplados. Intentar reducir costos dividiendo geográficamente el trabajo en componentes interdependientes siempre falla. Por otro lado, según mi experiencia, mover una parte completa de la cartera de software podría funcionar, lo que significa que puede desarrollarse en buena calidad con costos reducidos.
Maros Urbanec
1
@MarosUrbanec: su comentario debe ser parte de su respuesta. La cita en sí misma no es realmente lo suficientemente fuerte como para ser independiente como respuesta.
1
@MarosUrbanec +1 Gran cita, agregué tu comentario al cuerpo de la respuesta para hacerlo más parecido a una respuesta.
Tulains Córdova