Riesgos en El Desarrollo de Software

22
UNIVERSIDAD DE ORIENTE. NUCLEO MONAGAS. ESCUELA DE ING. DE SISTEMAS. ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACIÓN.

Transcript of Riesgos en El Desarrollo de Software

Riesgos en el Desarrollo de Software

UNIVERSIDAD DE ORIENTE.NUCLEO MONAGAS.ESCUELA DE ING. DE SISTEMAS.ANALISIS Y DISEO DE SISTEMAS DE INFORMACIN.

Prof. (Ing.) Jess Chaparro. Bachilleres: Lpez, Diego C.I: 18.272.530. Mrquez, Alfredo CI: 18.272.015. Quijada, Paola C.I: 18.079.032. Maturn, Julio de 2010.

ndice.ContenidoPg.

Introduccin.01

Riesgo Asociado a un Proyecto de Software.02

Clasificacin del Riesgo.03

Factores de Riesgos.04

Anlisis de Riesgos.06

Planificacin de Riesgos.07

Componentes del Riesgo.09

Evaluacin de Riesgos.09

Supervisin de Riesgos.10

Gestin de Riesgos.10

Conclusin.11

Referencias Bibliogrficas.12

Riesgos en el Desarrollo de Software

Introduccin.Los riesgos en el desarrollo de software son eventos o condicin incierta que, en caso de ocurrir, tiene un efecto positivo o negativo sobre los objetivos de un proyecto. Un riesgo tiene una causa y, si ocurre (evento de riesgo), una consecuencia (efecto).Habitualmente se gestionan los riesgos con efecto negativo, es decir, aquellos que suponen una amenaza para el xito del proyecto.La funcin de la gestin de riesgos del software es identificar, estudiar y eliminar las fuentes de riesgo antes de que empiecen a amenazar la finalizacin satisfactoria de un proyecto software. Dependiendo del momento en que se detecta la ocurrencia del riesgo, existen cinco niveles de gestin de riesgos que son:I. Control de crisis: intentar controlar los riesgos cuando ya se han convertido en problemas.II. Arreglar cada error: reaccionar rpidamente cuando ya se ha producido el riesgo.III. Mitigacin de riesgos: planificar con antelacin el tiempo que necesitara para cubrir riesgos en caso de que ocurran, pero sin intentar eliminarlos inicialmente.IV. Prevencin: crear y ejecutar, como parte del proyecto software, un plan para identificar riesgos y evitar que se conviertan en problemas.V. Eliminacin de causas principales: identificar y eliminar los factores que pueden provocar la presencia de algn tipo de riesgo.Los riesgos del proyecto amenazan al plan del proyecto; es decir, si los riesgos del proyecto se hacen realidad, es probable que la planificacin temporal del proyecto se retrase y que los costes aumenten. Los riesgos del proyecto identifican los problemas potenciales de presupuesto, planificacin temporal, personal (asignacin y organizacin), recursos, cliente y requisitos y su impacto en un proyecto de software.

Riesgo Asociado a un Proyecto de Software.El riesgo se define, segn La Real Academia, como la contingencia o proximidad de un dao. En base a esto la Fuerza Area Estadounidense, establece que el riesgo es la forma de expresar la incertidumbre a lo largo del ciclo de vida de un proyecto, la probabilidad de que en un punto del ciclo de vida no se alcancen los objetivos propuestos con los recursos disponibles. Obviamente, adems de esta incertidumbre, tambin interesaran las circunstancias en las que se producen los riesgos, los factores o causas que los desencadenan, y los efectos producidos en situaciones en las que no se tuvo en cuenta la existencia de los mismos.En sntesis, se puede decir de manera ms clara que los riesgos son la posibilidad de que un sistema deje de realizar, por alguna razn, aquellas funciones para las cuales fue diseado; es decir que deje de cumplir con sus objetivos. Teniendo en cuenta esta posibilidad de desastre el analista de sistema debe crear un plan que permita visualizar los posibles riesgos que se pudieran suscitar en un futuro, lejano o cercano, y a su vez reducir los efectos de estos riesgos sobre el sistema y su entorno. En tal sentido, el anlisis de riesgos equivale al estudio de las incertidumbres y por su parte, la respuesta de los riesgos se refiere a la toma de decisiones que hagan mnimos sus efectos. Existen tres conceptos fundamentales, postulados por el Dr. Robert Charette, que nos permiten definir los riesgos en el campo del desarrollo de software, los cuales se mencionan a continuacin:1. Afecta al futuro, es decir, Cules son los riesgos que podran hacer que el proyecto informtico fracasara?2. Se centra en los cambios, es decir, Cmo afectarn al xito global y a los plazos los cambios en los requisitos del cliente, en las tecnologas de desarrollo, en las maquinas destino y en todas las dems entidades relacionadas con el proyecto?3. Precisa de una seleccin entre distintas alternativas, es decir, Qu mtodos y herramientas debemos usar, cuanta gente deber estar involucrada en el proyecto, qu importancia hay que darle a la calidad?(Charette, 1989).Basados en estas tres premisas, es fcil ver que a la hora de realizar un proyecto de software debemos tener en cuenta que existen eventualidades que en un futuro podran sacar a dicho proyecto de su funcin vital, por lo cual se deben analizar todas estas posibles eventualidades y sus efectos tanto en el proyecto como en su entorno y a su vez se tiene que crear un plan de emergencia que permita, por medio del estudio de distintas alternativas, eliminar o minimizar los posibles daos que ocurran en el sistema y la organizacin.Clasificacin del Riesgo.La identificacin del riesgo es un intento sistemtico para especificar las amenazas al plan del proyecto. Cuando se analizan los riesgos es importante cuantificar el nivel de incertidumbre y el grado de prdidas asociados con cada riesgo; para hacerlo, se consideran diferentes categoras de riesgos. As de esta manera, al identificar los riesgos conocidos y predecibles, el gerente del proyecto da un paso adelante para evitarlos cuando sea posible y controlarlos cuando sea necesario. La siguiente lista engloba los riesgos, que posee mayor nmero de probabilidad de ocurrir en un proyecto de software, tomando en cuenta los criterios establecidos por muchos investigadores en el campo de anlisis y gestin de riesgo. Segn el conocimiento sobre ellos, los riesgos pueden ser: Conocidos: en este caso basta con una cuidadosa evaluacin del plan del proyecto para que sean descubiertos. Predecibles: son aquellos que se pueden extrapolar de la experiencia de proyectos anteriores. Impredecibles: estos pueden ocurrir, pero son extremadamente difciles de identificar por adelantado. Segn la cobertura, los riesgos pueden ser: Genricos: son la amenaza para todos los proyectos de software. Especficos: son aquellos con la tecnologa, el personal y el entorno especfico del proyecto en cuestin. Segn el rea que amenazan, los riesgos pueden ser: Del proyecto: amenaza los recursos o al plan del proyecto en general. Tcnicos: amenaza la calidad y/o el desempeo del software en desarrollo. Del negocio: amenazan la viabilidad del software a construir y a la organizacin que desarrolla el software. Segn la relacin con el equipo del proyecto, los riesgos pueden ser: Internos: se encuentran relacionados con situaciones que el equipo de proyecto puede controlar o influenciar. Externos: son aquellos que estn ms all del control o influencia del equipo del proyecto. Segn su naturaleza, los riesgos pueden ser: Especulativos: estos son dinmicos, ya que tienen asociados tanto prdidas como ganancias. Puros: estos son estticos, ya que tienen asociados solo prdidas potenciales.Factores de Riesgos.Los factores de riesgo son los elementos que determinan el riesgo; en tal sentido su medicin y monitorizacin determinan el grado de acercamiento al riesgo. Por cada riesgo es necesario identificar los factores que lo determinan. Uno de los principales factores de riesgo es la asuncin, debido a que si un analista de sistema asume que su diseo es infalible, al dar esto por sentado, propicia un gran margen de riesgos, de all proviene la frase, la asuncin es el principio del desastre; por otra parte tambin cabe la posibilidad de que un riesgo puede ser, a su vez, factor de riesgo en otros riesgos. Al considerar los factores de riesgo se debe analizar por completo todos los aspectos relacionados con todo el proceso de desarrollo de software y puesta en marcha del mismo, sin dejar a un lado el funcionamiento continuo del software.Muchos investigadores y trabajos sobre desarrollo de software, proponen una serie de factores de riesgos, en la siguiente tabla se encuentran algunas de estas propuestas:

Factor.Propuesta.

Boehm. Lista de riesgo segn los accionistas (BOEHM, B 1991).

Factor 1Falta de personal calificado.

Factor 2Itinerarios y presupuestos poco realistas.

Factor 3Desarrollo incorrecto de las funciones del software.

Factor 4Desarrollo incorrecto de las interfaces de usuario.

Factor 5Adicin de caractersticas de funciones o caractersticas innecesarias.

Factor 6Cambios constantes en los requerimientos

Factor 7Fallas en los componentes subcontrolados.

Factor 8Pobre calidad de las tareas subcontroladas.

Factor 9Fallas en tiempo real de respuesta.

Factor 10Inhabilidad para implementar soluciones tcnica debido a la pobre capacidad de conocimiento en las ciencias de la computacin.

Barki. Evaluacin de riesgos en proyectos de desarrollo de software (BARKI 1993).

Factor 1Tecnolgico.

Factor 2Tamao de la aplicacin.

Factor 3Falta de experiencia.

Factor 4Complejidad de la aplicacin.

Factor 5Ambiente organizacional.

SEI. Taxonoma para riesgos de desarrollo de software (CARR et al. 1993).

Ingeniera del producto.

Factor 1Requerimientos.

Factor 2Diseo.

Factor 3Codificacin y prueba unitaria.

Factor 4Integracin y prueba.

Factor 5Especialidades de la ingeniera.

Entorno de desarrollo.

Factor 1Proceso de desarrollo.

Factor 2Sistema de desarrollo.

Factor 3Proceso de gestin.

Factor 4Mtodos de gestin.

Factor 5Entorno de trabajo.

Restricciones del proyecto.

Factor 1Recursos.

Factor 2Contrato.

Factor 3Interfaces del proyecto.

Jones. Factores de riesgos relevantes en el desarrollo de software (JONES 1996).

Factor 1Estimacin y planeacin inexacta de itinerarios.

Factor 2Reportes de estatus incorrectos y optimistas.

Factor 3Presiones externas que daan los proyectos.

Estves y Pastor. Factores estratgicos y organizacionales (ESTEVES y PASTOR 2000).

Factores estratgicos.

Factor 1Apoyo continuo de la alta direccin.

Factor 2Gestin efectiva del cambio organizacional.

Factor 3Buena gestin del mbito del proyecto.

Factor 4Composicin adecuada del equipo del proyecto.

Factor 5Rediseo adecuado de los procesos del negocio.

Factor 6Papel adecuado del lder del proyecto.

Factor 7Implicacin y participacin de los usuarios.

Factor 8Confianza entre actores.

Factores tcticos.

Factor 1Equipo y consultores dedicados.

Factor 2Comunicacin interna y externa.

Factor 3Plan formalizado del proyecto.

Factor 4Programa de formacin adecuado.

Factor 5Precisin de problemas inesperados.

Factor 6Uso adecuado de consultores.

Factor 7Responsables debidamente autorizados.Resumen de factores de riesgos en proyectos de desarrollo de software.

Anlisis de Riesgos.ste, es el proceso mediante el cual podemos identificar los posibles riesgos que podran llegar a afectar nuestro desarrollo; durante este proceso, se considera por separado cada riesgo identificado y se decide acerca de la probabilidad y la seriedad del mismo. No existe una forma fcil de hacer esto, ya que por un lado recae en la opinin y experiencia del gerente del proyecto y por otro no se hace una valoracin con nmeros precisos sino en intervalos, como se muestra a continuacin: La probabilidad del riesgo se puede valorar como muy baja (< 10%), baja (1025%), moderada (2550%), alta (5075%) o muy alta (> 75%). Los efectos del riesgo pueden ser valorados como catastrfico, serio, tolerable o insignificante.

El resultado de este proceso de anlisis se debe colocar en una tabla, la cual debe estar ordenada segn la seriedad del riesgo, como la que se muestra a continuacin:Riesgo.Probabilidad del Riesgo.Efecto del Riesgo.

Los problemas financieros de la organizacin fuerzan a reducir el presupuesto del proyecto.Baja.Catastrfico.

Es imposible reclutar personal con las habilidades requeridas para el proyecto.Alta.Catastrfico.

El personal clave est enfermo y no disponible en momentos crticos.Moderada.Serio.

Los componentes del software que deben reutilizarse contienen defectos que limitan su funcionalidad.Moderada.Serio.

Se proponen cambios en los requerimientos que requieren rehacer el diseo.Moderada.Serio.

La organizacin de reestructurar de tal forma que cambia el grupo de gestin.Alta.Serio.

La base de datos que se utiliza en el sistema no puede procesar muchas transacciones por segundo como se esperaba.Moderada.Serio.

El tiempo requerido para desarrollar el software est subestimado.Alta.Serio.

Las herramientas CASE no se pueden integrar.Alta.Tolerable.

Los clientes no comprenden el impacto de los cambios en los requerimientos.ModeradaTolerable.

La capacitacin solicitada para el personal no est disponible.ModeradaTolerable.

La tasa de reparacin de los defectos est subestimada.ModeradaTolerable.

El tamao del software est subestimado.Alta.Tolerable.

Es ineficiente el cdigo generado por las herramientas CASE.Moderada.Insignificante.

Anlisis de Riesgo.

Planificacin de Riesgos.El proceso de planificacin o respuesta de riesgo considera cada uno de los riesgos clave que han sido identificados, as como las estrategias para gestionarlos; nuevamente, no existe un proceso sencillo que nos permita establecer los planes de gestin de riesgo, debido a que, depende del juicio y la experiencia del lder del administrador del proyecto. Las estrategias que nos permiten manejar los riesgos pueden ser divididas en las siguientes tres categoras:1. Estrategias de Prevencin: siguiendo estas estrategias, la probabilidad de que el riesgo aparezca se reduce.2. Estrategias de Minimizacin: siguiendo estas estrategias, se reducir el impacto del riesgo.3. Planes de Contingencia: seguir estas estrategias es estar preparado para lo peor y tener una estrategia para cada caso.Comprendiendo la funcin que cumple cada una de estas estrategias es considerable pensar lo que como analistas debemos hacer a la hora de estudiar un sistema crtico; para asegurar fiabilidad, proteccin y seguridad, pues bsicamente lo mejor es usar una estrategia para evitar el riesgo. Si esto no es posible, utilizar una para reducir los efectos serios; y finalmente, tener estrategias para reducir el impacto del riesgo en el proyecto y en el producto. Para comprender esto de manera ms clara utilizaremos los riesgos de la tabla anterior, y as ejemplificar algunas de estas estrategias en la siguiente tabla:RiesgoEstrategia

Problemas financieros de la organizacinPreparar un breve para el gerente principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Problemas de reclutamiento.Alertar al cliente de las dificultades potenciales y los posibles retrasos, investigar la compra de componentes.

Enfermedad de personal.Reorganizar el equipo de tal manera que haya solapamiento en el trabajo y las personas comprendan el de los dems.

Componentes defectuosos.Reemplazar los componentes defectuosos con los comprados de fiabilidad conocida.

Cambios de los requerimientos.Rastrear la informacin para valorar el impacto de los nuevos requerimientos; maximizar la informacin oculta en ellos.

Reestructuracin organizacional.Preparar un documento breve para el gerente principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Rendimiento de la base de datos.Investigar la posibilidad de comprar una base de datos de alto rendimiento.

Tiempo de desarrollo subestimado.Investigar los componentes comprados y la utilizacin de un generador de programas.Estrategias de Gestin de Riesgo.

Componentes del Riesgo.La Fuerza Area de Estados Unidos, ha redactado un documento que facilita la identificacin de los posibles riesgos en el desarrollo de software y a evitarlos, en este documento se describen cuatro criterio llamados componentes del riesgo que permiten la estimacin de la probabilidad de riesgo de forma ms sencilla, estos componentes son: Riesgo de rendimiento: es el grado de incertidumbre con el que el producto encontrar sus requisitos y se adecue para su empleo pretendido. Riesgo de coste: es el grado de incertidumbre que mantendr el presupuesto del proyecto. Riesgo de soporte: es el grado de incertidumbre de la facilidad del software para corregirse, adaptarse y ser mejorado. Riesgo de la planificacin temporal: es el grado de incertidumbre con que se podr mantener la planificacin temporal y de que el producto se entregue a tiempo.Evaluacin de Riesgos.Una vez que hemos determinado la probabilidad y la los efectos de los riegos, pasamos a esta fase de evaluacin que no es ms que una etapa donde seguiremos examinando la exactitud de las estimaciones durante las etapas anteriores, tambin se intentar dar prioridad a los riesgos que no se hayan cubierto y se comenzar a pensar en maneras de controlar o impedir aquellos riesgos que posean mayor probabilidad de ocurrencia. Obviamente, para que la evaluacin del riesgo sea til, habr que definir un nivel de referencia de riesgo; para la mayora de los proyectos, los componentes de riesgo representan estos niveles tpicos de referencia de riesgo. Esto quiere decir que existir un nivel de exceso de coste, de dificultades de soporte, de retraso sobre la planificacin temporal, o de degradacin de rendimiento, que provoque la conclusin inmediata del proyecto. Por tanto, si cualquier combinacin de estos riesgos crea una serie de problemas de manera que uno o ms de estos niveles de referencia se vean excedidos, deber interrumpirse el trabajo.En definitiva, durante la evaluacin de riesgo, se realizaran las siguientes cuatro actividades bsicas:1. Definir los niveles de referencia de riesgo para el proyecto.2. Intentar realizar una relacin entre el riesgo, la probabilidad de riesgo, el efecto de riesgo y cada uno de los niveles de referencia.3. Predecir el conjunto de puntos de ruptura que definan la regin de abandono o finalizacin del proyecto.4. Intentar predecir cmo afectarn las combinaciones compuestas de riesgos a un cierto nivel de referencia.Supervisin de Riesgos.La supervisin de riesgos valora cada uno de los riesgos identificados para decidir si este es ms o menos probable y si han cambiado sus efectos. Por supuesto, esto no se puede observar de forma directa, por lo que se tienen que buscar otros factores para dar indicios de la probabilidad de riesgo. La supervisin de riesgo debe ser un proceso continuo y, en cada revisin del progreso de gestin, cada uno de los riesgos clave debe ser considerado y analizado por separado.Gestin de Riesgos.La gestin o manejo de riesgos no es ms que la reunin de todas estas tcnicas y estrategias antes descritas, con la intencin de permitirle al analista y/o diseador de sistemas crear un plan de contingencia, para as poder solventar cualquier eventualidad que pudiese, en un futuro, afectar el proyecto y su entorno, dicho plan debe ser creado asumiendo que los esfuerzos de control, reduccin o erradicacin han fracasado y que el riesgo se ha convertido en una realidad, es decir una probabilidad del 100%. Esto nos asegura que nuestro plan de emergencia podr solventar toda amenaza que atente contra nuestro proyecto, o por lo menos la mayora de ellas.

Conclusin.Cuando se pone mucho en juego en un proyecto de software el sentido comn nos aconseja realizar un anlisis de riesgo. El tiempo invertido identificando, analizando y gestionando el riesgo merece la pena por muchas razones: menos trastornos durante el proyecto, una mayor habilidad de seguir y controlar el proyecto y la confianza que da planificar los problemas antes de que ocurran.El anlisis de riesgos puede absorber una cantidad significativa del esfuerzo de planificacin del proyecto pero es de suma importancia realizarlo ya que de esta manera estaramos al tanto de las consecuencias a tiempo para comprender y a gestionar la incertidumbre. Un proyecto de software puede estar lleno de problemas. Un riesgo es un problema potencial puede ocurrir o no. Pero sin tener en cuenta el resultado, realmente es una buena idea identificarlo, evaluar su probabilidad de aparicin, estimar su impacto, y establecer un plan de contingencia por si ocurre el problema.

Referencias Bibliogrficas. Sommerville, Ian. Ingeniera del software. 7ma Ed. Madrid: Pearson Educacin S.A, 2005. Snchez G, Jos S. Ingeniera de proyectos informticos: actividades y procedimientos. 5ta Ed. Universitad 2003. Internet: http://ajajax.blogspot.com/2008/01/el-riesgo-de-las-suposiciones-en-el.html http://www.revistaciencias.com/publicaciones/EElkuyFZuAkrUVZhMc.php http://www.rae.es/rae.html