Gestión de desarrollo de software

La gestión de desarrollo de software ( ing. Gestión de  proyectos de software ) es un tipo especial de gestión de proyectos , dentro del cual se lleva a cabo la planificación, el seguimiento y el control de los proyectos de desarrollo de software . La clave para gestionar un proyecto de desarrollo de software es elegir el método de desarrollo adecuado.

Principales diferencias con otros tipos de gestión de proyectos

Historia

Causas

Debido al rápido aumento en el poder de las computadoras en los años 60 y 70 del siglo XX , los problemas que podían resolverse con su ayuda se hicieron más difíciles. Por lo tanto, se requerían proyectos más grandes , que incluían coordinar el trabajo de más personas y escribir mucho más código . Sin embargo, los métodos utilizados para administrar dichos proyectos fueron diseñados para enfrentar los desafíos de proyectos mucho más pequeños. La falta de la metodología necesaria ha llevado a un gran número de proyectos fallidos. Los intentos por mejorar la situación llevaron a la creación de un nuevo modelo del proceso de desarrollo , centrándose más en la conformidad del producto de software final con los requisitos originales del cliente .

Mayor desarrollo

Los estudios de proyectos fallidos han demostrado que las causas más comunes de fracaso fueron: [1]

  1. Objetivos del proyecto irrealizables o poco claros
  2. Error de cálculo de los recursos necesarios
  3. Requisitos del sistema definidos incorrectamente
  4. Falta de conocimiento del gerente del proyecto sobre el estado exacto del proyecto.
  5. Riesgos no gestionados
  6. Débil interacción entre el cliente, el desarrollador y el usuario.
  7. Usar tecnologías demasiado nuevas e inestables
  8. Incapacidad para hacer frente a las complejidades del proyecto.
  9. Gestión de proyectos débil
  10. Restricciones financieras

Desde entonces, se han introducido varias mejoras a los métodos ya existentes ( enfoque iterativo ) y completamente nuevos ( desarrollo basado en pruebas ) para gestionar el desarrollo de software. Sin embargo, hoy en día existe una tendencia a pasar de un modelo en cascada a un modelo cíclico que imita las etapas del desarrollo de software .

Métodos básicos de desarrollo de software

GOST

GOST 19 "Sistema unificado de documentación de software" [2] y GOST 34 "Estándares para el desarrollo de sistemas automatizados" [3] se centran en un enfoque coherente para el desarrollo de software. El desarrollo de acuerdo con estos estándares se lleva a cabo en etapas, cada una de las cuales implica la implementación de un trabajo estrictamente definido. El cumplimiento estricto de estos GOST conduce a un modelo en cascada. Sobre la base de estos estándares, los sistemas de software se están desarrollando para órdenes gubernamentales en Rusia.

SW-CMM

Este modelo fue desarrollado a mediados de la década de 1980 por el Instituto de Ingeniería de Software de la Universidad Carnegie Mellon para crear un modelo de referencia para organizar el desarrollo de software. Se basa en verificar el cumplimiento de ciertos requisitos por parte de la organización y determinar el nivel de madurez del proceso de desarrollo de software.

RUP

El Proceso Unificado fue desarrollado por Rational Software como un complemento al UML . El modelo RUP describe un proceso general abstracto, sobre la base del cual una organización o un equipo de proyecto debe crear un proceso especializado específico centrado en sus necesidades.

MSF

Microsoft Solutions Framework se basa en el desarrollo iterativo. Una característica especial de MSF es la gran atención a la creación de un equipo eficiente y no burocrático.

PSP /TSP

El Proceso de software personal define los requisitos de competencia del desarrollador para que pueda adquirir las habilidades necesarias para el Proceso de software de equipo. Team Software Process en combinación con Personal Software Process se basa en equipos autogestionados de 3 a 20 personas. Los equipos deben:

Ágil

La idea básica detrás de todos los modelos ágiles es que el proceso de desarrollo de software debe ser adaptativo. Su objetivo es centrarse en las personas y sus interacciones, en lugar de procesos y herramientas. Todos los modelos flexibles se basan en la iteración, la incrementalidad, la autogestión del equipo y la adaptabilidad de los procesos.

Procesos relacionados en la gestión de proyectos

El proceso de gestión de un proyecto de desarrollo de software incluye otros procesos más específicos destinados a la toma de determinadas decisiones empresariales. Muchos de ellos se pueden aplicar a otro tipo de proyectos. Por ejemplo:

Planificación, seguimiento y control del proyecto

Filosofía

En general, la gestión del desarrollo de software, que tiene muchos préstamos de la gestión de proyectos, se puede aplicar a los métodos de la gestión tradicional . Sin embargo, debido a la singularidad de la industria, la experiencia de los profesionales acumulada en la producción de materiales y establecida, por ejemplo, en el estándar PMI PMBOK , contribuye poco al éxito en la gestión de un proyecto de software. Hay muchas opiniones sobre qué conocimientos y habilidades debe tener un gerente de proyecto de desarrollo de software. Por ejemplo, el famoso informático estadounidense John Reynolds escribió:

Algunos argumentan que es posible administrar la creación de software sin tener conocimientos de programación . Esta confianza parece provenir de la idea errónea de que el desarrollo de software es una forma de producción. Pero la producción es la creación de objetos idénticos que se repiten, mientras que la producción de software es la creación de objetos únicos, es decir, es una de las formas de la creatividad . Por lo tanto, la producción de software es similar a la publicación :  un gerente de desarrollo de software que no sabe programar es como el editor de un periódico que no sabe escribir.

Texto original  (inglés)[ mostrarocultar] "Algunos argumentan que uno puede gestionar la producción de software sin la capacidad de programar. Esta creencia parece surgir de la visión errónea de que la producción de software es una forma de fabricación. Pero la fabricación es la construcción repetida de objetos idénticos, mientras que la producción de software es la construcción de objetos únicos, es decir, todo el proceso es una forma de diseño.

Véase también

Notas

  1. IEEE Archivado el 21 de diciembre de 2011 Artículo de Wayback Machine de Robert N. Charette en inglés "Por qué falla el software"
  2. [1] Copia de archivo fechada el 24 de noviembre de 2010 en Wayback Machine ESPD en el sitio web de FSUE Standartinform
  3. [2] Copia de archivo del 11 de abril de 2012 en Wayback Machine GOST 34 en rugost.com

Literatura

Enlaces

Enlace roto