Desarrollo distribuido - Distributed development

Un proyecto de desarrollo distribuido es un proyecto de investigación y desarrollo (I + D) que se realiza en varios lugares de trabajo o ubicaciones comerciales. Es una forma de I + D en la que es posible que los miembros del proyecto no se vean cara a cara, pero todos trabajan en colaboración para lograr el resultado del proyecto. A menudo, esto se hace a través del correo electrónico , Internet y otras formas de comunicación rápida a larga distancia. El desarrollo distribuido fue pionero en gran medida por la comunidad de software de código abierto .

Es diferente de la subcontratación porque todas las organizaciones están trabajando juntas en el mismo nivel, en lugar de que una organización subcontrate el trabajo a otra. Es similar a un equipo virtual pero con un elemento de investigación.

Características del desarrollo distribuido

Los desarrolladores se distribuyen en varias ubicaciones y trabajan en el mismo proyecto o producto. Las razones de las distribuciones no importan, pueden incluir la disponibilidad de recursos en diferentes ubicaciones, la cercanía a ciertos clústeres, la proximidad a los clientes o las ventajas de costos.

Las personas pueden especializarse en un entorno de desarrollo distribuido, pero colaboran activamente para lograr el objetivo común. Debe haber un líder de programa o gerente de proyecto en algún lugar de la mezcla de gestión de proyectos. En un entorno distribuido, los miembros del proyecto comparten ideas, información y recursos. Un requisito clave es que toda la comunicación debe estar abierta a todos los involucrados, y no limitarse a aquellos en el mismo edificio de oficinas. Por lo general, esto se logra mediante la colaboración basada en Internet. Las herramientas de comunicación comúnmente utilizadas incluyen GitHub y wikis .

El desarrollo distribuido es una de las formas más elevadas de colaboración en cualquier entorno de I + D científico o de ingeniería . Por lo general, no es una barrera para el éxito empresarial, pero puede variar desde ser una carga hasta difícil de lograr, ya que requiere altas capacidades de gestión, un excelente entorno de comunicación, un entorno políticamente libre, una infraestructura altamente eficiente, un pozo. organigrama desarrollado e interacción frecuente. Lo que es más importante, la dirección debe creer en la configuración y poner en marcha medidas para recompensar el cumplimiento, así como ser muy estricto con aquellos que no cumplen. Según el empresario Mitch Kapor , muchas empresas están realizando con éxito el desarrollo distribuido.

Factores de éxito

Hay varias desventajas del desarrollo distribuido. Los estudios han demostrado que los empleados que trabajan todos en la misma oficina coordinan mejor su trabajo y son más productivos. De manera similar, las aplicaciones de software que están estrechamente integradas pueden ser muy difíciles de desarrollar mediante el desarrollo distribuido. Por estas razones, muchas grandes empresas, incluida Facebook, requieren que todos los empleados trabajen en la misma oficina.

A pesar de esto, el desarrollo distribuido de una empresa tiene varias ventajas. Permite a las empresas contratar una fuerza laboral más diversa, incluidos los empleados que desean trabajar en casa o no desean moverse largas distancias. Permite a las empresas contratar trabajadores de calidad a un costo menor, a diferencia de los salarios muy altos en Silicon Valley. El desarrollo distribuido suele ser más adecuado para software modular, donde diferentes partes del programa se pueden desarrollar por separado.

Hay tres factores principales de éxito para un proyecto de desarrollo distribuido:

  1. Seleccione y / o reclute personas buenas, fuertes y altamente capacitadas.
  2. Gaste algo de dinero en reuniones cara a cara, especialmente al comienzo de cada proyecto importante.
  3. Cree un diseño organizacional que respalde el trabajo en un desarrollo distribuido, incluidos los sistemas de incentivos adecuados.

Al realizar estas tres acciones, se pueden obtener ventajas más allá de la mera subcontratación o deslocalización , es decir, empleados mucho más motivados en todas las partes de la red distribuida, mayor retención y, sin duda, uno se beneficia de la diversidad de la red.

Aplicaciones

Ingeniería de software distribuida globalmente

La ingeniería de software distribuida global es la aplicación empresarial para un proceso de desarrollo distribuido. Las empresas pueden trabajar en un entorno distribuido debido a equipos que trabajan en diferentes lugares, o debido a Outsourcing o Offshoring . Un enfoque popular de la ingeniería de software distribuido es el desarrollo de software ágil distribuido .

En el pasado, casi todo el desarrollo de software lo realizaban equipos en los que todos los miembros: el líder del equipo, los diseñadores, los desarrolladores y los evaluadores trabajaban juntos en estrecha proximidad física. Con los años, las empresas comenzaron a crecer en tamaño y complejidad, lo que las obligó a desarrollar software a nivel mundial. Además, otras fuerzas también tuvieron su impacto, por ejemplo, las fuerzas económicas y la globalización comenzaron a convertir los mercados nacionales en mercados globales, lo que también generó más competencia.

Como se explicó anteriormente en Factores de éxito , desarrollar software en un entorno distribuido trae varias ventajas, que también es un factor para las empresas que comienzan a desarrollar software a nivel mundial, tales como:

  • Menores costos de desarrollo debido, por ejemplo, a salarios más bajos en otras regiones del mundo.
  • Efectividad en el tiempo, aumentar el número de horas de trabajo diarias
  • Acceso a una mano de obra calificada más grande
  • Mayor proximidad al mercado y a los clientes de una empresa

La ingeniería de software distribuida globalmente presenta muchos desafíos en términos de comunicación. El área de estudio de la Comunicación en el Desarrollo de Software Distribuido aborda estos desafíos y se enfoca en ayudar a las empresas a tener canales de comunicación confiables sin malos entendidos.

Referencias