Gestión de proyectos de software: Equipos, procesos y coordinación
Enviado por Programa Chuletas y clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 7,09 KB
Gestión de Proyectos de Software
Personal
La necesidad de contar con personal para el desarrollo de software altamente preparado y motivado se viene discutiendo desde los años 60. De hecho, el «factor humano» es tan importante que el Instituto de Ingeniería del Software ha desarrollado un Modelo de madurez de la capacidad de gestión de personal «para aumentar la preparación de organizaciones de software para llevar a cabo las cada vez más complicadas aplicaciones, ayudando a atraer, aumentar, motivar, desplegar y retener el talento necesario para mejorar su capacidad de desarrollo de software.
Producto
Antes de poder planificar un proyecto, se deben establecer los objetivos y el ámbito del producto; se deben considerar soluciones alternativas e identificar las dificultades técnicas y de gestión.
Proceso
Un proceso de software proporciona la estructura desde la que se puede establecer un detallado plan para el desarrollo del software.
Proyecto
Dirigimos los proyectos de software planificados y controlados por una razón principal. Y todavía seguimos esforzándonos.
Participantes
- Gestores superiores: Definen los aspectos de negocios que a menudo tienen una significativa influencia en el proyecto.
- Gestores (técnicos del proyecto): Planifican, motivan, organizan y controlan a los profesionales que realizan el trabajo de software.
- Profesionales: Proporcionan las capacidades técnicas necesarias para la ingeniería de un producto o aplicación.
- Clientes: Especifican los requisitos para la ingeniería del software u otros elementos que tienen menor influencia en el resultado.
- Usuarios finales: Interactúan con el software una vez que se ha entregado para la producción.
Jefes de Equipo
La gestión de un proyecto es una actividad intensamente humana, y por esta razón, los profesionales competentes del software a menudo no son buenos jefes de equipo.
Características que definen a un gestor de proyectos eficiente
- Resolución del problema: Un gestor eficiente puede diagnosticar los aspectos técnicos y de organización más relevantes, estructurar una solución sistemáticamente o motivar apropiadamente a otros profesionales para que desarrollen la solución.
- Dotes de gestión: Un buen gestor debe tomar las riendas. Debe tener confianza para asumir el control cuando sea necesario y la garantía para permitir que los buenos técnicos sigan sus instintos.
- Incentivos por logros: Para optimizar la productividad, un gestor debe recompensar la iniciativa y los logros, y demostrar que no se penalizará si se corren riesgos controlados.
- Influencia y construcción de espíritu de equipo: Un gestor eficiente debe ser capaz de “leer” a la gente; debe ser capaz de entender señales verbales y no verbales y reaccionar ante las necesidades de las personas. El gestor debe mantener el control en situaciones de gran estrés.
Modelo de Gestión MOI (Jerry Weinberg)
- Motivación: Habilidad para motivar al personal técnico.
- Organización: Habilidad para amoldar procesos existentes o inventar nuevos.
- Ideas o innovación: Habilidad para motivar al personal a crear y sentirse creativo.
El Equipo de Software
Existen casi tantas estructuras de organización de personal de desarrollo de software como organizaciones que se dedican a ello. La “mejor” estructura de equipo depende del estilo de gestión de una organización, el número de personas que compondrá el equipo, sus niveles de preparación y la dificultad general del problema. Mantei sugiere tres organigramas de equipo genéricos:
Estructuras de Equipo
- Descentralizado democrático (DD): No tiene un jefe permanente. Se nombran coordinadores de tareas a corto plazo.
- Descentralizado controlado (DC): Tiene un jefe definido que coordina tareas específicas y jefes secundarios responsables de subtareas.
- Centralizado controlado (CC): El jefe del equipo se encarga de la resolución de problemas a alto nivel y la coordinación interna. La comunicación es vertical.
Mantei describe siete factores que deberían considerarse al planificar el organigrama:
- Dificultad del problema
- Tamaño del programa
- Tiempo que el equipo estará junto
- Modularidad del problema
- Calidad y fiabilidad requerida
- Rigidez de la fecha de entrega
- Grado de sociabilidad requerido
Coordinación
Hay muchos motivos por los que los proyectos de software pueden tener problemas. La escala de muchos esfuerzos de desarrollo es grande, conduciendo a complejidades, confusión y dificultades significativas para coordinar a los miembros del equipo.
Técnicas de Coordinación
- Formal, enfoque impersonal: Documentos de ingeniería del software, entregas (incluyendo código fuente), memorandos técnicos, hitos del proyecto, planificaciones, herramientas de control del proyecto, peticiones de cambios y documentación, informes de seguimiento de errores e información almacenada.
- Formal, procedimientos interpersonales: Actividades de garantía de calidad. Reuniones de revisión de estado e inspecciones de diseño y de código.
- Informal, procedimientos interpersonales: Reuniones de grupo para la divulgación de información y resolución de problemas, definición de requisitos.
- Comunicación electrónica: Correo electrónico, boletines electrónicos, videoconferencia.
- Red interpersonal: Discusiones informales.
Descomposición del Problema
La descomposición del problema, a veces denominada particionado o elaboración del problema, es una actividad que se asienta en el núcleo del análisis de requisitos del software. Durante la actividad de exposición del ámbito no se intenta descomponer el problema totalmente. Más bien, la descomposición se aplica en dos áreas principales:
- La funcionalidad que debe entregarse
- El proceso que se empleará para entregarlo
Maduración del Producto y del Proceso
La planificación de un proyecto empieza con la maduración del producto y del proceso. Todas las funciones que se deben tratar dentro de un proceso de ingeniería por el equipo de software deben pasar por el conjunto de actividades estructurales que se han definido para una organización de software.
Descomposición del Proceso
Un equipo de software debería tener un grado significativo de flexibilidad en la elección del paradigma de ingeniería del software que resulte mejor para el proyecto y de las tareas de ingeniería del software que conforman el modelo de proceso una vez elegido.