Un proyecto de desarrollo distribuido es un proyecto de investigación y desarrollo (I+D) que se lleva a cabo en múltiples centros de trabajo o ubicaciones 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 realiza mediante correo electrónico , internet y otras formas de comunicación rápida a larga distancia. [ 1 ] El desarrollo distribuido fue impulsado en gran medida 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 subcontrate el trabajo a otra. Es similar a un equipo virtual , pero con un componente de investigación.
Características del desarrollo distribuido
Los desarrolladores se encuentran distribuidos en múltiples ubicaciones y trabajan en el mismo proyecto o producto. Los motivos de esta distribución no son relevantes; pueden incluir la disponibilidad de recursos en diferentes lugares, la proximidad a ciertos clústeres, la cercanía a los clientes o ventajas en cuanto a costes.
Aunque las personas se especialicen en un entorno de desarrollo distribuido, colaboran activamente para alcanzar el objetivo común. Debe haber un líder de programa o gerente de proyecto en algún punto del equipo de gestión de proyectos. En un entorno distribuido, los miembros del proyecto comparten ideas, información y recursos. Un requisito fundamental es que toda la comunicación debe estar abierta a todos los involucrados y no limitarse a quienes se encuentran en el mismo edificio de oficinas. Esto generalmente se logra mediante la colaboración basada en internet. Las herramientas de comunicación más utilizadas incluyen GitHub y wikis . [ 2 ]
El desarrollo distribuido es una de las formas más avanzadas de colaboración en cualquier entorno de I+D científica o de ingeniería . Si bien no suele ser un obstáculo para el éxito empresarial, su implementación puede variar desde una carga hasta una dificultad considerable, ya que requiere una alta capacidad de gestión, un excelente entorno de comunicación, un ambiente políticamente libre, una infraestructura altamente eficiente, un organigrama bien estructurado e interacción frecuente. Lo más importante es que la dirección debe creer en el sistema y establecer medidas para recompensar el cumplimiento, así como ser muy estricta con quienes no lo cumplan. Según el empresario Mitch Kapor , muchas empresas están implementando con éxito el desarrollo distribuido. [ 1 ]
Factores de éxito
El desarrollo distribuido presenta varias desventajas. Diversos estudios han demostrado que los empleados que trabajan en la misma oficina coordinan mejor su trabajo y son más productivos. Asimismo, el desarrollo de aplicaciones de software altamente integradas mediante el desarrollo distribuido puede resultar muy complejo. Por estas razones, muchas grandes empresas, como Facebook, exigen que todos sus empleados trabajen en la misma oficina.
A pesar de esto, el desarrollo distribuido ofrece varias ventajas para una empresa. Permite a las compañías contratar una fuerza laboral más diversa, incluyendo empleados que desean trabajar desde casa o no quieren desplazarse largas distancias. Además, permite contratar trabajadores cualificados a un menor coste, en comparación con los elevados salarios de Silicon Valley. El desarrollo distribuido suele ser más adecuado para software modular, donde diferentes partes del programa pueden desarrollarse por separado. [ 2 ]
Existen tres factores clave para el éxito de un proyecto de desarrollo distribuido:
- Seleccionar y/o reclutar personas buenas, fuertes y altamente cualificadas. [ 1 ] [ 3 ]
- Invierta algo de dinero en reuniones presenciales, especialmente al comienzo de cada proyecto importante. [ 3 ]
- Construir un diseño organizacional que apoye el trabajo en un desarrollo distribuido, incluyendo los sistemas de incentivos adecuados. [ 3 ]
Al llevar a cabo estas tres acciones, se pueden obtener ventajas que van más allá de la mera subcontratación o deslocalización , a saber, empleados mucho más motivados en todas las partes de la red distribuida, mayor retención y, sin duda, se obtienen beneficios de la diversidad de la red.
Aplicaciones
Ingeniería de software distribuida globalmente
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 la 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 realizaba mediante equipos en los que todos los miembros (líder del equipo, diseñadores, desarrolladores y 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 global. [ 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 generó mayor competencia. [ 6 ]
Como se explicó anteriormente en Factores de éxito , desarrollar software en un entorno distribuido trae consigo varias ventajas, lo cual también es un factor para las empresas que comienzan a desarrollar software a nivel mundial, tales como: [ 7 ]
- Menores costos de desarrollo debido, por ejemplo, a salarios más bajos en otras regiones del mundo.
- Eficiencia del tiempo, aumento del número de horas de trabajo diarias
- Acceso a una mayor reserva de mano de obra cualificada.
- Mayor proximidad al mercado y a los clientes de la 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 centra en ayudar a las empresas a contar con canales de comunicación fiables y sin malentendidos. [ 8 ]
Véase también
Referencias
- 1 2 3 Mitch Kapor , Cómo construir una empresa exitosa , conferencia paraestudiantes de emprendimiento de la Universidad de Stanford , 16 de enero de 2008.
- 1 2 3 Asay, Matt (24 de junio de 2014). "Desarrollo distribuido: Todavía lo estás haciendo mal" . readwrite . Archivado del original el 25 de junio de 2014. Recuperado el 28 de enero de 2015 .
- 1 2 3 Daniel Ek , Una lista de reproducción para emprendedores , conferencia paraestudiantes de emprendimiento de la Universidad de Stanford , 16 de mayo de 2012.
- ^ Richardson, Ita; Casey, Valentín; Burton, Juan; McCaffery, Fergal (2010). Mistrík, Ivan; Grundy, John; Hoek, André; Whitehead, Jim (eds.). Ingeniería de software colaborativa . Springer Berlín Heidelberg. págs. 35 a 56. doi : 10.1007/978-3-642-10294-3_2 . ISBN 9783642102936.
- ↑ Thissen, M. Rita; Page, Jean M.; Bharathi, Madhavi C.; Austin, Toyia L. (2007). Actas de la conferencia ACM SIGMIS CPR de 2007 sobre el consorcio doctoral de personal informático de 2007 y la conferencia de investigación sobre la fuerza laboral global de tecnología de la información - SIGMIS-CPR '07 . pág. 28. doi : 10.1145/1235000.1235007 . ISBN 9781595936417. S2CID 2741073 .
- 1 2 Eykelhoff, Maarten (2007). "Comunicación en el desarrollo global de software" (PDF) .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Conchúir, EoinÓ; \AAgerfalk, Pär J.; Olsson, Helena H.; Fitzgerald, Brian (agosto de 2009). "Desarrollo global de software: ¿dónde están los beneficios?". Comunitario. ACM . 52 (8): 127– 131. doi : 10.1145/1536616.1536648 . ISSN 0001-0782 . S2CID 663043 .
- ^ tutkimuskeskus, Valtion teknillinen (2012). Ingeniería de software global : marco de desafíos y soluciones . ISBN 9789513874599OCLC 820775844
- Teoría organizacional
- gestión de tecnologías de la información