Participantes del proyecto de software

El recurso más importante de una organización que desarrolla software es su personal. Los conocimientos y habilidades del personal podrían marcar la diferencia entre el éxito o fracaso de un proyecto. Cuando los desarrolladores de software trabajan en un dominio de problema particular, con el tiempo, pueden ayudar a la toma de decisiones administrativas respecto de la adaptación de sistemas existentes a nuevas plataformas tecnológicas, facilidad de implementar cambios a sistemas existentes por cambios en los requisitos. Con base en su experiencia, es más fácil para los expertos tanto implementar nuevos sistemas como proporcionar mantenimiento a los sistemas existentes. Además, ayudan al nuevo personal a familiarizarse con los sistemas de software existentes.

En el proyecto de desarrollo de software se debe tomar en cuenta las necesidades de información y restricciones sobre el desarrollo del software que proporcionan distintos participantes. Un participantes (stakeholder) se define como “individuo u organización que tiene un derecho, beneficio, demanda o interés en el sistema o que posea características que satisfagan sus necesidades y expectativas” (ISO, 2008). Mientras que un usuario se define como “el individuo o grupo que se beneficia de un sistema durante su utilización” (ISO, 2008) y cliente como “organización o persona que recibe un producto o servicio” (ISO, 2008).

Categorías de participantes en un proyecto de desarrollo de software
Figura 4. Categorías de participantes en un proyecto de software.

Los participantes que integran un proyecto pueden clasificarse en cinco categorías (Figura 4), según Pressman (2005):

  1. Los gestores ejecutivos, son personas con visión global de las metas e intereses de la organización que influencian las decisiones respecto de los resultados esperados del proyecto, recursos disponibles, así como enfoques de desarrollo por aplicarse.
  2. Los gestores técnicos del proyecto tienen la responsabilidad de lograr los resultados esperados en el proyecto mediante la motivación del personal y la planificación de actividades apropiadas, su seguimiento y control durante la ejecución del proyecto.
  3. Los profesionales, tienen la responsabilidad de realizar las tareas de ingeniería del proyecto, como el análisis, diseño, codificación y pruebas del sistema de software.
  4. Los clientes participan en la definición de requisitos para el desarrollo del software y negocian los factores críticos de éxito del proyecto.
  5. Los usuarios finales son las personas que interactúan con el sistema una vez que éste ha sido liberado.

Líderes de equipo

Para que un equipo logre los objetivos del proyecto eficazmente, debe estar organizado de tal forma que se maximice la participación de cada uno de los miembros del equipo de desarrollo de software. Para lograrlo, se requiere de un líder del equipo cuya responsabilidad es motivar a los miembros del equipo y dirigir su esfuerzo para que logren las metas del proyecto con los recursos disponibles. Por otra parte, algunos proyectos tienen líderes por accidente. Quien dirige el proyecto es una persona con vocación técnica, que carece de la formación académica y de las habilidades de interacción social que podrían motivar a un equipo de desarrolladores de software.

Para que un proyecto sea exitoso, el líder debe mostrar ciertas habilidades, como las que establece el modelo MOI (Motivación, Organización e Ideas) (Weinberg, 1986):

Motivación. Influenciar al personal para que alcance niveles de producción máximos.

Organización. Capacidad de ajustar los procesos existentes para desarrollar el producto final.

Ideas. Promover una atmósfera creativa para que las personas mejoren sus contribuciones al proyecto.

El modelo MOI (Figura 5) aplica una gestión basada en la resolución de problemas, tanto en aspectos técnicos del proyecto como en las actividades de coordinación y comunicación del equipo.

Modelo Motivacion, Organización e Ideas para liderar un equipo
Figura 5. Modelo de habilidades del líder de equipo.

En el contexto de equipos ágiles, se requiere que el equipo sea altamente productivo (Fatema y Sakib, 2018). Sin embargo, es difícil conseguir a un experto en este campo (Fatema y Sakib, 2018). Los factores que más influencian, según un estudio en un país asiático, son la comunicación, coordinación, adaptabilidad, realimentación, liderazgo y autoorganización (Fatema y Sakib, 2018).

Estructura del equipo

Cada organización tiene su forma particular de gestionar el personal que trabajará en un equipo de desarrollo de software. Cuando se asigna un grupo de personas a un proyecto, la responsabilidad de organizar y coordinar su trabajo recae sobre el gestor del proyecto. Existen distiontos factores que deberían considerarse cuando se planifica la estructura de los equipos de ingeniería de software (Pressman, 2005):

  1. Complejidad del problema.
  2. Tamaño del software resultante.
  3. La duración del proyecto.
  4. Grado en que el sistema puede separarse en componentes.
  5. Calidad requerida.
  6. Flexibilidad para cambiar la fecha de entrega.
  7. Grado de comunicación requerida en el equipo.

Por otra parte, una vez que se deciden cuántas personas conformarán el equipo, y cuáles son las habilidades y capacidades requeridas, el equipo debe determinar la gestión de autoridad. Algunos equipos tendrán una jerarquía tradicional de autoridad, en donde el jefe del proyecto asigna el trabajo a los desarrolladores de software. Los desarrolladores de software informan sobre los resultados obtenidos al jefe del proyecto. En otros proyectos, se deja la estructura del equipo libre y cada uno de los miembros del equipo contribuya al desarrollo del producto.