Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor1 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 1 Ingeniería en Desarrollo de software Cuatrimestre 07 Programa de la asignatura: Métricas de desarrollo de software Clave: 150930728 Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor2 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 2 Índice UNIDAD 3. PLANEACIÓN: RECURSOS Y CALENDARIO ................................................ 3 PRESENTACIÓN DE LA UNIDAD ..................................................................................... 3 PROPÓSITO ..................................................................................................................... 3 COMPETENCIA ESPECÍFICA .......................................................................................... 3 3.1. ESTIMACIÓN DE RECURSOS ................................................................................... 3 3.1.1. PLANEANDO EL RECURSO ................................................................................... 5 3.1.2. ESTIMANDO EL TIEMPO DE DESARROLLO ......................................................... 6 ACTIVIDAD 1. PLANEACIÓN DE RECURSOS Y ESTIMACIÓN DEL TIEMPO DE DESARROLLO .................................................................................................................. 6 3.1.3. COMBINACIÓN DE ESTIMACIONES ...................................................................... 8 3.2. ESTIMACIÓN DE CALENDARIO .............................................................................. 10 3.2.1. ESTIMACIÓN DE CRONOGRAMAS ..................................................................... 10 ACTIVIDAD 2. ESTIMACIONES, CALENDARIO Y VALOR GANADO ............................ 13 3.2.2. SEGUIMIENTO DEL CONCEPTO DE VALOR GANADO ...................................... 16 3.2.3. PSP 1.1.................................................................................................................. 18 EVIDENCIA DE APRENDIZAJE. PSP 1.1 ....................................................................... 19 AUTOEVALUACIÓN ........................................................................................................ 21 AUTORREFLEXIONES ................................................................................................... 22 CIERRE DE LA UNIDAD ................................................................................................. 22 PARA SABER MÁS ......................................................................................................... 22 FUENTES DE CONSULTA .............................................................................................. 22 Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor3 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 3 Unidad 3. Planeación: recursos y calendario Arrancamos ahora la tercera y última unidad de la asignatura: Métricas de desarrollo de software; esta unidad aborda los planes de proyectos que son una lista de actividades que conducen al líder del proyecto hacia el logro del producto esperado, usando y controlando los recursos asignados. Esto es a nivel proyecto y trabajo en equipo TSP. A nivel personal también puedes planear las actividades necesarias para realizar los programas. Notarás que el plan contiene la descripción de la actividad y el tiempo esperado de desarrollo, el cual, deberá ser estimado en un inicio y, a medida de que vas aplicando en el proceso, notarás que los datos que vas generando te servirán para obtener estimaciones más precisas. Presentación de la unidad Hasta este punto ya conoces como estimar tus programas; es por ello que, tomando como base estos conocimientos, te ayudarán a generar planes más precisos para tus programas y proyectos. En otras palabras podrás generar un calendario como una parte importante de la planeación, del seguimiento a cambios y generación de reportes de gestión. Además te ayudará a manejar incidentes y desviaciones que pueden controlarse de manera oportuna. Revisa el propósito de la unidad para que no pierdas de vista el alcance y puedas lograrlo sin problema. Propósito Revisar el proceso de planeación, tomando como base los recursos y tiempos en general y cómo aplicarlo a los programas que normalmente realiza un desarrollador. Todo esto utilizando plantillas y aplicando el proceso de PSP 1.1. Competencia específica Aplicar la estimación de recursos y tiempos para planear un programa a través de la elaboración de un calendario con el proceso PSP 1.1. 3.1. Estimación de recursos El principal recurso con el que debemos contar son los requerimientos, por lo cual debemos tener con una adecuada descripción de éstos, ya que de lo contrario no podríamos comenzar. Los requerimientos que son completamente válidos para PSP son los que cumplen los siguientes criterios: Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor4 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 4 1. Accesibles: para realizar planes se tiene la necesidad de información y debes contar con el acceso a ésta. Debe estar ordenada, saber dónde se ubica y debe ser consistente y no redundante. 2. Claros: lo más importante para PSP es la importancia de la calidad en los datos. Si los datos no están completos o no son lo suficientemente claros no podrán ser utilizados con confianza. 3. Específicos: PSP exige que los datos de las plantillas sean llenados correcta y completamente, la ausencia o error en la captura afectará las estimaciones e informes que sean generados. 4. Precisos: La precisión es una manera de relacionar la unidad de medida con el total de la magnitud de medición. El nivel de detalle tiene que ver con la precisión. Por ejemplo para un proyecto con 14 programadores una métrica para administrarlos podría ser horas o días. En PSP se requerirá un nivel de detalle más estricto, por ejemplo horas y minutos. Manejar segundos ya sería un tiempo demasiado estricto. Para determinar un nivel adecuado de precisión, considera el error introducido por una diferencia de uno en la más pequeña unidad de medida. Por ejemplo para un proyecto de 5 horas, una unidad de medida de un minuto nos podría introducir errores tolerables, mientras que las unidades de medida de una hora o incluso una décima de una hora pudiera ser demasiado. 5. Exactos: todos los puntos son importantes pero la exactitud es crucial. El principal objetivo de hacer planes es producir un plan con una exactitud predecible. Cuando realices tus planes en PSP no debes preocuparte por los pequeños errores que pudieran aparecer al sobre o sub estimar actividades, a éstas las llamaremos estimaciones sesgadas. Como tú eres parte de proyectos grandes y eres parte de un equipo, este tipo de errores se balancean con la combinación de valores totales para tener mayor precisión. El método PROBE es una guía para producir planes imparciales y balanceados. (Humphrey, W. 2005. Pág. 109 - 111). Para desarrollar el plan, PSP tiene una estructura de trabajo que se muestra en la Figura. Estructura de trabajo para el plan de trabajo de PSP, y que también viste en la Unidad 2. Comienza con las necesidades del cliente, esto ayuda a los programadores o ingenieros de software a definir requerimientos. Posteriormente, aplicando el método PROBE (Proxy Based Estimating), realizan una estimación y un plan donde cada programador debe realizar un diseño conceptual para poder calcular el tiempoque le llevará hacer el diseño completo. En el siguiente paso, deberán estimar el tamaño del programa y estimar recursos. Posteriormente, ya que conocen el tiempo requerido en cada etapa, estiman el tiempo que pasarán en el trabajo cada día o semana y de esta manera generan un calendario. Ya que se estableció un calendario, se comienza el desarrollo, lo cual no forma parte de la planeación pero el registro del tiempo que se genera, sí es importante para realizar estimaciones más precisas de esta etapa. Después de haber completado el trabajo, los programadores o ingenieros de software realizan un análisis postmortem del trabajo. Actualizan el resumen del plan del proyecto, revisan el desempeño comparando lo real con lo planeado. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor5 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 5 Figura. Estructura de trabajo para el plan de trabajo de PSP. (Humphrey, W. 1995. Pág. 99) Todo se realiza aplicando el método PROBE para tomar como base la estimación del tamaño del producto. Contabilizan los objetos que se requieren para el diseño conceptual, la cantidad y tipo de métodos de cada objeto, se toma como referencia los estándares de conteo de objetos similares desarrollados previamente. Aplicando una regresión lineal se determina el tamaño para el producto terminado. Para poder aplicar la regresión lineal, como mínimo deben tener un histórico de tres programas anteriores. Ya que estimó el total del trabajo, cada programador usa sus tiempos históricos y ajustan el tiempo necesario para cada fase del trabajo, en la columna %A la fecha en el resumen del plan del proyecto. 3.1.1. Planeando el recurso Otros recursos importantes en la planeación son el tiempo, el personal y, obviamente, hardware y software necesarios para realizar las actividades. Existe una relación natural entre el tamaño del programa y el tiempo de desarrollo, ya que, entre más grande es el programa, éste involucra mayor tiempo de desarrollo. Dicha relación se puede lograr afectar cuando inyectamos más y mejores recursos al proceso, por ejemplo establecer un equipo de trabajo sólido formado por varios programadores expertos. En PSP esto comienza con la estimación del tamaño del producto que cada programador desarrolla Generación de reportes Gestión Tamaño, recursos, calendario Proceso de análisis Necesidades del cliente Definir requerimientos Producir diseño conceptual Estimar tamaño Estimar recursos Producir cronograma Desarrollar producto Recursos disponibles Productividad de base de datos Tamaño de base de datos Entrega del producto Cliente Elementos Tareas Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor6 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 6 personalmente, tomando como base sus datos personales y de su productividad; cada programador estima el tiempo para desarrollar el programa. Como vimos en la Figura. Estructura de trabajo para el plan de trabajo de PSP, la estimación del tamaño y del recurso son realizadas por el método PROBE. (Humphrey, W. 1995. Pág. 97-100). En los siguientes temas veremos cómo estimar el tiempo de desarrollo, la generación de cronogramas de trabajo, estimación de tiempos basándonos en métodos de juicio experto, datos históricos y precisiones estadísticas. 3.1.2. Estimando el tiempo de desarrollo En PSP cada programador utiliza su información personal para medir su trabajo y estimar mejor los tiempos en nuevos programas. Para lograr esto, registran los datos del tiempo que se gastan en cada fase del proceso, los tamaños de los programas y defectos generados. El tiempo real registrado deberá contener información como esta: hora en que inició la tarea, tiempo en que se detiene la tarea o cualquier interrupción, por ejemplo una llamada telefónica, un descanso o alguna conversación no prevista. La idea es que realmente se registre el tiempo invertido en la tarea específica. El tiempo que gastas en tus proyectos es fluctuante. La primera vez que los miembros de un equipo TSP comienzan a trabajar, generalmente lo hacen con una velocidad entre 12 y 15 horas de trabajo por semana. Después de unas pocas semanas de trabajo ellos pueden a menudo incrementar sus horas de trabajo entre 15 y 17 y ocasionalmente casi alcanzar 20 horas de trabajo. Algunos equipos TSP experimentados pueden alcanzar 20 ó más tareas por hora en promedio, a la semana. Lo importante es reunir estos datos sobre el rendimiento personal y utilizarlos para hacer estimaciones y planes más reales y presentar cronogramas más certeros. Trata de hacer planes realistas que dejen una cantidad razonable por los acontecimientos normales de la vida diaria de trabajo. Esto proporcionará un colchón prudente para los ocasionales momentos de crisis. (Larco, E. 2007. Pág. 30). En el siguiente tema, volverás a ver técnicas de estimación que serán de utilidad para calcular el tiempo de desarrollo de tus programas o proyectos. Actividad 1. Planeación de recursos y estimación del tiempo de desarrollo Propósito: Identificar en un problema los recursos que deben ser planeados y el tiempo de desarrollo por medio de la estimación. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor7 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 7 Instrucciones: 1. Identifica los recursos que deben ser planeados y el tiempo de desarrollo por medio de la estimación. (No es necesario desarrollar el código). Descripción del programa: “Desarrollar un programa en lenguaje JAVA que permita mostrar el promedio, la varianza y la desviación estándar de un conjunto de N números reales. Los valores deberán ser leídos desde un archivo de texto. Deberás utilizar una lista enlazada para almacenar los N números, con los cuales realizarás los cálculos”. 2. Completa los siguientes datos, aplicando tu experiencia para estimar los tiempos de desarrollo en cada requerimiento y completa el resto de las columnas con los recursos necesarios, como se indica. Requerimientos Tiempo estimado Programadores Software Hardware Leer números desde un archivo de texto. 1 Java Pc Almacenar los números leídos en una lista enlazada. 1 Java Pc Calcular promedio y mostrar. Calcular varianza y mostrar. Calcular desviación estándar y mostrar. 3. Ingresa al foro de la actividad y compara los tiempos estimados con al menos 2 compañeros. 4. Atiende a la discusión que tu facilitador(a) plantee en el foro. 5. No olvides consultar la Rúbrica de participación general en foros. Cierre: La planeación adecuada del tiempo es la clave para que nuestros cronogramas se aproximen cada vez más a los tiempos reales de ejecución. Estimar de manera precisa el tiempo de desarrollo te ayudará a establecer compromisos y tener la certeza de que podrás cumplirlos de acuerdo al tiempo establecido para la entrega del producto o entregable. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor8 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 8 3.1.3. Combinación de estimaciones Como viste en la Unidad 2, existen muchas técnicas y herramientas de estimación, por ejemplo el método PROBE que ya fue explicado. En este tema se verán otras técnicas así como, sus posibles combinaciones. A continuación se presentan algunas de ellas. Método Wideband Delphi Es una técnica basada en juicio experto. Se les pide a variaspersonas, por separado, que realicen la estimación y la entreguen a quien coordina la dinámica. El coordinador calcula el promedio de la estimación y lo registra. Si algún valor está muy sesgado, realiza una nueva ronda mostrando el promedio e invitando a que se reconsideren los valores reportados. Por ejemplo: 1) Primera estimación: Experto A = 3,000 LOC (Líneas de código) Experto B = 15,800 LOC Experto C = 20,800 LOC 2) El coordinador calcula el promedio 13,200 LOC y lo proporciona a cada experto, así como las otras estimaciones sin decir de quien son. Los expertos discuten las estimaciones y vuelven a calcular. 3) Segunda estimación: Experto A = 11,200 LOC Experto B = 13,000 LOC Experto C = 14,300 LOC 4) El coordinador calcula el promedio 12,833 LOC y pregunta a los expertos si están de acuerdo con este promedio. De lo contrario, se realiza un nuevo cálculo. Ventajas: Los resultados pueden ser muy precisos, se ajusta a las necesidades de la organización y puede aplicarse a cualquier tamaño de proyecto. Desventajas: consume tiempo de los participantes, si no se maneja adecuadamente los expertos se pueden influenciar y dejar los promedios poco realistas. Método Analogía Es otra técnica basada en juicio experto y datos históricos. Debes realizar la separación de los componentes del sistema. Por cada componente, buscar en los datos históricos uno similar y tomar su tamaño como base para la estimación. Por ejemplo: si llevas 2 programas realizados y vas a estimar el tiempo de un tercer programa, lo natural será que revises, si en tus 2 programas anteriores tienes componentes similares y tomes los Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor9 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 9 tamaños registrados de LOC y aplicando tú juicio considerando el alcance del nuevo código realices el ajuste a las líneas de código. El método de analogía lo puedes combinar con el Delphi. Cuando no tienen en la empresa valores iniciales, con el método Delphi se pueden generar una serie de valores base, poco a poco conforme vas desarrollando nuevos proyectos, registrarás los valores reales y posteriormente con el método de analogía puedes utilizar los datos históricos. Método PERT Este método tiene sus fundamentos en estadística y está basado en los valores de: mínimo esperado, más probable y máximo esperado. Con dichos valores se aplica la siguiente fórmula: a= valor mínimo esperado b= valor probable c= valor máximo esperado E= (a+4b+c)/6 Los valores pueden ser obtenidos a partir de cualquiera de las dos técnicas vistas previamente Delphi o Analogía. Por ejemplo: Valor mínimo esperado (a) =300 Valor probable (b) = 600 Valor máximo esperado (c)= 1000 E= (300+4*600+1000)/6 E= 617 LOC Si queremos determinar el tiempo para desarrollar el proyecto podemos acudir al modelo de analogía, o bien, podemos utilizar la estadística con los datos históricos de productividad. Tiempo estimado = LOC estimadas del proyecto / media de la productividad. Media de la productividad = LOC de todos los proyectos realizados / tiempo de todos los proyectos realizados. Por ejemplo, si tuviéramos los siguientes valores históricos LOC totales a la fecha = 350 Minutos totales a la fecha = 670 Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor10 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 10 LOC estimadas del proyecto = 230 Media de la productividad = 350/670 = 0.5224 Tiempo estimado = 230/0.5224 = 440.276 minutos Ya que se estimó el tiempo total de desarrollo se debe utilizar el dato para distribuirlo en el plan. A continuación, se explicará cómo aplicar los tiempos estimados en un calendario para generar el plan del desarrollo de tu programa o proyecto. (Mojica, C. & Chapela, L. 2004. pp. 90-95). 3.2. Estimación de calendario Como hemos visto, podemos estimar el tiempo de esfuerzo requerido para realizar un proyecto. Ya que tienes el tiempo resultante de cualquiera de los estimadores vistos, se tiene que asignar a las diferentes fases del desarrollo, además considerar como se distribuirá semanalmente el trabajo. Todo esto con la finalidad de generar el plan del proyecto. Como puedes notar, los requerimientos del usuario son necesarios pues en ellos se contiene el alcance del proyecto. Debemos considerar también, otros elementos como: equipo, materiales, software y por supuesto los recursos humanos que obviamente son necesarios para el cumplimiento de los objetivos. Esta información será útil para documentar el plan y comenzar a generar el calendario de trabajo. 3.2.1. Estimación de cronogramas Para generar el calendario de trabajo será necesario contar con la estimación de las horas directas del proyecto, la disponibilidad de los horarios de los recursos y la distribución ordenada de las actividades que se desarrollarán. Posteriormente, necesitarás contar con las estimaciones del tiempo por cada tarea y asignar el tiempo en cada una de las actividades del calendario. El calendario contendrá todas las actividades que serán necesarias para desarrollar el proyecto con la fecha en que deben iniciar y con la que deben finalizar. Por lo tanto, para crearlo debemos considerar lo siguiente: 1. Contar con el esfuerzo estimado para el proyecto. 2. Disponibilidad de horario. Se refiere al tiempo que será dedicado para este proyecto; porque, posiblemente, estás involucrado en otras actividades y por lo tanto deberás definir la cantidad de horas que dedicarás diariamente a este proyecto. Por ejemplo: En un proyecto se tienen la siguiente disponibilidad en los siguientes 4 meses: - 14 semanas con 30 horas de trabajo por semana = 420 horas disponibles. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor11 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 11 - 5 días de vacaciones y 2 días de asueto = 7 días = 42 horas no laborables. 10% - El tiempo para reuniones, correos y documentación es 5% = 19 horas. - El tiempo disponible será de 378-19=359 horas. Saber cuáles son los tiempos que realmente tendremos disponibles es muy importante, ya que con esto podremos asignar las actividades apropiadamente y darnos cuenta si será suficiente el recurso disponible o se necesitará más personal para atender los compromisos. 3. Orden de las actividades. El orden de las actividades debe ir de acuerdo al ciclo de vida de desarrollo que se esté utilizando o cualquier otra estrategia que el equipo de desarrollo haya decidido utilizar. Cada actividad deberá tener un criterio de término Considerar las dependencias entre las actividades: por ejemplo cuáles comienzan juntas cuáles anteceden a otras y cuáles se preceden. Determinar cuáles actividades son prioritarias y colocarlas en un orden de acuerdo a la naturaleza del proyecto y de los requerimientos del cliente. Asignar costos a los recursos asignados a cada actividad. Determinar el orden de cada actividad. 4. Define hitos principales en el proyecto. Al llegar a uno de los principales objetivos o entregables importantes del proyecto, se puede marcar en el calendario la fecha como un hito. Estos no tienen duración, son marcas en calendario que nos indicarán si hemos alcanzado logros. 5. Contar con una herramienta para cronogramas con una representación visual como lo es un Gantt (Ruiza, M., Fernández, T., Tamaro, E., Durán, M. 2013. Pág. 1), en el que las barras muestran el esfuerzo requerido en un tiempo determinado. O bien contar con una plantilla estándar para que el manejo del calendario nos de consistenciaen el registro y análisis de los datos de todos los proyectos. Por ejemplo observa el siguiente formato: Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor12 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 12 Figura. Ejemplo de formato de planeación de actividades. (Humphrey, W. 2005. Pág. 109 - 111) 6. Para llenar el formato deberás: Escribir el nombre o Id del programa y la fase de desarrollo. En la columna Nombre de Tarea escribir las actividades en el orden natural de realización. Deberás describir exactamente cuándo termina la actividad, por ejemplo “casos de uso terminados”, “plan terminado”, “programa compilado”. Registrar para cada actividad la cantidad de minutos estimados para su desarrollo. Ir acumulando los minutos en la columna de minutos acumulados. Adicionalmente podrías agregar una columna para llevar el consecutivo del total de las tareas a realizar. Valor ganado.- Debemos entender primeramente el objetivo de valor ganado, el cual consiste en establecer un valor para cada actividad, llevar un seguimiento del desarrollo del proyecto comparándolo con lo planeado, aun cuando el plan cambie. Como resultado obtendremos un valor común para cada actividad en forma de porcentaje que representa lo que esa actividad tiene respecto al total de actividades planeadas. No se gana nada por actividades incompletas. Si el proyecto presenta cambios significativos, se requiere hacer una nueva planeación. Establecimiento de valor planeado.- En el formato de planeación de actividad: sumar las horas del proyecto, calcular el porcentaje de cada actividad respecto al total de horas. Registrar este porcentaje como el valor planeado para la actividad. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor13 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 13 Tabla. Ejemplo de planeación del cronograma Actividades Horas Horas acumuladas Día Valor planeado Valor planeado acumulado A 2 2 1 5.4 5.4 B 5 7 2 13.5 18.9 C 4 11 3 10.8 29.7 D 7 18 4 18.9 48.6 E 3 21 5 8.1 56.7 F 5 26 6 13.5 70.2 G 6 32 7 16.3 86.5 H 3 35 8 8.1 94.6 I 2 37 8 5.4 100 En el formato de calendario: registrar el Valor planeado acumulado para las actividades que sean completadas cada semana. Se calcula el avance al terminar la actividad A de la siguiente manera 100*2/37=5.4, el 2 es del tiempo planeado, el 37 es el total del tiempo que se va a invertir en el proyecto. Y luego en la columna de Valor planeado acumulado recopilar el valor planeado por cada día. Observa que la columna de Valor planeado es el porcentaje de avance diario que al terminar formará el 100% de avance. Por lo tanto, mantener de manera disciplinada el seguimiento al calendario nos permitirá que, cuando llevemos cierto avance del proyecto, podamos predecir la fecha de término, tomando como referencia la forma en que se ha estado desarrollando las actividades del plan, en el siguiente tema se te explicará cómo hacer este proceso. (Humphrey, W. 1995. Pág. 145-1155). A continuación, tendrás la oportunidad de analizar todos estos conceptos en una actividad que te ayudará a entender cómo se aplican e interpretan. Actividad 2. Estimaciones, calendario y valor ganado Propósito: Analizar aspectos básicos para combinar estimaciones, los elementos que intervienen para estimar un calendario y el concepto de valor ganado. Instrucciones: Analizar el problema y contestar el cuestionario sobre estimaciones, calendario y valor ganado. Descripción del problema: Considera el siguiente calendario de actividades, observando los días en que fueron planeadas las actividades y los días en que fueron terminadas. Contesta el cuestionario que se presenta enseguida de la tabla Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor14 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 14 Plan ID Actividades Horas Horas acumuladas Día Valor planeado Valor planeado acumulado Día de término Valor ganado Valor ganado proyectado 1 Planificación 1 1 1 5.0 5.0 1 5.0 2 Diseño 1 2 2 5.0 10.0 2 10.0 3 Codificar lectura de archivo de texto 3 5 3 15.0 25.0 3 25.0 4 Codificar lista enlazada 5 10 4 25.0 50.0 4 50.0 5 Codificar cálculo de promedio 1 11 5 5.0 55.0 6 ? 6 Codificar cálculo de varianza 2 13 6 10.0 65.0 7 ? 7 Codificar cálculo de desviación estándar 3 16 7 15.0 80.0 8 ? 8 Compilación 1 17 8 5.0 85.0 9 Pruebas 2 19 9 10.0 95.0 10 Postmortem 1 20 10 5.0 100.0 11 Cuestionario: 1. ¿Qué es el valor planeado? a) Es el porcentaje de las horas planeadas correspondientes a una actividad. b) Es el valor que asigna el líder de proyecto para cada actividad. c) Es un valor fijo que se toma de referencia al realizar un cronograma. d) Es el porcentaje planeado de las horas acumuladas de cada actividad. 2. Si los valores de las horas fueron calculados con el método Delphi ¿Cuál de las siguientes afirmaciones es correcta? a) Aplicaron una técnica estadística combinada con una de analogía. b) Tomaron los tiempos reales de cronogramas de programas previos y similares. c) Varias personas realizaron la estimación. d) Se aplicó una técnica estadística con valores mínimos, probables y esperados. 3. Si los valores de las horas fueron calculados con la técnica de Analogía ¿Cuál de las siguientes afirmaciones es correcta? a) Aplicaron una técnica estadística combinada con una de analogía. b) Tomaron los tiempos reales de cronogramas de programas previos y similares. c) Varias personas realizaron la estimación. d) Se aplicó una técnica estadística con valores mínimos, probables y esperados. 4. Si los valores de las horas fueron calculados con la técnica PERT únicamente ¿Cuál de las siguientes afirmaciones es correcta? a) Aplicaron una técnica estadística combinada con una de analogía. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor15 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 15 b) Tomaron los tiempos reales de cronogramas de programas previos y similares. c) Varias personas realizaron la estimación. d) Se aplicó una técnica estadística con valores mínimos, probables y esperados. 5. ¿Qué día se terminó la actividad 5? a) 5 b) 6 c) 7 d) 8 6. ¿Qué día se terminó la actividad 6? a) 5 b) 6 c) 7 d) 8 7. ¿Qué día se terminó la actividad 7? a) 5 b) 6 c) 7 d) 8 8. ¿Cuál es el valor ganado para la actividad 5? a) 50 b) 55 c) 60 d) 809. ¿Cuál es el valor ganado para la actividad 6? a) 50 b) 55 c) 60 d) 80 10. ¿Cuál es el valor ganado para la actividad 7? a) 50 b) 55 c) 60 d) 80 Ya que copiaste el cuestionario en un archivo de texto, guarda la actividad con el nombre DMDS_U3_A2_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. Envía el archivo al facilitador(a) para recibir retroalimentación. Cierre: La técnica de valor ganado nos muestra un panorama real del proyecto, ya que nos permite conocer exactamente si vamos de acuerdo a lo planeado o comienza a desfasarse el cronograma Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor16 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 16 3.2.2. Seguimiento del concepto de valor ganado Seguimiento al calendario Ya que se completó el plan, con los tiempos estimados, actividades ordenadas,hitos registrados, costos y fechas de inicio y fin. Nos enfrentamos a la realidad de ponerlo en práctica. Ahora, hay que cuidar que los tiempos se cumplan conforme fueron planeados, que los recursos sigan disponibles y que las fechas se cumplan. Hay que pensar en los posibles riesgos que pudieran retrasar o hasta impedir que las actividades del proyecto se realicen. El seguimiento del proyecto sería simple si siempre las actividades se completaran en el orden previsto sin que se agreguen nuevas actividades ni que se eliminen. Pero la realidad es muy diferente, esto nunca sucede, los requerimientos siempre cambian, las actividades se eliminan y otras se agregan, la generación de errores es común. El cumplimiento, o no, de los hitos nos permitirán saber si vamos bien con la estrategia que estamos llevando o debemos realizar cambios o incluso decidir si se sigue o no con el proyecto. Retomando el concepto de valor ganado, debemos registrarlo y la fecha en que fue completada la actividad, para poder dar seguimiento al proyecto. Agregar el valor ganado a la fecha en la columna de valor ganado acumulado. Formato de calendario: registra el valor ganado acumulado para cada semana a medida que se completan las actividades. Comparar el valor ganado con el valor planeado. Y, como lo vimos anteriormente, una actividad gana valor sólo cuando está terminada. Al completar la actividad, su valor se registra al igual que el valor acumulado hasta ese día. Por lo tanto el valor ganado nos sirve para saber el estado de nuestro proyecto, es decir, si vamos con retraso, adelantados o conforme al plan. Proyectar el término del proyecto.- En todos los proyectos se pretende que se cumplan los objetivos de acuerdo al plan, sin embargo, algunas veces podrán presentar desviaciones ya sea por atrasos o por cambios y en la medida en que vayan avanzando continuará ganando valor. Con la información que se generó anteriormente se determina la fecha de término proyectada, a menos que: la velocidad del proyecto sea cambiada de tal manera que el trabajo restante pueda ser reducido por debajo de lo planeado. Para llevar el seguimiento al proyecto deberás registrar la fecha o día en que se completaron cada una de las actividades. Recuerda que hay actividades que no se completan en un solo día, por ejemplo observa en la tabla siguiente, la actividad C, debió terminarse el día 3, sin embargo fue completada hasta el día 4. Por lo tanto, en la columna de Valor ganado no puede tomar el siguiente porcentaje del acumulado Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor17 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 17 planeado, permanece igual. Esto va generando un retraso con respecto a lo que se tenía planeado. Tabla. Ejemplo de planeación del cronograma Plan ID Actividades Horas Horas acumuladas Día Valor planeado Valor planeado acumulado Día de término Valor ganado Valor ganado proyectado 1 A 2 2 1 5.4 5.4 1 5.4 5.4 2 B 5 7 2 13.5 18.9 2 18.9 18.9 3 C 4 11 3 10.8 29.7 4 18.9 18.9 4 D 7 18 4 18.9 48.6 5 29.7 29.7 5 E 3 21 5 8.1 56.7 6 48.6 48.6 6 F 5 26 6 13.5 70.2 58.32 7 G 6 32 7 16.3 86.5 68.04 8 H 3 35 8 8.1 94.6 77.76 9 I 2 37 9 5.4 100 87.48 10 10 97.2 11 11 100 En el ejemplo anterior, observa la columna Valor ganado proyectado, puedes notar que en la actividad 5 del proyecto, se tiene un avance del 48.6%, por lo tanto, en promedio cada día tenemos un avance de 9.72 (48.6/5). En este punto, podemos pronosticar cuándo terminará el proyecto si se continúa trabajando a este ritmo. A partir del día 6 le incrementamos el valor 9.72 y lo continuamos hasta llegar al 100%. Esto nos lleva a terminar el proyecto hasta el día 11 en lugar del día 10 como originalmente estaba planeado. Poder estimar el término del proyecto, le ayuda al líder a tomar decisiones a tiempo para cubrir sus metas; por ejemplo: agregar un recurso para acelerar el tiempo de desarrollo y evitar que una desviación en el tiempo afecte la fecha de entrega de la etapa. Si se trata del proyecto de un solo programador, éste podrá decidir inyectar más tiempo para evitar que la desviación, no afecte la entrega o bien negociar con el cliente un cambio de fechas, esto tomando en cuenta si la desviación fue ocasionada por el cliente. (Humphrey, W. 2005. Pág. 115). El plan con valores estimados y su seguimiento forman parte del proceso PSP 1.1. En el siguiente tema se presentan las instrucciones para aplicarlo. Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor18 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 18 3.2.3. PSP 1.1 Para entender cómo se realiza el proceso PSP 1.1 deberás leer las siguientes instrucciones. Propósito Guiar a los desarrolladores de programas a nivel módulo. Entrada o Descripción del problema o Formato del resumen del plan del proyecto PSP1.1 o Plantilla de estimación del tamaño o Los datos históricos de tamaño y tiempo (estimado y real) o El tiempo y registros de defectos o Estándares del tipo de defecto, codificación y tamaño o Cronómetro (opcional) Planeación o Obtención y definición de requerimientos o Utilización del método PROBE para estimar el tamaño añadido y modificado de este programa, así como el tiempo de desarrollo requerido o Completar la plantilla de la estimación del tamaño o Completar una plantilla de Planificación de Tareas o Completar una plantilla de Planeación Programación o Introducción de los datos del plan en forma Resumen del Proyecto Plan o Completar el registro de tiempos Desarrollo o Diseñar el programa o Aplicar el diseño o Compilar el programa, corregir y registrar todos los defectos encontrados o Completar los registros de tiempos Postmortem Completar el formato del resumen del plan de proyecto con los tiempos reales, defectos y tamaño. Criterios de éxito o Un programa probado a fondo o Resumen del Plan del proyecto completo con datos reales o Plantillas llenadas completamente del tamaño, actividades y planificación del calendario completas o Los formularios de PIP o - Registro completo del tiempo y defectos. (Alvarado, A. 2008. Pág. 22). Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor19 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 19 Este proceso, al igual que los otros, tiene las mismas etapas pero con nuevos formularios. A continuación podrás poner en práctica parte de este proceso por medio de la siguiente actividad. Deberás desarrollar un programa y completar el seguimiento a un plan. Evidencia de aprendizaje. PSP 1.1 Propósito: Desarrollar un programa aplicando el procedimiento del PSP 1.1 PARTE I 1. Desarrolla un programa en lenguaje Java que permita mostrar el promedio, la varianza y la desviación estándar de un conjunto de N números reales. Los valores deberán ser leídos desde un archivo de texto. Deberás utilizar una lista enlazada para almacenar los N números con los cuales realizarás los cálculos. 2. Descomprime la línea base que contiene código que podrás re-utilizar para completar los requerimientos del programa. DesvEstandar.zip 3. Desarrolla el código necesario para mostrar la varianza. 4. Realiza pruebas suficientes a tu programa. Al menos dos casos de prueba deberán ser utilizados con los valores mostrados en las siguientes columnas. Los resultados esperados son mostrados a continuación. Valores Col.1 Col.2 160 15.0 591 69.9 114 6.5 229 22.4 230 28.4 270 65.9 128 19.4 1657 198.7 624 38.8 1503 138.2Resultados columna 1 Promedio = 550.6 Varianza = 327214.71 Desviación estándar = 542.03 Resultados columna 2 file:///C:/Users/abraham.lopeze/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.IE5/9GKOQOQ8/DesvEstandar.zip Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor20 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 20 Promedio = 60.32 Varianza = 3876 Desviación estándar = 62.26 Si tienes dudas de cómo calcular la varianza puedes consultar la siguiente página: http://www.spssfree.com/spss/analisis2.html PARTE II Instrucciones: observa la siguiente tabla, imagina que son los tiempos que planeaste con PROBE. Ahora le estás dando seguimiento y hasta la actividad número 5, ¿Cuál será el Valor ganado proyectado con los valores que se han obtenido hasta ese momento? (Completar columna de Valor ganado proyectado) Plan ID Actividades Horas Horas acumuladas Día Valor planeado Valor planeado acumulado Día de término Valor ganado Valor ganado proyectado 1 Planificación 1 1 1 5.0 5.0 1 5.0 2 Diseño 1 2 2 5.0 10.0 2 10.0 3 Codificar lectura de archivo de texto 3 5 3 15.0 25.0 3 25.0 4 Codificar lista enlazada 5 10 4 25.0 50.0 4 50.0 5 Codificar cálculo de promedio 1 11 5 5.0 55.0 6 ? 6 Codificar cálculo de varianza 2 13 6 10.0 65.0 7 7 Codificar cálculo de desviación estándar 3 16 7 15.0 80.0 8 8 Compilación 1 17 8 5.0 85.0 9 Pruebas 2 19 9 10.0 95.0 10 Postmortem 1 20 10 5.0 100.0 11 Ya que resolviste la parte I y II de la evidencia, integra en un solo documento de texto, el código resultante de la parte I describiendo lo realizado y los resultados de la parte II. 1.- Guarda la actividad con el nombre DMDS_U3_EA_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 2.- Envía el archivo al facilitador(a) para recibir retroalimentación. No olvides consultar los criterios de evaluación de la actividad. Cierre: http://www.spssfree.com/spss/analisis2.html Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor21 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 21 Llevar a la práctica un proceso PSP completamente, te va disciplinando en la generación de datos y uso de los mismos para proyectar la tendencia de actividades futuras en caso de continuar con el mismo ritmo de desempeño. Es por ello que es importante no tan solo hacer planes precisos, si no también monitorear su ejecución y cuidar las proyecciones para no desviar las fechas compromiso. Autoevaluación Para recordar las palabras clave de la unidad intenta resolver la sopa de letras. Para ello busca las palabras escondidas en ella y márcalas. B H X Z Q T U T I E M P O X I C V N Q S D X P S O O R H Z R Y N L U G A O G E D Q O O B P E A M A R G O N O R C U D K C D T N Y O Ñ A M A T R D B P S P A E K X I D E B V S R M Q X N N T E E D R U S H E T T R E P K X O O T V Z O I R J X J S M D Y G Y F O I N D Q T M V H R I Y A E E Y U W S C A C A A J X I S C I Q R Q L E I Q A G I N M N S Z T M Q F B R T P V M M N A N R A W Z S C U V K X O V H T I V O W O D I E M H A U V U I L N I T E U V F E A G X Y W K Z K H Y L C S B N T M Z P G O U D C Y I P F D O E L A T L Y V H D L V E B R P A B W Z E X S O Q X I X R A M Z P V P V Y H E R R A M I E N T A N A V K Z Q R C M V D D K E F G D J E A W A C E X T R R E C U R S O S X J M N E K N A U N Q L P D H T G S X M Z A W E X W Estas son las palabras que deberás encontrar ACTIVIDADES ANALOGIA CRONOGRAMA DELPHI DESARROLLO ESTIMACION FORMATO GANTT HERRAMIENTA HITOS PERT RECURSOS SEGUIMIENTO TAMAÑO TIEMPO Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor22 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 22 Autorreflexiones Además de contestar y enviar la Evidencia de aprendizaje, es importante que ingreses al foro Preguntas de Autorreflexión y consultes las preguntas que tu Facilitador(a) presente, a partir de ellas, debes elaborar tu Autorreflexión en un archivo de texto llamado DMDS_UX_ATR_XXYZ. Posteriormente envía tu archivo mediante la herramienta Autorreflexiones. Cierre de la unidad Con esta unidad cerramos el curso de PSP; cómo pudiste darte cuenta, es un proceso de mejora personal, sin embargo, si todos los programadores de la empresa lo utilizaran podrían llevar a un mejor nivel la gestión y forma de trabajo de los proyectos que desarrollen. De manera personal PSP ayuda al programador a controlar, gestionar y mejorar su trabajo por medio del uso de plantillas y procesos que si utiliza adecuadamente servirán para conseguir elementos de trabajo más confiables y predecibles. Además, revisaste las características de esta disciplina generada por Watts Humphrey, misma que fue el resultado de investigaciones con múltiples proyectos de la industria del software. La metodología PSP es parte de un proceso cíclico para ayudar al mejoramiento personal de las actividades y que el primer paso para producir un software de calidad es decidir que la calidad es importante, por lo cual se debe establecer el objetivo de producir programas libres de defectos y para tener oportunidad de cumplir esto, debes medir la calidad de tus programas, así como, buscar la mejora de los mismos. Con lo anterior, concluimos la asignatura Métricas de Desarrollo de Software ¡Felicidades! Para saber más Te recomendamos el siguiente sitio, este contiene una amplia explicación de PSP, además incluye videos, ejemplos, plantillas y diversas herramientas. http://kovachi.sel.inf.uc3m.es/800-spanish/Metodos_y_Modelos/psp Fuentes de consulta Bibliografía básica Humphrey, W. (1995) A discipline for software engineering (The complete PSP Book) United States of America: Addison Wesley. Humphrey, W. (2005) PSP a Self-improvement process for software engineers. United States of America: Addison Wesley. http://kovachi.sel.inf.uc3m.es/800-spanish/Metodos_y_Modelos/psp Métricas de desarrollo de software Unidad 3. Planeación: Recursos y calendario Ejecutas el editor23 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 23 Zapata, J., García, J., Cerrada, J. (2001) Introducción al proceso software personalSM. Madrid, España: Addison Wesley. Bibliografía complementaria Alvarado, A. (2008) Desarrollo de sistemas con PSP y TSP. México, D.F. Disponible en: http://148.206.53.231/UAMI14384.pdf Larco, E. (2007) Uso del PSP (Personal Software Process) en el desarrollo de software. Quito. Disponible en: http://bibdigital.epn.edu.ec/bitstream/15000/345/1/CD- 0760.pdf Mojica, C. Chapela, L. (2004) Técnicas de programación con calidad. Yucatán, México. Disponible en http://www.capacinet.gob.mx/Cursos/Tecnologia%20amiga/desarrolladordesoftware/T ecnicasProgramacionPersonalConCalidad_SE.pdf Ruiza, M., Fernández, T., Tamaro, E., Durán, M. (2013) Biografías y Vidas. Barcelona, España. Disponible en http://www.biografiasyvidas.com/biografia/g/gantt.htm
Compartir