El desarrollo a velocidad de Internet es un método de desarrollo de software ágil que utiliza un modelo combinado en espiral y en cascada , con compilaciones diarias destinadas a desarrollar un producto a alta velocidad.
Se desarrolló a finales de los noventa debido a la rápida evolución del desarrollo de software. Las empresas tenían dificultades para entregar productos con los requisitos correctos dentro del plazo previsto para el proyecto y, por ello, estaban adoptando métodos de desarrollo de software más ágiles. En el mapa evolutivo del artículo de Abrahamsson se pueden encontrar más detalles sobre el desarrollo del método de velocidad de internet. [ 1 ]
Objetivo del método
El objetivo del método de desarrollo a velocidad de internet es permitir a los desarrolladores de software llevar a cabo un proyecto de forma estructurada, adaptándose a las necesidades del cliente. Busca entregar un producto de software en poco tiempo mediante un desarrollo intensivo. Este método proporciona los medios para entregar un sistema completamente implementado y también permite medir el progreso del proyecto mediante hitos. Una de las principales versiones de este método, creada por Microsoft, se denomina Microsoft Solutions Framework.
Los conceptos detrás del método de desarrollo de velocidad de Internet
El primer concepto fundamental para el desarrollo a velocidad de internet es la creación de una visión y un alcance (gestión de proyectos) . Esto significa que, al inicio del proyecto, se crea una definición global del sistema que explica cuál es su objetivo, qué se incluye en el alcance y qué no. Este es uno de los pasos fundamentales, ya que proporciona a los desarrolladores algunas directrices sobre cómo será el sistema sin fijar ningún requisito. El alcance se puede documentar en una declaración de visión .
Otro concepto fundamental de este método es la gestión del alcance. Es necesario gestionar el alcance a lo largo de todo el proyecto para evitar que se desvíe, lo que ocasiona retrasos. El alcance se definirá con antelación y los cambios (como la adición de funcionalidades que inicialmente se consideraban fuera del alcance del proyecto) se evaluarán y se aceptarán o rechazarán. Si bien es posible modificar el alcance, esto siempre implicará un equilibrio entre funcionalidades, recursos y tiempo.
El método de desarrollo a velocidad de internet difiere notablemente de los métodos tradicionales y, por lo tanto, utiliza principios de la metodología ágil. Se centra en la adaptación a los requisitos y, como tal, se basa en los principios fundamentales del desarrollo ágil de software.
El desarrollo a velocidad de Internet también se centra en el uso de una arquitectura de marco fijo a partir de la cual se construye el producto y depende en gran medida de herramientas para aumentar la velocidad de desarrollo.
Otro concepto fundamental del desarrollo a la velocidad de internet es que también se centra en el uso de equipos pequeños. La idea es que todos los proyectos se puedan dividir en actividades más pequeñas que, a menudo, se pueden realizar en paralelo. Los equipos pequeños suelen estar más concentrados en su tarea y resulta más fácil determinar la responsabilidad y supervisar el progreso del proyecto.
El último concepto tratado en esta entrada sobre desarrollo a velocidad de internet es el desarrollo paralelo. Este concepto implica que todo el desarrollo de software se realice en paralelo siempre que sea posible. Esto permite un desarrollo muy rápido y que los equipos más pequeños se centren en sus propias funcionalidades, lo que repercute positivamente en la calidad. Para garantizar que los equipos colaboren en la creación del sistema final, es necesario sincronizar su desarrollo con frecuencia. Esto se puede lograr mediante compilaciones diarias, en las que todos los desarrolladores suben su código al final del día, tras lo cual se crea una compilación que se evalúa y prueba para monitorizar el progreso. Una vez completada una funcionalidad en la compilación, se debe probar y perfeccionar, proceso que a veces se denomina sincronización y estabilización. Las funcionalidades desarrolladas se sincronizan con la compilación y se prueban. Tras estas pruebas, se corrigen los errores y se perfecciona la funcionalidad para que funcione mejor (lo que constituye la fase de estabilización).
El desarrollo a velocidad de Internet se basa en los principios ágiles y, como tal, tiene muchas similitudes con la Programación Extrema , el Proceso Unificado de Rational , DSDM y el Desarrollo Dirigido por Características . Sin embargo, el desarrollo a velocidad de Internet se diferencia de estos métodos en que también incorpora una planificación de gestión de riesgos más exhaustiva y tiene la calidad como un objetivo muy importante del proyecto. [ 2 ] La fase de desarrollo del desarrollo a velocidad de Internet también muestra algunas similitudes con el modelo de desarrollo de software de código abierto porque muchos desarrolladores de todo el mundo pueden formar parte del proceso de desarrollo gracias a la comunicación a través de Internet y el uso de repositorios para almacenar el código y la documentación.
Las fases del desarrollo de la velocidad de Internet
El modelo subyacente a este método se presenta de la siguiente manera: Figura 1: Modelo de fases. Este modelo muestra las cinco fases básicas del método. Estas fases se explicarán en las siguientes secciones de esta entrada. Las fases son: Visualización, Planificación, Desarrollo, Estabilización e Implementación. Una vez completado este ciclo, una versión del sistema está lista y comienza un nuevo ciclo para crear una nueva versión. Las fases se explican en las siguientes secciones y se muestran mediante una técnica de metamodelado . Más adelante, se pueden encontrar más detalles sobre las multiplicidades y los conceptos en el contexto de un proyecto en el modelo de datos general.
Fase de visualización
La fase de visualización se puede modelar de la siguiente manera: 
Figura 2: Modelo de datos/proceso de la fase de visualización
Tabla 1: Visualización de actividades
Las actividades básicas de la fase de conceptualización consisten en analizar los requisitos, conformar el equipo del proyecto, determinar los riesgos y definir el alcance. A partir de los requisitos y los objetivos del proyecto, se crea un documento de Visión/Alcance. Este documento describe cómo será el producto una vez entregado, pero no incluye funcionalidades muy detalladas.
Tabla 2: Conceptos en la fase de visualización
Fase de planificación
Figura 3: Modelo de datos/proceso de la fase de planificación
Tabla 3: Actividades de planificación. En la fase de planificación, se crea una especificación funcional a partir de los requisitos. Las funcionalidades seleccionadas se incluyen en esta especificación (a menudo se utiliza el método MoSCoW para priorizar las funcionalidades). Asimismo, en esta fase se elabora el diseño y la planificación básicos. Sin embargo, el diseño no se considera definitivo en esta fase, ya que pueden realizarse cambios durante la fase de desarrollo.
Tabla 4: Conceptos en la fase de planificación
Fase de desarrollo
Figura 4: Modelo de datos/proceso de la fase de desarrollo
Tabla 5: Actividades de desarrollo. La actividad más importante en la fase de desarrollo es la creación de funcionalidades. Además de la implementación de estas funcionalidades, en esta fase también se define el alcance. Durante el desarrollo, se pueden añadir nuevas funcionalidades al producto, pero una vez definido el alcance, estas se consolidan y quedan listas para su prueba y estabilización. La infraestructura también se desarrolla en esta fase, lo que implica la identificación de las estructuras de red y la definición de servidores, como por ejemplo un servidor de base de datos .
Tabla 5: Conceptos en fase de desarrollo
fase de estabilización
Figura 5: Modelo de proceso/datos de la fase de estabilización
Tabla 6: Actividades de estabilización. Las actividades principales son la prueba y la resolución de errores. Una vez que una versión de compilación se considera lo suficientemente estable para una prueba piloto, se crea y despliega dicha versión. A partir de esta prueba piloto, se vuelve al ciclo de pruebas/estabilización o se aprueba y revisa.
Tabla 7: Conceptos en la fase de estabilización
fase de despliegue
Figura 6: Modelo de datos/proceso de la fase de despliegue
Tabla 8: Actividades de despliegue. La actividad principal en la fase de despliegue es la instalación de la infraestructura necesaria para el funcionamiento del producto (despliegue de servidores, etc.). Asimismo, se finalizan y transfieren los documentos al departamento de operaciones y soporte, se crea una base de conocimientos y el cliente (si corresponde) y el equipo del proyecto revisan el producto y el proyecto.
Tabla 9: Conceptos en la fase de despliegue
Modelo de datos general
Figura 7: Modelo de datos general Este modelo de datos muestra todos los conceptos con multiplicidades y relaciones en un contexto de proyecto completo.
Herramientas para su uso con el desarrollo a velocidad de Internet
- Herramientas de dibujo (ejemplos: Microsoft Visio , Rational Rose, Dia ) para crear diagramas.
- Procesadores de texto (ejemplos: Microsoft Word, OpenOffice.org Writer, AbiWord , Calligra Words ) Para crear documentos de texto como una declaración de visión o un documento de alcance.
- Hojas de cálculo (ejemplos: Microsoft Excel , OpenOffice.org Calc, Gnumeric , Calligra Sheets ) para crear listas de riesgos priorizadas y realizar cálculos de costes.
- Herramientas de proyecto (ejemplos: Microsoft Project , OpenProj , Gnome Planner, Calligra Plan ) Para planificar las actividades del proyecto.
- Herramientas de bases de datos y gestión de bases de datos (ejemplos: MS SQL Server, MySQL , Oracle, PostgreSQL ) para la creación de bases de conocimiento.
- Herramientas de prueba automatizadas (ejemplos: scripts de prueba) para ejecutar pruebas después de cada compilación diaria.
Véase también
Notas
- ↑ Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003
- ↑ Como se muestra en el artículo de Zuser, Heil y Grechening.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Libro Blanco de Soluciones de Microsoft, junio de 2002
- 1 2 3 4 Documento técnico sobre la disciplina de gestión de riesgos de Microsoft
Referencias
- Microsoft, junio de 2002. Marco de soluciones de Microsoft (Libro blanco). Prensa de Microsoft.
- Microsoft, junio de 2002, Disciplina de gestión de riesgos de MSF v.1.1 (Libro blanco) Microsoft Press
- Wolfgang Zuser, Stefan Heil, Thomas Grechenig 2005 Desarrollo y aseguramiento de la calidad del software en RUP, MSF y XP: un estudio comparativo Actas del taller de 2005 sobre calidad del software
- Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003 Nuevas direcciones en métodos ágiles: un análisis comparativo CISE
- Michael A. Cusumano, David B. Yoffie 1999 Desarrollo de software en Internet Time 32 IEEE
- Balasubramaniam Ramesh, Jan Pries-Heje 2002 Ingeniería de software para Internet: una clase diferente de procesos Anales de ingeniería de software 14 169–195
- Arquitectura de software