Un proyecto de desarrollo distribuido es un proyecto de investigación y desarrollo (I+D) que se lleva a cabo en varios lugares o sitios de trabajo de la empresa. Es una forma de I+D en la que los miembros del proyecto pueden no verse 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. [1] El desarrollo distribuido fue en gran medida iniciado por la comunidad de software de código abierto . [2]
Se diferencia de la subcontratación porque todas las organizaciones trabajan juntas en igualdad de condiciones, en lugar de que una organización subcontrate el trabajo a otra. Es similar a un equipo virtual , pero con un componente de investigación.
Los desarrolladores están distribuidos en varias ubicaciones y trabajan en el mismo proyecto o producto. Los motivos de las distribuciones no importan, pueden incluir la disponibilidad de recursos en diferentes ubicaciones, la proximidad a determinados 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 que se encuentran en el mismo edificio de oficinas. Esto generalmente se logra mediante el uso de la colaboración basada en Internet. Las herramientas de comunicación que se utilizan comúnmente incluyen GitHub y wikis . [2]
El desarrollo distribuido es una de las formas más elevadas de colaboración en cualquier entorno de investigación y desarrollo científico o de ingeniería . Normalmente no supone un obstáculo para el éxito empresarial, pero puede ser desde una carga hasta algo difícil de conseguir, ya que requiere una gran capacidad de gestión, un entorno de comunicación excelente, un entorno políticamente libre, una infraestructura muy eficiente, un organigrama bien desarrollado y una interacción frecuente. Lo más importante es que la dirección debe creer en la configuración y poner en marcha medidas para recompensar el cumplimiento, así como ser muy estricta con aquellos que no cumplen. Según el empresario Mitch Kapor , muchas empresas están llevando a cabo el desarrollo distribuido con éxito. [1]
El desarrollo distribuido tiene varias desventajas. 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 resultar muy difíciles de desarrollar mediante el desarrollo distribuido. Por estos motivos, muchas grandes empresas, incluida Facebook, exigen que todos los empleados trabajen en la misma oficina.
A pesar de esto, el desarrollo distribuido tiene varias ventajas para una empresa. Permite a las empresas contratar una fuerza laboral más diversa, incluidos los empleados que desean trabajar desde casa o que no desean trasladarse largas distancias. Permite a las empresas contratar trabajadores de calidad a un costo menor, en contraposición a los salarios muy altos de Silicon Valley. El desarrollo distribuido suele ser más adecuado para el software modular, donde las diferentes partes del programa se pueden desarrollar por separado. [2]
Hay tres factores principales de éxito para un proyecto de desarrollo distribuido:
Al realizar estas tres acciones, se pueden obtener ventajas que van más allá de la pura 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.
La ingeniería de software distribuida global (GDSE) es la aplicación empresarial para un proceso de desarrollo distribuido. Las empresas pueden trabajar en un entorno distribuido debido a que los equipos trabajan en diferentes lugares o debido a la subcontratación o deslocalización . [4] Un enfoque popular para la ingeniería de software distribuida es el desarrollo de software ágil distribuido .
En el pasado, casi todo el desarrollo de software se llevaba a cabo en 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. [5] Con el paso de los años, las empresas comenzaron a crecer en tamaño y complejidad, lo que las obligó a desarrollar software a nivel mundial. [6] 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 trajo consigo más competencia. [6]
Como se explicó anteriormente en Factores de éxito, desarrollar software en un entorno distribuido trae varias ventajas, lo que también es un factor para las empresas que comienzan a desarrollar software a nivel global, como: [7]
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 centra en ayudar a las empresas a tener canales de comunicación confiables sin malentendidos. [8]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )