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 los métodos actualmente en boga dentro de la industria del desarrollo de software donde varias personas trabajan simultáneamente en la misma actividad; en estos sistemas, los programadores a menudo se agrupan en parejas en la misma estación de trabajo de computadora , uno observa al otro trabajando en el software y alternan roles en intervalos de tiempo.

Métodos tradicionales de gestión de equipos

El desarrollo de software tradicional casi siempre ha implicado que varios programadores trabajen en partes separadas de un sistema informático para cualquier proyecto de alcance y escala significativos, un método de división del trabajo . Evidentemente, no es razonable imaginar que un solo programador pueda completar adecuadamente todo el trabajo requerido para un sistema complejo trabajando completamente por su cuenta dentro de un plazo viable; y a medida que los proyectos de desarrollo se vuelven más complejos, la experiencia especializada adquiere una importancia primordial en aspectos como el análisis de sistemas , el control de calidad y los desafíos técnicos planteados por los componentes individuales. Inicialmente, esto tendía a ser un proceso informal, pero con el auge del desarrollo de software comercial como una industria viable, se hizo necesario un enfoque más industrial y sistemático.

Las metodologías de sistemas orientadas al papel, originalmente diseñadas para llevar a cabo proyectos gubernamentales, como el método de análisis y diseño de sistemas estructurados (SSADM), asignaban a personas individuales la realización de 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 separaba claramente cada una de las etapas individuales del "ciclo de vida" por las que avanzaba un proyecto de desarrollo de sistemas. El "rastro de papel" resultante para un proyecto de desarrollo de sistemas podía tardar tanto en construirse que, a menudo, partes de la documentación de 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

Estos métodos antiguos presentaban dificultades, como costos que se disparaban 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 grupo (también conocida como programación en conjunto ), junto con nuevas estructuras de ciclo de vida de sistemas como la espiral de Boehm . La especificación de estos nuevos enfoques comenzó a mediados de la década de 1980 y continúa en la actualidad. Muchas de estas estrategias implican que varios programadores trabajen en colaboración en el mismo fragmento de código fuente en lugar de ser responsables individualmente de tareas individuales. Por ejemplo, en la "programación en pares", la responsabilidad del producto resultante se comparte equitativamente entre dos programadores que trabajan juntos en su subtarea asignada. Los beneficios de este enfoque incluyen las deficiencias en el conocimiento de un programador que se compensan con la capacidad en áreas específicas del otro programador; además, se cree que la responsabilidad compartida aumenta los incentivos para cumplir con los plazos del proyecto y los objetivos de calidad.

Esta técnica se utiliza con frecuencia en las metodologías de programación más nuevas que se centran en las 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 y 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 de estos son C++ y Java . Esto se presta bien a la división de proyectos de programación en subequipos, aunque todavía se encuentran problemas a menudo en la integración del producto resultante después de la finalización de cada subtarea.

Programación de la mafia

Sesión de programación de la mafia francesa

La programación en grupo (a veces llamada informalmente mobbing , programación en conjunto o programación en grupo [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 , en la que dos personas se sientan en la misma computadora y colaboran en el mismo código al mismo tiempo. Con la programación en grupo, la colaboración se extiende a todos los miembros del equipo, mientras se sigue utilizando una sola computadora para escribir el código e ingresarlo en la base de código. [2]

El concepto básico de la programación en grupo 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: Todo el equipo, todo el gas

Se basa en los principios de la fabricación eficiente , la programación extrema y el desarrollo de software eficiente . El uso temprano de la frase "programación en masa" se hizo en Perspectivas de programación extrema . [4]

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

Véase también

Referencias

  1. ^ Edward Sykes (Heretsch); Rajpal Singh (2012). "Charlas relámpago de ACCU 2012: Programación de posse" (PDF) . Charlas relámpago de Accu2012 .
  2. ^ Zuill, Woody (2014). "Programación en grupo: un enfoque de equipo completo". Informes de experiencias de la conferencia Agile2014 : 11.
  3. ^ Hammarberg, Marcus. "Programación en grupo: equipo completo, a toda máquina". CodeBetter . CodeBetter . Consultado el 9 de septiembre de 2014 .
  4. ^ Moses Hohman; Andrew Slocum (2002). "Capítulo 28. Programación en masa y la transición a XP". Perspectivas de programación extrema . 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 .
  • Programación Mob
Retrieved from "https://en.wikipedia.org/w/index.php?title=Team_programming&oldid=1220225442"