stringtranslate.com

Programación en equipo

En ingeniería de software , la programación en equipo es una estrategia de gestión de proyectos para coordinar la distribución de tareas en proyectos de desarrollo de software informático , que implica la asignación de dos o más programadores informáticos para trabajar en colaboración en una subtarea individual dentro de un proyecto de programación más grande. En general, la forma en que se utiliza este término hoy en día se refiere a métodos actualmente de moda dentro de la industria del desarrollo de software donde varias personas trabajan simultáneamente en la misma actividad; En estos sistemas, los programadores suelen agruparse en parejas en la misma estación de trabajo informática , uno observa al otro trabajando en el software y alternando roles en intervalos de tiempo.

Métodos tradicionales de gestión de equipos.

El desarrollo de software tradicional casi siempre ha involucrado a varios programadores que trabajan en partes separadas de un sistema informático para cualquier proyecto de alcance y escala significativos: un método de división del trabajo . Claramente, no es razonable imaginar que un solo programador pueda completar adecuadamente todo el trabajo requerido para un sistema complejo que funcione completamente por sí solo en un plazo de tiempo viable; y a medida que los proyectos de desarrollo se vuelven más complejos, la experiencia especializada se vuelve de suma importancia en aspectos como el análisis de sistemas , el aseguramiento de la calidad y los desafíos técnicos que plantean los componentes individuales. Inicialmente, esto tendía a ser un proceso informal, pero con el surgimiento del desarrollo de software comercial como industria viable, se hizo necesario un enfoque más industrial y sistemático.

Las metodologías de sistemas basadas en papel diseñadas originalmente para llevar a cabo proyectos gubernamentales, como el Método de Diseño y Análisis de Sistemas Estructurados (SSADM), asignaban personas individuales para llevar a cabo tareas individuales y especificaban que el papel de los diseñadores estaba claramente separado del de los programadores en El modelo de desarrollo de software en cascada . Esta metodología también separó claramente cada una de las etapas individuales del "ciclo de vida" a través de las cuales avanzó un proyecto de desarrollo de sistemas. El "rastro documental" resultante para un proyecto de desarrollo de sistemas podría tardar tanto en construirse que a menudo partes de la documentación del análisis (o a veces su totalidad) estaban desactualizadas en el momento del desarrollo real, lo que las hacía peor que inútiles.

Tendencias modernas: varios programadores para una subtarea

Se experimentaron dificultades con estos métodos más antiguos, como costos que se salían de control a medida que los sistemas crecían y cronogramas que no cumplían con los objetivos de tiempo de comercialización. Estos problemas dieron lugar a técnicas como la programación en pares , la programación en masa (también conocida como programación en conjunto ), junto con nuevas estructuras del ciclo de vida de los sistemas, como la espiral de Boehm . La especificación de estos nuevos enfoques comenzó a mediados de los años 1980 y continúa en la actualidad. Muchas de estas estrategias implican que varios programadores trabajen en colaboración en el mismo código fuente en lugar de ser responsables individualmente de tareas individuales. Por ejemplo, en la "programación en pareja", la responsabilidad del producto resultante se comparte equitativamente entre dos programadores que trabajan juntos en la subtarea asignada. Los beneficios de este enfoque incluyen que las deficiencias en el conocimiento de un programador sean compensadas por la habilidad en áreas específicas del otro programador; Además, se cree que la responsabilidad compartida aumenta los incentivos para cumplir los plazos y los objetivos de calidad del proyecto.

Esta técnica se utiliza con frecuencia en metodologías de programación más nuevas que se centran en técnicas de programación orientada a objetos , como el Proceso Unificado Racional y la Programación Extrema (acrónimo "XP"), a menudo en combinación con métodos de documentación de diseño como el Lenguaje de Modelado Unificado (UML). ). En los lenguajes de programación orientados a objetos, la funcionalidad del software forma unidades modulares discretas (denominadas clases para los elementos funcionales y paquetes para constelaciones de clases interconectadas que llevan a cabo una función particular); los dos más conocidos son C++ y Java . Esto se presta bien para la división de proyectos de programación en subequipos, aunque a menudo todavía se encuentran problemas al integrar el producto resultante una vez finalizada cada subtarea.

programación de la mafia

Sesión de programación de la mafia francesa

La programación Mob (a veces llamada informalmente mobbing , programación en conjunto o programación posse [1] ) es un enfoque de desarrollo de software en el que todo el equipo trabaja en lo mismo, al mismo tiempo, en el mismo espacio y en la misma computadora. Esto es similar a la programación en pareja, donde dos personas se sientan frente a la misma computadora y colaboran en el mismo código al mismo tiempo. Con la programación mafiosa, la colaboración se extiende a todos los miembros del equipo, sin dejar de utilizar una sola computadora para escribir el código e ingresarlo en la base del código. [2]

El concepto básico de la programación de mob es simple: todo el equipo trabaja en equipo en una tarea a la vez. Es decir: un equipo – un teclado (activo) – una pantalla (proyector por supuesto). [3]

—  Marcus Hammarberg, programación Mob – Equipo completo, A toda velocidad

Se basa en principios de fabricación ajustada , programación extrema y desarrollo de software ajustado . El uso temprano de la frase "programación mafiosa" se hizo en Extreme Programming Perspectives . [4]

Además de la codificación de software, un equipo de programación mafioso puede trabajar en conjunto para abordar otras tareas típicas de desarrollo de software. Algunos ejemplos incluyen: definir historias o requisitos de usuarios, diseñar, probar , implementar software y trabajar con expertos en la materia. Casi todo el trabajo se realiza en reuniones de trabajo o talleres, donde todas las personas involucradas en la creación del software se consideran miembros del equipo, incluidos el cliente y los expertos del negocio. [5] La programación Mob también funciona para equipos distribuidos en el mismo espacio virtual utilizando tecnología para compartir pantalla. [6]

Ver también

Referencias

  1. ^ Edward Sykes (Heretsch); Rajpal Singh (2012). "Charlas iluminadoras ACCU 2012: Programación Posse" (PDF) . Accu2012 Charlas relámpago .
  2. ^ Zuill, Woody (2014). "Programación Mob: un enfoque de equipo completo". Informes de experiencia de la conferencia Agile2014 : 11.
  3. ^ Hammarberg, Marco. "Programación de la mafia: equipo completo, acelerador a fondo". Código mejor . Código mejor . Consultado el 9 de septiembre de 2014 .
  4. ^ Moisés Hohman; Andrés Slocum (2002). "Capítulo 28. Programación Mob y la transición a XP". Perspectivas extremas de programación . Addison-Wesley.
  5. ^ Nigrí, Julien. "Programación Le Mob: Presentación". Soat (en francés). Soat . Consultado el 9 de septiembre de 2014 .
  6. ^ Harrer, Simón; Cristo, Jochen; Huber, Martín. "Programación Mob remota" . Consultado el 29 de abril de 2019 .

enlaces externos