Diseño de Equipos de Desarrollo de Software en Escenarios Universitarios

Se sabe que existen factores humanos que influencian el comportamiento de un equipo de desarrollo durante la ejecución de un proyecto de software. Entre estos factores está la pro-actividad y el perfil psico-técnico de sus miembros, el grado de sociabilidad interpersonal del equipo, y el nivel de liderazgo del jefe de proyecto, entre otros. Los equipos cohesionados usualmente llevan a cabo procesos de software más coordinados y efectivos, que resultan en productos finales de mejor calidad y/o procesos de desarrollo que requieren un menor esfuerzo. La conformación de un buen equipo de desarrollo implica una inversión en tiempo y recursos económicos, que usualmente no puede ser asumida por varios tipos de organizaciones. Como por ejemplo, pequeñas empresas de software, que típicamente cuentan con recursos humanos y financieros limitados. En ese escenario los jefes de proyecto usan métodos y criterios ad-hoc para formar sus equipos; por ejemplo asignan al proyecto a la gente que está disponible. En consecuencia el nivel de cohesión de los equipos formados de esa manera es imprevisible. La detección tardía de incompatibilidades entre los miembros de un equipo de desarrollo puede generar resultados catastróficos para un proyecto. Esta problemática también está presente en escenarios universitarios, particularmente en carreras de Computación e Informática, donde el docente a cargo de un curso necesita armar equipos cohesivos con estudiantes que usualmente no conoce. Si los equipos están bien conformados, la probabilidad de éxito de un proyecto mejora considerablemente. En otro caso, el equipo tiene una alta probabilidad de fracaso. Si consideramos que el desarrollo de software es una actividad que se aprende en gran medida haciéndola, lograr experiencias con resultados positivos ayuda considerablemente a la formación de los estudiantes. En este escenario la conformación de equipos de desarrollo cohesivos juega un papel decisivo. Este trabajo de tesis propone una heurística para diseñar equipos cohesivos de desarrollo de software en escenarios universitarios. Para poder entregar un resultado, dicha heurística utiliza como base los perfiles psicológico, social y técnico de las personas, más un conjunto de parámetros (como por ejemplo, el tamaño de los equipos a conformar). Esta propuesta se validó en forma empírica en equipos de desarrollo de los cursos CC51A: Ingeniería de Software y CC61A: Proyecto de Software, impartidos por el Departamento de Ciencias de la Computación de la Universidad de Chile. En ambos cursos se realizan proyectos específicos, utilizando equipos de entre 5 y 7 estudiantes. Si bien se requiere más experimentación para poder sacar conclusiones definitivas, los resultados obtenidos hasta el momento indican claramente que los equipos diseñados usando heurística, muestran un nivel de comunicación y coordinación superior a aquellos conformados en forma aleatoria. Además, la calidad del producto final obtenido por estos equipos siguió el mismo patrón de comportamiento. Como productos de este trabajo de tesis se obtuvo: (1) un instrumento de diagnóstico que permite identificar el perfil socio-técnico de los desarrolladores, (2) una heurística que permite diseñar equipos cohesivos de desarrollo de software en base al perfil socio-técnico de los potenciales miembros, y (3) una herramienta de software que apoya los procesos de diagnóstico de candidatos y armado de equipos cohesivos en base al diagnóstico anterior. A futuro se espera aplicar esta propuesta para conformar de equipos de desarrollo en pequeñas empresas de software.