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 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 pionero en gran medida por la comunidad de software de código abierto . [2]
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 están distribuidos en múltiples 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 administració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 . [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 . 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 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 estricto con aquellos que no cumplen. Según el empresario Mitch Kapor , muchas empresas están realizando con éxito el desarrollo distribuido. [1]
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. [2]
Hay tres factores principales de éxito para un proyecto de desarrollo distribuido:
- Seleccione y / o reclute personas buenas, fuertes y altamente capacitadas. [1] [3]
- 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. [3]
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 . [4] 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. [5] A lo largo 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 más competencia. [6]
Como se explicó anteriormente sobre los factores de éxito , el desarrollo de 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, como: [7]
- Menores costos de desarrollo debido, por ejemplo, a salarios más bajos en otras regiones del mundo.
- Eficacia 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 malentendidos. [8]
Referencias
- ^ a b c Mitch Kapor , How to Build a Successful Company , conferencia para estudiantes de emprendimiento de la Universidad de Stanford , 2008-01-16.
- ↑ a b c Asay, Matt (24 de junio de 2014). "Desarrollo distribuido: todavía lo está haciendo mal" . leer y escribir . Consultado el 28 de enero de 2015 .
- ^ a b c Daniel Ek , A Playlist for Entrepreneurs , conferencia para estudiantes de emprendimiento de la Universidad de Stanford , 2012-05-16.
- ^ Richardson, Ita; Casey, Valentine; Burton, John; 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–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 de 2007 ACM SIGMIS CPR sobre el consorcio de doctorado de personal informático y la conferencia de investigación sobre la fuerza de trabajo global de tecnología de la información - SIGMIS-CPR '07 . pag. 28. doi : 10.1145 / 1235000.1235007 . ISBN 9781595936417.
- ^ a b Eykelhoff, Maarten (2007). "Comunicación en el desarrollo de software global" (PDF) . Cite journal requiere
|journal=
( ayuda ) - ^ Conchúir, Eoin Ó; \ AAgerfalk, Pär J .; Olsson, Helena H .; Fitzgerald, Brian (agosto de 2009). "Desarrollo de software global: ¿Dónde están los beneficios?". Comun. ACM . 52 (8): 127-131. doi : 10.1145 / 1536616.1536648 . ISSN 0001-0782 .
- ^ tutkimuskeskus, Valtion teknillinen (2012). Ingeniería de software global: desafíos y marco de soluciones . ISBN 9789513874599. OCLC 820775844 .