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).
Los participantes que integran un proyecto pueden clasificarse en cinco categorías (Figura 4), según Pressman (2005):
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.
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).
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):
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.