Existen dos tipos de riesgo:
Riesgos genéricos Representan una amenaza potencial para todos los proyectos de software. |
Riesgos específicos Implican un conocimiento profundo del proyecto (Entorno, Tecnología, Personal)
|
Lista de comprobación de elementos de riesgo
Es un método que permite identificar riesgos, por medio de las siguientes categorías:
Relacionados con el tamaño del producto |
Se asocian los riesgos con el tamaño del software a construir o desarrollar. · Tamaño estimado del proyecto (LOC/PF) · Confianza en la estimación · Numero de programas, archivos y transacciones · Tamaño relativo al resto de proyectos · Tamaño de la base de datos · Número de usuarios · Número de cambios de requerimientos previstos antes y después de la entrega · Cantidad de software reutilizado |
Con el impacto en la organización |
Asociados con las limitaciones impuestas por la gestión. · Efecto del producto en la cifra de ventas · Visibilidad desde la dirección de la organización · Fecha límite de entrega razonable · Número de clientes que usarán el producto · Numero de productos con los que deberá interaccionar · Sofisticación del usuario final · Cantidad y calidad de la documentación a entregar al cliente · Límites legales y gubernamentales · Costos asociados al retraso en la entrega · Costos asociados a errores en el producto |
Con el tipo de cliente |
Asociados con la comunicación del cliente. · Hay experiencias anteriores con dicho cliente · Tiene una idea clara de lo que precisa · Está dispuesto a dedicar tiempo en la especificación formal de requerimientos · Está dispuesto a relacionarse de forma ágil con el equipo de desarrollo · Está dispuesto a participar en la revisiones · Es un usuario experto · Dejará trabajar al equipo de desarrollo sin dar consejos deexperto informático · Entiende el ciclo de vida de una aplicación |
Con la definición del proceso de producción |
Asociados al proceso y seguimiento del software. · Hay una política clara de normalización y seguimiento de una metodología · Existe una metodología escrita para el proyecto · Se ha utilizado en otros proyectos · Están los gestores y desarrolladores formados · Conoce todo el mundo los estándares · Existen plantillas y modelos para todos los documentos resultado del proceso · Se aplican revisiones técnicas de la especificación de requerimientos diseño y codificación · Se aplican revisiones técnicas de los procedimientos de revisión y prueba · Se documentan los resultados de las revisiones técnicas · Hay algún mecanismos para asegurar que un proceso de desarrollo sigue los estándares · Se realiza gestión de la configuración · Hay mecanismos para controlar los cambios en los requerimientos que tienen impacto en el software · Se documenta suficientemente cada subcontrato · Se ha habilitado y se siguen mecanismos de seguimiento y evaluación técnica de cada subcontrato. · Se dispone de técnicas de especificación de aplicaciones para facilitar la comunicación con el cliente. · Se usan métodos específicos para análisis de software · Se utiliza un método específico para el diseño arquitectónico y de datos · Está el 90% del código en lenguajes de alto nivel · Hay standards de documentación de código · Se usan métodos específicos para el diseño de pruebas · Se utilizan herramientas para llevar a cabo la planificación y control |
Con el entorno de desarrollo |
Asociados a las herramientas que se van a utilizar en el desarrollo del software · Hay herramientas de gestión de proyectos · Hay herramientas de gestión del proceso de desarrollo · Hay herramientas de análisis y diseño · Hay generadores de código apropiados para la aplicación · Hay herramientas de prueba apropiadas · Hay herramientas de gestión de configuración apropiadas · Se hace uso de una base de datos o repositorio centralizado · Están todas las herramientas de desarrollo integradas · Se ha proporcionado formación a todos los miembros del equipo de desarrollo · Hay expertos a los cuales solicitar ayuda acerca de las herramientas · Hay ayuda en línea y documentación disponible |
Con la tecnología |
Asociados con la tecnología a utilizar y la complejidad del sistema · Se trata de una tecnología nueva en la organización · Se requieren nuevos algoritmos o tecnología de I/O · Se debe interactuar con hardware nuevo · Se debe interactuar con software que no ha sido probado · Se debe interactuar con un B.D. cuya funcionalidad y rendimiento no ha sido probada · Es requerido un interface de usuario especializado · Se necesitan componentes de programa radicalmente diferentes a los hasta ahora desarrollados · Se deben utilizar métodos nuevos de análisis, diseño o pruebas · Se deben utilizar métodos de desarrollo no habituales, tales como métodos formales, Inteligencia Artificial o redes neuronales · Se aplican requisitos de rendimiento especialmente estrictos · Existen dudas de que el proyecto sea realizable |
Con la experiencia técnica |
Asociados a la experiencia de los ingenieros de desarrollo de software. · Es el mejor personal disponible · Tienen los miembros las técnicas apropiadas · Hay suficiente gente disponible · Está el personal comprometido en toda la duración del proyecto · Habrá parte del personal dedicado solamente en parte al proyecto · Tiene el personal las expectativas correctas del trabajo · Tiene el personal la necesaria formación · Puede la rotación del personal perjudicar el proceso de desarrollo |