Mejora de Procesos de Desarrollo de Software

El Proceso de Mejora

AQpIW+6zPX0uAAAAAElFTkSuQmCC

Administración del Tiempo

Para gestionar su tiempo:

  • Planifique su tiempo
  • Siga el plan

Seguimiento del Tiempo

Se debe saber establecer las tareas que interesa medir. El objetivo es saber el tiempo real que se está gastando. La unidad de medida del tiempo debe ser minutos. No se debe trabajar más de 1 hora seguida.

Planificación

Hay dos clases de planificación:

  • Basada en periodo de tiempo
  • Basada en la actividad o producto

Por ejemplo, leer un libro de 20 capítulos:

  • Estimar el tiempo total: 20 horas
  • Tiempo dedicado: 1 hora a la semana
  • Plan del producto: Leer los 20 capítulos en 20 horas
  • Plan del periodo: La forma de repartir el tiempo de lectura en incrementos semanales de 1 hora

Planificación del Producto

Un plan del producto adecuado requiere:

  • El tamaño y las características más importantes del producto a realizar
  • Una estimación del tiempo requerido para hacer el trabajo
  • Una previsión de la planificación

Algunas definiciones:

  • Producto: Algo que se produce para un cliente
  • Proyecto: Produce un producto
  • Tarea: Elemento de trabajo
  • Proceso: Forma de hacer proyectos
  • Plan: Forma en que un proyecto concreto va a ser hecho: cómo, cuándo y qué costo tendrá
  • Trabajo: Algo que se hace, tanto en un proyecto como en una tarea

El Tamaño del Producto

  1. La planificación del producto no es un proceso exacto.
  2. Para hacer un plan del producto, compare lo que planifica hacer con lo que ha hecho antes.
  3. Pero no todos los problemas son iguales: base las estimaciones en problemas similares.
    1. No sólo en tamaño, el tipo de problema puede variar.
  4. Se usará como medida las líneas de código (LOC).
  5. No siempre las LOC son la mejor medida.

La Gestión de los Compromisos

Un compromiso es algo que alguien espera que hagas.

Para asegurarte de que tus compromisos son responsables y están bien gestionados:

  • Analiza el trabajo antes de aceptar el compromiso.
  • Apoya el compromiso con un plan.
  • Documenta el compromiso.
  • Si eres incapaz de cumplirlo, díselo cuanto antes a la otra parte e intenta minimizar el impacto.

El Proceso de Desarrollo de Software

Un proceso es un conjunto definido de pasos para hacer un trabajo. Cada paso o fase de un trabajo tiene especificados unos criterios de entrada que deben ser satisfechos antes de comenzar la fase. Cada fase tiene unos criterios de salida que deben satisfacerse antes de terminar la fase. Sin dichos datos, no hay forma de saber si se está mejorando o empeorando. El PSP es un marco de trabajo que ayuda a los ingenieros de software a medir y mejorar su forma de trabajar.

Algunas Definiciones

  • Producto: Algo que produces para un colaborador, un empresario o un cliente.
  • Proyecto: Normalmente produce un producto.
  • Tarea: Elemento de trabajo.
  • Proceso: Define la forma de hacer proyectos. Tienen varias fases o pasos: planificación, desarrollo y pruebas. Una fase puede estar compuesta de tareas o actividades.

Puntos de Control y Fases

Los puntos de control ayudan a hacer y controlar las programaciones de los proyectos. Definiendo de forma explícita y clara los puntos de control del proyecto, estos proporcionan puntos de referencia precisos para medir el estado del proyecto mientras se está haciendo el trabajo. Con un proceso definido, cada fase produce un resultado específico y, por lo tanto, la conclusión de una fase es un punto de control medible.

El Guion del Proceso

  • Planificación. Análisis, requisitos.
  • Diseño.
  • Codificación.
  • Compilación y corrección de errores.
  • Pruebas.
  • Post mortem. Se definen las tareas finales que hay que realizar para asegurar que el trabajo ha sido terminado.

Defectos

El término «bug» parece que se refiere a cosas malditas que deben ser aplastadas o ignoradas, lo cual trivializa el problema. Si se llamaran «bombas de efecto retardado», ¿se sentiría la misma sensación de alivio cuando se supiera que tras probar un programa sólo quedan unas pocas?

Calidad del Software

Afecta a los costes de desarrollo, programación de entregas y satisfacción del usuario.

La Economía de Eliminar Defectos

El software de las primeras impresoras láser tenían unas 20,000 LOC, actualmente entorno a 1,000,000 LOC. Los coches actuales tienen software con varios miles de LOC. En MS, 250 ingenieros del sistema NT dedicaron 1 año completo a encontrar y depurar 30,000 defectos: 16 horas por defecto.

Consejos

  • Registrar todos los defectos
  • Hacer mejores modelos, más completos y mejor documentados
  • Utilizar los mejores métodos
  • Utilizar las mejores herramientas

Defectos de Diseño

¿Qué contabilizamos como defectos de diseño? Los defectos introducidos en la fase de diseño. Aquellos tipos de defectos que implican cuestiones de funciones de codificación, lógica, rendimiento y sincronización.

Calidad del Producto

Las pruebas son caras, aunque sea para pequeños programas. Cuanto más complejo es el producto, las pruebas consumen más tiempo y son más caras. También será más costoso encontrar y corregir cada defecto.

Dificultad de Encontrar Errores

Los defectos enmascaran o agravan a otros. Interaccionan y enmascaran síntomas de otros. Es difícil, incluso en programas pequeños, probar todos los caminos lógicos. En sistemas complejos, al probar sólo las condiciones que pensamos más importantes, pasamos por alto muchos defectos. A mayor número de defectos que entran en la fase de pruebas, compilación o revisión, mayor la probabilidad de dejarlos en el producto.

Calidad del Proceso

  1. La medida fundamental de un proceso tiene que ver con el volumen de productos realizados, su calidad, el tiempo y los recursos requeridos para hacer el trabajo.
  2. La tasa de eliminación de defectos disminuye conforme mejora la calidad del producto.

Guion del Proceso PSP

Guion del Proceso PSP
Entradas requeridas
  • La descripción del problema.
  • Tabla Resumen del Plan del Proyecto PSP.
  • Una copia de la lista de comprobación para la revisión de código.
  • Datos de tamaños y tiempos reales de programas anteriores.
  • Cuaderno de Registro de tiempos.
  • Cuaderno de Registro de Defectos
1 Planificación
  • Obtener una descripción de las funciones del programa.
  • Estimar las LOC máx., mín., total requeridas.
  • Determinar los minutos/LOC.
  • Calcular los tiempos de desarrollo máx., mín. y total.
  • Estimar los defectos a introducir y eliminar en cada fase.
  • Escribir los datos del plan en la tabla Resumen del Plan del Proyecto.
  • Anotar el tiempo de planificación en el Cuaderno de Registro de Tiempos.
2 Diseño
  • Diseñar el programa.
  • Anotar el diseño en el formato especificado.
  • Anotar el tiempo de diseño en el Cuaderno de Registro de Tiempos.
3 Codificación
  • Implementar el diseño.
  • Utilizar un formato estándar para introducir el código.
  • Anotar el tiempo de codificación en el Cuaderno de Registro de Tiempos.
4 Revisión de código
  • Revisar completamente el código fuente.
  • Seguir el guion de revisión de código de la lista de comprobación.
  • Corregir y registrar todos los defectos encontrados.
  • Registrar el tiempo de revisión en el Cuaderno de Registro de Tiempos.
5 Compilación
  • Compilar el programa.
  • Corregir y registrar todos los errores encontrados.
  • Anotar el tiempo de revisión en el Cuaderno de Registro de Tiempos.
6 Pruebas
  • Probar el programa.
  • Corregir y registrar todos los errores encontrados.
  • Anotar el tiempo de revisión en el Cuaderno de Registro de Tiempos.
7 Postmortem
  • Corregir y registrar todos los errores encontrados. Completar la tabla Resumen del Plan del Proyecto con los datos de tiempo, tamaño y defectos reales.
  • Revisar los datos de defectos y actualizar la lista de comprobación para la revisión de código.
  • Anotar el tiempo postmortem en el Cuaderno de Registro de Tiempos.
Criterios de salida
  • Programa probado a fondo.
  • Diseño adecuadamente documentado.
  • Lista de comprobación para la revisión de código completa.
  • Listado completo del programa.
  • Resumen del Plan del Proyecto completo.
  • Cuaderno de Registro de tiempos y defectos completos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.