Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Gestiona el riesgo de la producción de software en donde se abordan los posibles peligros, Apuntes de Ingeniería del Software

gestiona el riesgo de la producción de software

Tipo: Apuntes

2022/2023

Subido el 15/11/2023

marilin-de-leon-morga
marilin-de-leon-morga 🇲🇽

1 documento

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
594 Capítulo 22
Gestión de proyectos
La gestión de proyectos de software es una parte esencial de la ingeniería de software. Los
proyectos necesitan administrarse porque la ingeniería de software profesional está sujeta
siempre a restricciones organizacionales de presupuesto y fecha. El trabajo del administrador
del proyecto es asegurarse de que el proyecto de software cumpla y supere tales restriccio-
nes, además de que entregue software de alta calidad. La buena gestión no puede garantizar
el éxito del proyecto. Sin embargo, la mala gestión, por lo general, da como resultado una
falla del proyecto: el software puede entregarse tarde, costar más de lo estimado original-
mente o no cumplir las expectativas de los clientes.
Desde luego, los criterios de éxito para la gestión del proyecto varían de un proyecto
a otro, pero, para la mayoría de los proyectos, las metas importantes son:
1. Entregar el software al cliente en el tiempo acordado.
2. Mantener costos dentro del presupuesto general.
3. Entregar software que cumpla con las expectativas del cliente.
4. Mantener un equipo de desarrollo óptimo y con buen funcionamiento.
Tales metas no son únicas para la ingeniería de software, pero sí lo son para todos los
proyectos de ingeniería. Sin embargo, la ingeniería de software es diferente en algunas
formas a otros tipos de ingeniería que hacen a la gestión del software particularmente
desafiante. Algunas de estas diferencias son:
1. El producto es intangible Un administrador de un astillero o un proyecto de inge-
niería civil pueden ver el producto conforme se desarrolla. Si hay retraso en el calen-
dario, es visible el efecto sobre el producto: es evidente que algunas partes de la
estructura no están terminadas. El software es intangible. No se puede ver ni tocar.
Los administradores de proyectos de software no pueden constatar el progreso con
sólo observar el artefacto que se construye. Más bien, ellos se apoyan en otros para
crear la prueba que pueden utilizar al revisar el progreso del trabajo.
2. Los grandes proyectos de software con frecuencia son proyectos excepcionales
Los grandes proyectos de software se consideran en general diferentes en ciertas for-
mas de los proyectos anteriores. Por eso, incluso los administradores que cuentan con
vasta experiencia pueden encontrar difícil anticiparse a los problemas. Aunado a esto,
los vertiginosos cambios tecnológicos en computadoras y comunicaciones pueden
volver obsoleta la experiencia de un administrador. Las lecciones aprendidas de pro-
yectos anteriores pueden no ser aplicables a nuevos proyectos.
3. Los procesos de software son variables y específicos de la organización El proceso
de ingeniería para algunos tipos de sistema, como puentes y edificios, es bastante
comprendido. Sin embargo, los procesos de software varían considerablemente de
una organización a otra. Aunque se ha producido un notorio avance en la estandari-
zación y el mejoramiento de los procesos, no es posible predecir de manera confiable
cuándo un proceso de software particular conducirá a problemas de desarrollo. Esto
es especialmente cierto si el proyecto de software es parte de un proyecto de ingeniería
de sistemas más amplio.
Debido a estos conflictos, no es sorpresivo que algunos proyectos de software se
retrasen y excedan el presupuesto. A menudo, los sistemas de software son nuevos y
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga Gestiona el riesgo de la producción de software en donde se abordan los posibles peligros y más Apuntes en PDF de Ingeniería del Software solo en Docsity!

594 Capítulo 22 ■ Gestión de proyectos La gestión de proyectos de software es una parte esencial de la ingeniería de software. Los proyectos necesitan administrarse porque la ingeniería de software profesional está sujeta siempre a restricciones organizacionales de presupuesto y fecha. El trabajo del administrador del proyecto es asegurarse de que el proyecto de software cumpla y supere tales restriccio- nes, además de que entregue software de alta calidad. La buena gestión no puede garantizar el éxito del proyecto. Sin embargo, la mala gestión, por lo general, da como resultado una falla del proyecto: el software puede entregarse tarde, costar más de lo estimado original- mente o no cumplir las expectativas de los clientes. Desde luego, los criterios de éxito para la gestión del proyecto varían de un proyecto a otro, pero, para la mayoría de los proyectos, las metas importantes son:

  1. Entregar el software al cliente en el tiempo acordado.
  2. Mantener costos dentro del presupuesto general.
  3. Entregar software que cumpla con las expectativas del cliente.
  4. Mantener un equipo de desarrollo óptimo y con buen funcionamiento. Tales metas no son únicas para la ingeniería de software, pero sí lo son para todos los proyectos de ingeniería. Sin embargo, la ingeniería de software es diferente en algunas formas a otros tipos de ingeniería que hacen a la gestión del software particularmente desafiante. Algunas de estas diferencias son:
  5. El producto es intangible Un administrador de un astillero o un proyecto de inge- niería civil pueden ver el producto conforme se desarrolla. Si hay retraso en el calen- dario, es visible el efecto sobre el producto: es evidente que algunas partes de la estructura no están terminadas. El software es intangible. No se puede ver ni tocar. Los administradores de proyectos de software no pueden constatar el progreso con sólo observar el artefacto que se construye. Más bien, ellos se apoyan en otros para crear la prueba que pueden utilizar al revisar el progreso del trabajo.
  6. Los grandes proyectos de software con frecuencia son proyectos excepcionales Los grandes proyectos de software se consideran en general diferentes en ciertas for- mas de los proyectos anteriores. Por eso, incluso los administradores que cuentan con vasta experiencia pueden encontrar difícil anticiparse a los problemas. Aunado a esto, los vertiginosos cambios tecnológicos en computadoras y comunicaciones pueden volver obsoleta la experiencia de un administrador. Las lecciones aprendidas de pro- yectos anteriores pueden no ser aplicables a nuevos proyectos.
  7. Los procesos de software son variables y específicos de la organización El proceso de ingeniería para algunos tipos de sistema, como puentes y edificios, es bastante comprendido. Sin embargo, los procesos de software varían considerablemente de una organización a otra. Aunque se ha producido un notorio avance en la estandari- zación y el mejoramiento de los procesos, no es posible predecir de manera confiable cuándo un proceso de software particular conducirá a problemas de desarrollo. Esto es especialmente cierto si el proyecto de software es parte de un proyecto de ingeniería de sistemas más amplio. Debido a estos conflictos, no es sorpresivo que algunos proyectos de software se retrasen y excedan el presupuesto. A menudo, los sistemas de software son nuevos y

22.1 ■ Gestión del riesgo 595 técnicamente innovadores. Los proyectos de ingeniería (como los nuevos sistemas de transporte) que son reformadores, normalmente también tienen problemas de calendario. Dadas las dificultades, quizá sea asombroso que tantos proyectos de software ¡se entre- guen a tiempo y dentro del presupuesto! Es imposible efectuar una descripción laboral estándar para un administrador de pro- yecto de software. La labor varía enormemente en función de la organización y el producto de software a desarrollar. No obstante, la mayoría de los administradores, en alguna etapa, toman la responsabilidad de varias o todas las siguientes actividades:

  1. Planeación del proyecto Los administradores de proyecto son responsables de la planeación, estimación y calendarización del desarrollo del proyecto, así como de la asignación de tareas a las personas. Supervisan el trabajo para verificar que se realice de acuerdo con los estándares requeridos y monitorizan el avance para com- probar que el desarrollo esté a tiempo y dentro del presupuesto.
  2. Informes Los administradores de proyectos por lo común son responsables de informar del avance de un proyecto a los clientes y administradores de la compañía que desarrolla el software. Deben ser capaces de comunicarse en varios niveles, desde codificar información técnica detallada hasta elaborar resúmenes administra- tivos. Deben redactar documentos concisos y coherentes que sinteticen información crítica de reportes detallados del proyecto. Es necesario que esta información se presente durante las revisiones de avance.
  3. Gestión del riesgo Los administradores de proyecto tienen que valorar los riesgos que pueden afectar un proyecto, monitorizar dichos riesgos y emprender acciones cuando surjan problemas.
  4. Gestión de personal Los administradores de proyecto son responsables de admi- nistrar un equipo de personas. Deben elegir a los integrantes de sus equipos y esta- blecer formas de trabajar que conduzcan a desempeño efectivo del equipo.
  5. Redactar propuestas La primera etapa en un proyecto de software puede implicar escribir una propuesta para obtener un contrato de trabajo. La propuesta describe los objetivos del proyecto y cómo se realizará. Por lo general, incluye estimaciones de costo y calendarización, además de justificar por qué el contrato del proyecto debe- ría concederse a una organización o un equipo particular. La escritura de propues- tas es una tarea esencial, pues la supervivencia de muchas compañías de software depende de contar con suficientes propuestas aceptadas y concesiones de contratos. Es posible que no haya lineamientos establecidos para esta tarea; la escritura de propuestas es una habilidad que se adquiere a través de práctica y experiencia. En este capítulo nos centraremos en la gestión del riesgo y la gestión de personal. La planeación de proyectos es un tema importante por derecho propio, que se estudia en el capítulo 23.

22.1 Gestión del riesgo

La gestión del riesgo es una de las tareas más sustanciales para un administrador de pro- yecto. La gestión del riesgo implica anticipar riesgos que pudieran alterar el calendario del

22.1 ■ Gestión del riesgo 597 En la figura 22.2 se ilustra una idea general del proceso de gestión del riesgo. Comprende varias etapas:

  1. Identificación del riesgo Hay que identificar posibles riesgos para el proyecto, el producto y la empresa.
  2. Análisis de riesgos Se debe valorar la probabilidad y las consecuencias de dichos riesgos.
  3. Planeación del riesgo Es indispensable elaborar planes para enfrentar el riesgo, evitarlo o minimizar sus efectos en el proyecto.
  4. Monitorización del riesgo Hay que valorar regularmente el riesgo y los planes para atenuarlo, y revisarlos cuando se aprenda más sobre el riesgo. Es preciso documentar los resultados del proceso de gestión del riesgo en un plan de gestión del riesgo. Éste debe incluir un estudio de los riesgos que enfrenta el proyecto, un análisis de dichos riesgos e información de cómo se gestionará el riesgo cuando es probable que se convierta en un problema. El proceso de gestión del riesgo es un proceso iterativo que continúa a lo largo del proyecto. Una vez desarrollado un plan de gestión del riesgo inicial, se monitoriza la situación para detectar riesgos emergentes. Conforme está disponible más información referente a los riesgos, habrá que volver a analizar los riesgos y decidir si cambió la prio- ridad del riesgo. Entonces tal vez sea necesario cambiar los planes para evitar el riesgo y gestionar la contingencia. Riesgo Repercute en Descripción Rotación de personal Proyecto Personal experimentado abandonará el proyecto antes de que éste se termine. Cambio administrativo Proyecto Habrá un cambio de gestión en la organización con diferentes prioridades. Indisponibilidad de hardware Proyecto Hardware, que es esencial para el proyecto, no se entregará a tiempo. Cambio de requerimientos Proyecto y producto Habrá mayor cantidad de cambios a los requerimientos que los anticipados. Demoras en la especificación Proyecto y producto Especificaciones de interfaces esenciales no están disponibles a tiempo. Subestimación del tamaño Proyecto y producto Se subestimó el tamaño del sistema. Bajo rendimiento de las herramientas CASE Producto Las herramientas CASE, que apoyan el proyecto, no se desempeñan como se anticipaba. Cambio tecnológico Empresa La tecnología subyacente sobre la cual se construye el sistema se sustituye con nueva tecnología. Competencia de productos Empresa Un producto competitivo se comercializa antes de que el sistema esté completo. Figura 22.1 Ejemplos de riesgos comunes para el proyecto, el producto y la empresa

598 Capítulo 22 ■ Gestión de proyectos

22.1.1 Identificación del riesgo

La identificación del riesgo es la primera etapa del proceso de gestión del riesgo. Se ocupa de identificar los riesgos que pudieran plantear una mayor amenaza al proceso de ingeniería de software, al software a desarrollar, o a la organización que lo desarrolla. La identificación del riesgo puede ser un proceso de equipo en el que este último se reúne para pensar en posibles riesgos. O bien, el administrador del proyecto, con base en su experiencia, identifica los riesgos más probables o críticos. Como punto de partida para la identificación del riesgo, se recomienda utilizar una lista de verificación de diferentes tipos de riesgo. Existen al menos seis tipos de riesgos que pueden incluirse en una lista de verificación:

  1. Riesgos tecnológicos Se derivan de las tecnologías de software o hardware usadas para desarrollar el sistema.
  2. Riesgos personales Se asocian con las personas en el equipo de desarrollo.
  3. Riesgos organizacionales Se derivan del entorno organizacional donde se desarrolla el software.
  4. Riesgos de herramientas Resultan de las herramientas de software y otro software de soporte que se usa para desarrollar el sistema.
  5. Riesgos de requerimientos Proceden de cambios a los requerimientos del cliente y del proceso de gestionarlos.
  6. Riesgos de estimación Surgen de las estimaciones administrativas de los recursos requeridos para construir el sistema. La figura 22.3 brinda algunos ejemplos de posibles riesgos en cada una de estas categorías. Al concluir el proceso de identificación de riesgos, se tendrá una larga lista de eventualidades que podrían ocurrir y afectar al producto, al proceso y a la empresa. Entonces se necesita reducir esta lista a un tamaño razonable. Si existen demasiados ries- gos, será prácticamente imposible seguir la huella de todos ellos.

22.1.2 Análisis de riesgo

Durante el proceso de análisis de riesgos, hay que considerar cada riesgo identificado y realizar un juicio acerca de la probabilidad y gravedad de dicho riesgo. No hay una forma sencilla de hacer esto. Usted debe apoyarse en su propio juicio y en la experiencia Identificación del riesgo Análisis del riesgo Planeación ante el riesgo Monitorización del riesgo Lista de riesgos potenciales Lista de riesgos prioritarios Planes para evitar el riesgo y de contingencia Valoración del riesgo Figura 22. El proceso de gestión del riesgo

600 Capítulo 22 ■ Gestión de proyectos Boehm (1988) recomienda identificar y monitorizar los 10 riesgos principales, pero considera que esta cifra es más bien arbitraria. El número correcto de riesgos a monitori- zar debe depender del proyecto. Pueden ser cinco o 15. Sin embargo, el número de riesgos elegidos para monitorizar debe ser manejable. Un número de riesgos muy grande requeri- ría recopilar demasiada información. A partir de los riesgos identificados en la figura 22.4, es adecuado considerar los ocho riesgos que tienen consecuencias catastróficas o graves (figura 22.5).

22.1.3 Planeación del riesgo

El proceso de planeación del riesgo considera cada uno de los riesgos clave identificados y desarrolla estrategias para manejarlos. Para cada uno de los riesgos, usted debe considerar las acciones que puede tomar para minimizar la perturbación del proyecto si se produce el problema identificado en el riesgo. También debe pensar en la información que tal vez necesite recopilar mientras observa el proyecto para que pueda anticipar los problemas. Riesgo Probabilidad Efectos Problemas financieros de la organización fuerzan reducciones en el presupuesto del proyecto. (7) Baja Catastrófico Es imposible reclutar personal con las habilidades requeridas. (3) Alta Catastrófico El personal clave está enfermo e indispuesto en momentos críticos. (4) Moderada Grave Los componentes de software de reutilización contienen defectos que hacen que no puedan reutilizarse como se planeó. (2) Moderada Grave Se proponen cambios a los requerimientos que demandan mayor trabajo de rediseño. (10) Moderada Grave La organización se reestructura de modo que diferentes administraciones son responsables del proyecto. (6) Alta Grave La base de datos que se usa en el sistema no puede procesar tantas transacciones por segundo como se esperaba. (1) Moderada Grave Se subestima el tiempo requerido para desarrollar el software. (12) Alta Grave Las herramientas de software no pueden trabajar en una forma integrada. (9) Alta Tolerable Los clientes no entienden las repercusiones de los cambios a los requerimientos. (11) Moderada Tolerable No está disponible la capacitación requerida para el personal. (5) Moderada Tolerable Se subestima la tasa de reparación de defecto. (13) Moderada Tolerable Se subestima el tamaño del software. (14) Alta Tolerable El código elaborado por las herramientas de generación de código de software es ineficiente. (8) Moderada Insignificante Figura 22.4 Tipos de riesgos y ejemplos

22.1 ■ Gestión del riesgo 601 Nuevamente, no hay un proceso simple que pueda seguirse para la planeación de contin- gencias. Se apoya en el juicio y la experiencia del administrador del proyecto. La figura 22.5 muestra posibles estrategias de gestión del riesgo que se identificaron como los principales riesgos (es decir, aquellos que son graves o intolerables) que se incluyen en la figura 22.4. Dichas estrategias se establecen en tres categorías:

  1. Estrategias de evitación Seguir estas estrategias significa que se reducirá la proba- bilidad de que surja el riesgo. Un ejemplo de estrategia de evitación del riesgo es la estrategia de enfrentar los componentes defectuosos que se muestran en la figura 22.5.
  2. Estrategias de minimización Seguir estas estrategias significa que se reducirá el efecto del riesgo. Un ejemplo de estrategia de minimización de un riesgo es la estra- tegia para las enfermedades del personal que se indica en la figura 22.5.
  3. Planes de contingencia Seguir estas estrategias significa que se está preparado para lo peor y se tiene una estrategia para hacer frente a ello. Un ejemplo de estrategia de contingencia es la estrategia para los problemas financieros de la organización que se indica en la figura 22.5. Aquí se observa una clara analogía con las estrategias utilizadas en los sistemas críticos para garantizar fiabilidad, seguridad y protección, cuando hay que evitar, tolerar o recupe- rarse de las fallas. Desde luego, es mejor usar una estrategia que evitar el riesgo. Si esto no es posible, se debe usar una estrategia que reduzca las posibilidades de que el riesgo cause graves efectos. Finalmente, se debe contar con estrategias para enfrentar el riesgo cuando éste surja. Tales estrategias deben reducir el efecto global de un riesgo en el proyecto o el producto. Riesgo Estrategia Problemas financieros de la organización Prepare un documento informativo para altos ejecutivos en el que muestre cómo el proyecto realiza una aportación muy importante a las metas de la empresa y presente razones por las que los recortes al presupuesto del proyecto no serían efectivos en costo. Problemas de reclutamiento Alerte al cliente de dificultades potenciales y de la posibilidad de demoras; investigue la compra de componentes. Enfermedad del personal Reorganice los equipos de manera que haya más traslape de trabajo y, así, las personas comprendan las labores de los demás. Componentes defectuosos Sustituya los componentes potencialmente defectuosos con la compra de componentes de conocida fiabilidad. Cambios de requerimientos Obtenga información de seguimiento para valorar el efecto de cambiar los requerimientos; maximice la información que se oculta en el diseño. Reestructuración de la organización Prepare un documento informativo para altos ejecutivos en el que muestre cómo el proyecto realiza una aportación muy importante a las metas de la empresa. Rendimiento de la base de datos Investigue la posibilidad de comprar una base de datos de mayor rendimiento. Subestimación del tiempo de desarrollo Investigue los componentes comprados; indague el uso de un generador de programa. Figura 22. Estrategias para ayudar a gestionar el riesgo