jueves, 29 de marzo de 2012

Estimaciones

Consultas sobre estimaciones y CMMI

7 comentarios:

  1. =====CONSULTA=====
    Buenos Días

    Agradecería puedan absolverme las siguientes consultas:
    Estamos diseñando nuestro método de trabajo para el costeo y medición de los proyectos (Práctica PP SP 1.2 y SP 1.4) y se nos presentaron las siguientes dudas:
    1.- Para obtener las estimaciones técnicas de esfuerzo por unidad de programación; estamos considerando utilizar la tabla de valores estimados según los niveles Básicos e Intermedios que ofrece COCOMO.
    2.- Para el cálculo de la distribución de tiempo en el ciclo de vida del proyectos, en base a lo estimado en desarrollo. ¿Puedo hacer uso de los valores de dedicación del cuadro q que se parece a la distribución de tiempos de RUP?
    Con el tiempo estos valores los iríamos ajustando, pero para iniciar nuestras mediciones quisiéramos utilizar estos datos. Agradecería me confirmen si esto sería aceptado para nuestra certificación de CMMI o si debo buscar otras alternativas.

    Saludos cordiales,

    =====RESPUESTA=====

    (i). Una evaluación SCAMPI A - que se hace a una organizacion - es una evaluación o valoración de procesos, no es una certificación (aunque el mercado suele llamarlo así). Una empresa (o parte de ella) es quien logra un Nivel de Madurez X.
    (ii). Haciendo un resumen a muy alto nivel, el método SCAMPI A comprueba si hay evidencia que demuestre que la organizacion cumple los requisitos del modelo CMMI usado como referencia en la evaluación (entiendo que en este caso es el CMMI-DEV v1.2). Parte importante de los elementos para la evaluación es comprobar que las prácticas del modelo están implementadas.
    (iii). En referencia a las prácticas de PP SP 1.2 y SP 1.4, el CMMI-DEV v1.2 no prescribe el uso de algún modelo o técnica específica de modo que adelante con el uso de las técnicas o modelos más apropiados para tu organización!
    (iv). En relación al uso de modelos paramétricos (como los que mencionas) el modelo CMMI-DEV v1.2 recomienda: "El uso de estos modelos como única fuente de estimación no es recomendable porque estos modelos se basan en datos históricos de proyectos que pueden o no ser pertinentes a su proyecto". De modo que que si finalmente decides usarlos, la sugerencia es que los calibres de modo que incorpores en ellos información histórica propia de los proyectos de tu organización, tal como mencionas lo tienes planeado.

    Saludos

    ResponderEliminar
  2. Quisiera saber si CMMI puede ser utilizado para mejora de procesos que no estan relacionados con Tecnología?

    ResponderEliminar
  3. RECIBI CONSULTA 16Ago2011 -------------------------
    Quisiera saber si CMMI puede ser utilizado para mejora de procesos que no estan relacionados con Tecnología?
    RESPONDI 16Ago2011 --------------------------------

    Hola!
    Sí.
    Tengo la experiencia personal de haber participado en experiencias de uso del CMMI para Desarrollo en una consultora de Seguridad y en una empresa de distribución de energía eléctrica.
    Hay artículos y libros que mencionan el uso del CMMI en empresas con un giro diferente al de software.
    Ahora existen 3 modelos CMMI:
    1. CMMI para Desarrollo, que se usa para mejorar procesos para desarrollar y mantener productos y servicios
    2. CMMI para Adquisición, que se usa para mejorar los procesos necesarios para interactuar con proveedores.
    3. CMMI para Servicios, que se usa para mejorar los procesos necesarios para gestionar y entregar servicios.

    Suerte!

    ResponderEliminar
  4. Estimado David
    Tengo la siguiente consulta:
    CMMI puede ayudarme en la estimación y sustento de tiempos para el desarrollo de productos (nuevos desarrollos y mantenimientos) ?
    Si la respuesta es afirmativa, favor de indicarme la documentacion que debo revisar.
    Saludos
    OS

    ResponderEliminar
  5. RECIBÍ CONSULTA 28/10/2014 ---------------------------------------------------------------------------------------------
    Estimado David Tengo la siguiente consulta: CMMI puede ayudarme en la estimación y sustento de tiempos para el desarrollo de productos (nuevos desarrollos y mantenimientos) ? Si la respuesta es afirmativa, favor de indicarme la documentacion que debo revisar. Saludos OS en.
    RESPONDÍ 28/10/2014 ----------------------------------------------------------------------------------------------------------
    No directamente. El CMMI es un modelo para mejorar, no explica métodos de estimación ni explica cómo estimar. Explica qué actividades realizar para hacer una buena estimación y mejorarla en el tiempo, que en resumen, son:
    1. Definir el alcance, que incluye lista de requerimientos especificados y un WBS, que incluye entregables a proporcionar
    2. Definir el ciclo de vida a usar
    3. Estimar el tamaño
    4. Estimar el esfuerzo y costo documentando la justificación
    5. Elaborar el cronograma y presupuesto
    6. Guardar datos reales en un repositorio de datos históricos
    7. Usar el repositorio de datos históricos para nuevas estimaciones
    8. Calibrar el método de estimación con datos históricos
    9. Usar activos para la planificación de nuevos proyectos
    10. Identificar los riesgos en la estimación y tomarlos en cuenta en la estimación
    Si quieres un método de estimación, el mejor libro es "Estimating Software-Intensive Systems" que explica varios métodos de estimación.
    El método más simple y alineado con el CMMI es el Planning Poker con base en pesos como estimación de tamaño, pero al que hay que añadir los 10 puntos anteriores.
    También puedes usar el método puntos caso de uso si usas especificaciones de caso de uso.
    También puedes inventar tu propio método, lo importante es que lo valides estadísticamente con datos históricos.
    Un método muy riguroso es el que usa Líneas de código y se explica en el PSP (Personal Software Process).
    Saludos.
    Suerte!

    ResponderEliminar
  6. Estimado David
    De la experiencia que tienes, favor de indicarme si hay alguna metrica o porcentaje de tiempo que se debe asignar para realizar la calidad de un producto terminado sea Solución fuente, Documentos de Analisis y Diseño o Documento de Requerimientos.
    Gracias por la respuesta.
    Saludos
    O.S.

    ResponderEliminar
    Respuestas
    1. RECIBÍ CONSULTA 23Febrero2015 -----------------------------------------------------------------------------
      Estimado David
      De la experiencia que tienes, favor de indicarme si hay alguna metrica o porcentaje de tiempo que se debe asignar para realizar la calidad de un producto terminado sea Solución fuente, Documentos de Analisis y Diseño o Documento de Requerimientos.
      Gracias por la respuesta.
      Saludos
      O.S.
      RESPONDÍ 12Abril2015 -----------------------------------------------------------------------------------------------
      Primero aclaro que la calidad debe ser parte de cada proceso del ciclo de vida, es decir, en el proceso de planificación hay actividades de calidad, en el proceso de control y seguimiento hay actividades de calidad, en el proceso de Requerimientos hay actividades de calidad, en el proceso de Análisis y Diseño hay actividades de calidad, en el proceso de Programación hay actividades de calidad y así sucesivamente.
      Por ejemplo en el proceso de requerimientos, las actividades pueden ser:
      i. captura de requerimientos
      ii. análisis de requerimientos
      iii. elaborar la especificación de requerimientos
      iv. revisión de la especificación de requerimientos
      v. verificación de la especificación de requerimientos (esta es una actividad de calidad)
      vi. validación de la especificación de requerimientos (esta es otra actividad de calidad)
      vii. aprobación de la especificación de requerimientos.
      El esfuerzo requerido para verificar y validar un entregable suele estar entre el 1% y el 6% del esfuerzo requerido para elaborar el entregable. Pero es una estadística referencial. Es difícil de sostener que verificar y validar un artefacto cueste igual que construirlo o que cueste el 25% o el 50% del costo de construirlo.
      Recordemos que la verificación la debe realizar un colega de preferencia con más experiencia, conocimientos y acreditaciones en el dominio en cuestión que el autor del entregable. La verificación debe ser realizad por un experto en el negocio, experto quiere decir con muchas experiencia, por ejemplo, más de 10 años de experiencia en los procesos de negocio implicados.

      Si la pregunta es cuánto tiempo se debe estimar para el proceso de testing, recordemos que hay varios niveles de testing. Testing no es la única actividad de calidad, de hecho testing es la actividad más tardía de calidad. Existen las pruebas unitarias, pruebas de integración, pruebas de sistema, pruebas de integración de sistemas (para sistemas complejos) y pruebas de aceptación (que incluyen las pruebas de certificación que hacen los tester independientes además de las pruebas de aceptación de quien valga la redundancia acepta el producto, como por ejemplo el usuario). Realizar sólo pruebas de aceptación como única actividad de calidad es la peor decisión y de hecho estas pruebas NO AÑADEN CALIDAD. Todas las demás actividades previas de verificación, validación y pruebas previas sí.
      Existen diversos libros y estadísticas de industria que señalan que el esfuerzo requerido para las pruebas de aceptación suele ser:
      1. 12% del esfuerzo total del proyecto. (Technische Universiteit Eindhoven, The Netherlands)
      2. Entre el 16% y 29% del esfuerzo total del proyecto. Esto significa cerca del 34% del esfuerzo de ingeniería sin considerar la gestión del proyecto. (Noehm and Turner 2004; Stutzke 2005 y otros)
      Sin embargo esta es una referencia. Y como la industria de software tiene una calidad muy baja, estas estadísticas no significan que eso debe suceder sino que lamentablemente es lo que sucede. Y a pesar que sucede esto, luego del pase a producción o instalación siguen habiendo defectos.

      Espero haber respondido tu consulta.

      Saludos.
      David Arteaga

      Eliminar