Internet-Speed Development es un método de desarrollo de software ágil que utiliza un modelo combinado en espiral / modelo en cascada con compilaciones diarias destinadas a desarrollar un producto con alta velocidad.
Fue desarrollado a finales de los noventa porque el desarrollo de software estaba cambiando rápidamente. Las empresas tenían problemas para entregar productos con los requisitos correctos dentro del tiempo programado para el proyecto y, por lo tanto, estaban cambiando a métodos de desarrollo de software más ágiles. Se pueden ver más detalles sobre cómo se desarrolló el método de la velocidad de Internet en el mapa evolutivo en el artículo de Abrahamsson. [1]
Ideas principales detrás del desarrollo de la velocidad de Internet
A menudo, uno de los mayores problemas en la ingeniería de software es que los requisitos cambian rápidamente y se creó el método de desarrollo a la velocidad de Internet para adaptarse a esta situación. La idea es combinar dos estándares principales en modelos de ingeniería de software, a saber, el modelo en espiral y el modelo en cascada en un nuevo modelo y basar un nuevo método de ingeniería de software en este nuevo modelo. La principal desventaja del modelo en cascada era que era muy rígido y poco flexible a la hora de cambiar los requisitos, mientras que la desventaja del modelo en espiral era que no estaba muy estructurado. La idea detrás del desarrollo de la velocidad de Internet es que la combinación de estos modelos dará como resultado un método que no tiene estas desventajas y es un método mejor para usar en situaciones en las que los requisitos pueden cambiar rápidamente, pero el proyecto debe ejecutarse de manera estructurada. camino.
Objetivo del método
El objetivo del método de desarrollo a la velocidad de Internet es permitir que los desarrolladores de software realicen un proyecto de manera estructurada, pero aún así puedan adaptarse a las necesidades del cliente. Su objetivo es entregar un producto de software en poco tiempo mediante un desarrollo intensivo. El método proporciona un medio para entregar un sistema completamente implementado y también tiene formas de determinar el progreso en un proyecto mediante el uso de hitos. Una de las versiones principales de este método es creada por Microsoft y se llama Microsoft Solutions Framework.
Los conceptos detrás del método de desarrollo a la velocidad de Internet
El primer concepto que es muy importante para el desarrollo a la velocidad de Internet es la creación de una visión y un alcance (gestión de proyectos) . Lo que esto significa es que al inicio del proyecto se crea una definición global del sistema que explica qué pretende ser el sistema y qué está dentro del alcance y qué no. Este es uno de los pasos fundamentales, ya que brinda a los desarrolladores algunas pautas sobre cómo será el sistema sin congelar ningún requisito. El alcance se puede documentar en una declaración de visión .
Otro concepto muy importante dentro de este método es la gestión del alcance. El alcance debe administrarse a lo largo del proyecto para evitar que el alcance se arrastre, lo que resulta en retrasos. El alcance se determinará con anticipación y los cambios en el alcance (como agregar características adicionales que en un principio se consideraron más allá del alcance del proyecto) serán evaluados y aceptados o rechazados. Se pueden realizar cambios en el alcance, pero esto siempre se verá afectado por las compensaciones entre características, recursos y tiempo.
El método de desarrollo a la velocidad de Internet es muy diferente de los métodos tradicionales y, por lo tanto, utiliza los principios del método ágil. Se centra en la adaptación a los requisitos y, como tal, se basa en los principios básicos del desarrollo de software ágil.
El desarrollo a la 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 se basa en gran medida en herramientas para aumentar la velocidad de desarrollo.
Otro concepto básico del desarrollo de 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 más pequeños a menudo pueden estar más enfocados en su tarea y es más fácil determinar la responsabilidad y monitorear el progreso dentro del proyecto.
El último concepto discutido en esta entrada de desarrollo a velocidad de Internet es el concepto de desarrollo paralelo. Este concepto básicamente significa que todo el desarrollo de software se realiza en paralelo con la mayor frecuencia posible. Esto permitirá un desarrollo muy rápido y permitirá que los equipos más pequeños se centren en su propia característica tanto como sea posible, lo que tiene un buen resultado en la calidad. Sin embargo, para garantizar que los equipos más pequeños trabajen juntos para crear el sistema final, es necesario sincronizar su desarrollo con frecuencia. Esto se puede hacer usando compilaciones diarias, lo que significa que todos los desarrolladores verifican su código al final del día después del cual se crea una compilación que luego se puede evaluar y probar para monitorear el progreso. Una vez que se completa una función en la compilación, se debe probar y refinar, lo que a veces se denomina proceso de sincronización y estabilización. Las funciones desarrolladas se sincronizan con la compilación y se prueban. Después de estas pruebas, se corregirán los errores y la función se puede refinar para que funcione mejor (que es la parte de estabilización).
El desarrollo de la velocidad de Internet se basa en los principios ágiles y, como tal, tiene muchas similitudes con Extreme Programming , Rational Unified Process , DSDM y Feature Driven Development . Sin embargo, el desarrollo a la velocidad de Internet es diferente de estos métodos, ya que también incorpora una planificación de gestión de riesgos más amplia y tiene la calidad como un objetivo muy importante de un proyecto. [2] La fase de desarrollo del desarrollo a la velocidad de Internet también muestra algunas similitudes con el modelo de desarrollo de software de código abierto porque muchos desarrolladores en todo el mundo pueden ser parte del proceso de desarrollo debido a la comunicación a través de Internet y el uso de repositorios para almacenar el código y documentación.
Las fases del desarrollo a la velocidad de Internet
El modelo detrás de este método se ve así: Figura 1: Modelo de fase 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 ver más detalles sobre multiplicidades y 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: Proceso de fase de visualización / modelo de datos
Actividad | Definición (fuente) |
---|---|
Analizar requisitos | Durante la fase de visualización, se deben identificar y analizar los requisitos comerciales. "Estos se refinan con más rigor durante la fase de planificación". (Modelo de proceso de MSF) [3] |
Definir metas y restricciones | "Visualizar, mediante la creación de una vista de alto nivel de los objetivos y limitaciones del proyecto". (Modelo de proceso de MSF) [3] |
Formar equipo | Formación del equipo central. |
Crear visión / alcance | "La preparación y entrega de un documento de visión / alcance". (Modelo de proceso de MSF) [3] |
Crear evaluación de riesgos | "Durante la fase de visualización, el equipo prepara un documento de riesgos y presenta los principales riesgos". (Modelo de proceso de MSF) [3] |
Tabla 1: Visualización de actividades
Las actividades básicas que se realizan en la fase de concepción son analizar los requisitos, formar el equipo para el proyecto, determinar los riesgos y el alcance del proyecto. A partir de los requisitos y las metas del proyecto se crea un documento de Visión / Alcance. Este documento describe lo que será el producto cuando se entregue. No contiene funcionalidades muy detalladas del producto.
Concepto | Definición (fuente) |
---|---|
DOCUMENTO DE VISIÓN / ALCANCE | "Documento que define la Visión y el Alcance". (Modelo de proceso de MSF) [3] |
VISIÓN | "La visión es una visión ilimitada de lo que puede ser una solución". (Modelo de proceso de MSF) [3] |
ALCANCE | "El alcance identifica la (s) parte (s) de la visión que se pueden lograr dentro de las limitaciones del proyecto". (Modelo de proceso de MSF) [3] |
DOCUMENTO DE EVALUACIÓN DE RIESGOS | "Documento estandarizado para la evaluación de riesgos" (Disciplina de gestión de riesgos de MSF) [4] |
LISTA DE RIESGOS PRIORIZADOS | "La información de riesgo detallada que incluye la condición del proyecto, el contexto, la causa raíz y las métricas utilizadas para la priorización (probabilidad, impacto, exposición) a menudo se registra para cada riesgo en el formulario de declaración de riesgo". (Disciplina de gestión de riesgos de MSF) [4] |
PLANIFICACIÓN DE RIESGOS | "Traducción de la lista de riesgos priorizados en planes de acción". (Disciplina de gestión de riesgos de MSF) [4] |
DOCUMENTO DE ESTRUCTURA DEL PROYECTO | “El documento de estructura del proyecto incluye información sobre cómo está organizado el equipo y quién desempeña qué roles y tiene responsabilidades específicas. El documento de estructura del proyecto también aclara la cadena de responsabilidad ante el cliente y los puntos de contacto designados que el equipo del proyecto tiene con el cliente. Estos pueden variar según las circunstancias del proyecto ”. (Modelo de proceso de MSF) [3] |
ORGANIZACIÓN DEL EQUIPO | "Información sobre cómo está organizado el equipo". (Modelo de proceso de MSF) [3] |
PUNTOS DE CONTACTO | "Puntos de contacto designados que el equipo del proyecto tiene con el cliente". (Modelo de proceso de MSF) [3] |
ROLES DEL EQUIPO | "Definición de quién desempeña qué roles y tiene responsabilidades específicas". (Modelo de proceso de MSF) [3] |
Tabla 2: Conceptos en la fase de visualización
Fase de planeamiento
Figura 3: Proceso de la fase de planificación / modelo de datos
Actividad | Definición (fuente) | |
---|---|---|
Definir requisitos | Al principio de la fase de planificación, el equipo analiza y documenta requisitos en una lista o herramienta. Los requisitos se dividen en cuatro categorías generales: requisitos comerciales, requisitos del usuario, requisitos operativos y requisitos del sistema (los de la solución en sí) ". (Modelo de proceso de MSF) [3] | |
Requisitos de seguimiento a características | “A medida que el equipo avanza en el diseño de la solución y crea las especificaciones funcionales, es importante mantener la trazabilidad entre los requisitos y las características. La trazabilidad no tiene por qué ser uno a uno. Mantener la trazabilidad sirve como una forma de verificar la corrección del diseño y de verificar que el diseño cumple con los objetivos y requisitos de la solución ”. (Modelo de proceso de MSF [3] | |
Definir especificación funcional | "El equipo prepara la especificación funcional". (Modelo de proceso de MSF [3] | |
Crear planificación | Estimación de riesgos | El equipo crea una estimación de riesgo. |
Costo estimado | El equipo crea una estimación de costos. | |
Crea planes de trabajo | El equipo crea planes de trabajo. | |
Crear horarios | El equipo crea horarios. | |
Crear diseño | Crear modelo de caso de uso | “Esto comienza con un análisis sistemático de los perfiles de usuario (también llamados "personas") que describen varios tipos de usuarios y sus funciones laborales (el personal de operaciones también son usuarios). Mucho de esto se hace a menudo durante la fase de visualización. Estos se dividen en una serie de escenarios de uso , donde un tipo particular de usuario intenta completar un tipo de actividad, como registrarse en la recepción de un hotel o administrar contraseñas de usuario para un administrador del sistema. Finalmente, cada escenario de uso se divide en una secuencia específica de tareas, conocidas como casos de uso , que el usuario realiza para completar esa actividad. A esto se le llama "storyboarding" ". (Modelo de proceso de MSF [3] |
Crear diseño conceptual | Creación de un diseño conceptual. | |
Crear diseño lógico | Creación de un diseño lógico. | |
Crear diseño físico | Creación de un diseño físico. | |
Crear Arquitectura | Creación de la arquitectura del producto. |
Tabla 3: Actividades de planificación En la fase de planificación, se crea una especificación funcional a partir de los requisitos. Las características seleccionadas se incluyen en esta especificación (a menudo se usa un método MoSCoW para las características, de modo que se puedan priorizar más fácilmente). Además, el diseño y la planificación básicos se crean en esta fase. Sin embargo, el diseño no está congelado en esta fase, ya que se pueden realizar cambios en la fase de desarrollo.
Concepto | Definición (fuente) |
---|---|
LISTA DE REQUISITOS | Documentación de requisitos en una lista o herramienta ". (Modelo de proceso de MSF [3] |
PLAN DE GESTIÓN DE RIESGOS | Documento sobre cómo el equipo planea implementar el proceso de gestión de riesgos dentro del contexto del proyecto ". (Disciplina de gestión de riesgos de MSF [4] ) |
PLAN MAESTRO DEL PROYECTO | Todas los planes se sincronizan y se presentan juntos como el plan maestro del proyecto ". (Modelo de proceso de MSF [3] |
PLANES DE TRABAJO | Un plan o planes para los entregables que pertenecen al rol y participa en las sesiones de planificación del equipo ". (Modelo de proceso de MSF [3] |
COSTE ESTIMADO | Una estimación de los costos del proyecto. |
HORARIOS | Estimaciones de tiempo y cronogramas de entregables ". (Modelo de proceso de MSF [3] |
HORARIO DEL PROYECTO MAESTRO | La Luego, varios programas se sincronizan e integran en un programa maestro del proyecto ". (Modelo de proceso de MSF [3] |
ESPECIFICACION FUNCIONAL | La La especificación funcional describe en detalle cómo debe verse y comportarse cada característica. También describe la arquitectura y el diseño de todas las funciones ". (Modelo de proceso de MSF [3] |
Tabla 4: Conceptos en la fase de planificación
Fase de desarrollo
Figura 4: Proceso de la fase de desarrollo / modelo de datos
Actividad | Definición (fuente) |
---|---|
Desarrollar características | Construcción de componentes de la solución (documentación y código) ". (Modelo de proceso de MSF) [3] También incluye pruebas después de la compilación diaria, corrección de errores y evaluación de las funciones. |
Crear compilación diaria | Creación de una construcción después de una jornada laboral. |
Finalizar alcance | En este hito, todas las funciones están completas y la solución está lista para pruebas externas y estabilización ". (Modelo de proceso de MSF) [3] |
Desarrollar infraestructura | La infraestructura está desarrollada ”. (Modelo de proceso de MSF) [3] |
Tabla 5: Actividades de desarrollo La actividad más importante en la fase de desarrollo es el desarrollo de las características. Además de la implementación de estas características, el alcance también se finaliza en esta fase. Durante el desarrollo, se pueden agregar nuevas características al producto, pero una vez que se finaliza el alcance, las características se congelan y están listas para probarse y estabilizarse. La infraestructura también se desarrolla en esta fase, lo que significa que se identifican las estructuras de red y se definen servidores como, por ejemplo, un servidor de base de datos.
Concepto | Definición (fuente) |
---|---|
GUIONES DE INSTALACIÓN Y AJUSTES DE CONFIGURACIÓN PARA LA IMPLEMENTACIÓN | Una colección de scripts y configuraciones necesarias para que el producto se instale / ejecute. |
GUIONES DE INSTALACIÓN | Los scripts necesarios para instalar el producto. |
AJUSTES DE CONFIGURACIÓN | Las propiedades de configuración del producto. |
ELEMENTOS DE APOYO AL RENDIMIENTO | Elementos que apoyan el rendimiento del producto (bases de datos adicionales, servidores, etc.). |
ESPECIFICACIONES DE PRUEBA Y CASOS DE PRUEBA | Especificación de las pruebas y casos de prueba utilizados para validar el producto. |
ESPECIFICACION FUNCIONAL | La especificación funcional describe en detalle cómo debe verse y comportarse cada característica. También describe la arquitectura y el diseño de todas las funciones ". (Modelo de proceso de MSF) [3] |
CÓDIGO FUENTE Y EJECUTABLES | La combinación de código fuente / ejecutables. |
CÓDIGO FUENTE | El código fuente del producto. |
EJECUTABLE | El ejecutable creado por el código fuente. |
Tabla 5: Conceptos en fase de desarrollo
fase de estabilización
Figura 5: Modelo de datos / proceso de la fase de estabilización
Actividad | Definición (fuente) |
---|---|
Pruebas | Las pruebas durante esta fase enfatizan el uso y la operación en condiciones ambientales realistas ". (Modelo de proceso de MSF) [3] |
Resolver errores | El equipo se centra en resolver y clasificar (priorizar) errores y preparar la solución para su lanzamiento ". (Modelo de proceso de MSF) [3] |
Implementar piloto | Una vez que una compilación se ha considerado lo suficientemente estable como para ser candidata a lanzamiento, la solución se implementa en un grupo piloto ". (Modelo de proceso de MSF) [3] |
Revisar | Una vez revisada y aprobada, la solución está lista para su implementación completa en el entorno de producción en vivo ". (Modelo de proceso de MSF) [3] |
Tabla 6: Actividades de estabilización Las principales actividades son la prueba y resolución de errores. Una vez que una versión de compilación se considera lo suficientemente estable para un piloto, se crea e implementa una versión piloto. A partir de este piloto, volverá al circuito de prueba / estabilización o será aprobado y revisado.
Concepto | Definición (fuente) |
---|---|
RESULTADOS DE PRUEBAS Y HERRAMIENTAS DE PRUEBA | Recopilación de resultados de pruebas y herramientas utilizadas para las pruebas. |
RESULTADOS DE LA PRUEBA | Resultados de pruebas ejecutadas. |
HERRAMIENTAS DE PRUEBA | Herramientas utilizadas para realizar pruebas. |
LIBERACIÓN DE ORO | La versión utilizada para la revisión final. |
NOTAS DE LANZAMIENTO | Notas para una versión de lanzamiento. |
CÓDIGO FUENTE Y EJECUTABLE | La combinación de código fuente / ejecutables. |
CÓDIGO FUENTE | El código fuente del producto. |
EJECUTABLE | El ejecutable creado por el código fuente. |
REVISIÓN DEL HITO | Revisión de la versión final y los documentos del proyecto. |
DOCUMENTOS DEL PROYECTO | Colección de todos los documentos del proyecto. |
Tabla 7: Conceptos en fase de estabilización
fase de despliegue
Figura 6: Modelo de datos / proceso de la fase de implementación
Actividad | Definición (fuente) |
---|---|
Implementar los componentes principales | Despliegue de todos los componentes necesarios para el producto (como servidores de bases de datos, servidores de correo, etc.) |
Implemente la solución en el sitio | Para sistemas hechos a medida, la implementación del producto ocurre aquí (se puede omitir para productos de software). |
Estabilizar el despliegue | Seguimiento, seguimiento y mejora de los componentes desplegados. |
Transferir el proyecto a operaciones y soporte | Transferir todos los documentos y códigos al equipo de operaciones y soporte. |
Obtenga la aprobación final del cliente | El cliente debe aceptar que el equipo ha cumplido sus objetivos antes de poder declarar que la solución está en producción y cerrar el proyecto. Esto requiere una solución estable, así como criterios de éxito claramente establecidos. Para que la solución se considere estable, se deben establecer operaciones y sistemas de apoyo adecuados ". (Modelo de proceso de MSF) [3] |
Revisa el proyecto | Revisión final del proyecto. |
Tabla 8: Actividades de implementación La actividad principal en la fase de implementación es la instalación de la infraestructura necesaria para ejecutar el producto (implementación de servidores, etc.). Además, los documentos se finalizan y se transfieren 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.
Concepto | Definición (fuente) |
---|---|
PROCEDIMIENTOS Y PROCESOS | Colección de trámites y procesos. |
PROCEDIMIENTOS | Colección de procedimientos que se utilizarán para la instalación y operación del producto. |
PROCESOS | Colección de procesos que se utilizarán para la instalación y operación del producto. |
BASE DE CONOCIMIENTOS, INFORMES, LIBROS DE REGISTRO | Recopilación de la base de conocimientos, informes y bitácoras. |
BASE DE CONOCIMIENTOS | La base de conocimientos asociada con el producto. |
INFORMES | Los informes asociados con el producto. |
LIBROS DE REGISTRO | Cuadernos de registro asociados al producto. |
REPOSITORIO DE DOCUMENTOS | Un repositorio de todos los documentos. |
VERSIONES FINALES DE TODOS LOS DOCUMENTOS DEL PROYECTO | Las versiones finales de los documentos del proyecto. |
SISTEMAS DE INFORMACIÓN DE FUNCIONAMIENTO Y SOPORTE | Sistemas utilizados por los equipos de operación y soporte asociados al producto. |
DATOS DE SATISFACCIÓN DEL CLIENTE / USUARIO | Recogida de datos del cliente / usuario sobre su satisfacción con el producto. |
DEFINICIÓN DE PRÓXIMOS PASOS | Descripción de los próximos pasos a seguir para la evolución del producto. |
INFORME DE CIERRE DEL PROYECTO | Informe final del producto, proyecto y transferencia a operaciones y soporte. |
Tabla 9: Conceptos en la fase de implementación
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 usar con desarrollo a velocidad de Internet
- Herramientas de dibujo (ejemplos: Microsoft Visio, Rational Rose, Dia ) Para hacer diagramas.
- Procesadores de texto (ejemplos: Microsoft Word, OpenOffice.org Writer, AbiWord , Calligra Words ) Para hacer 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 hacer listas de riesgos priorizados y realizar cálculos de costos.
- Herramientas de proyecto (ejemplos: Microsoft Project, OpenProj , Gnome Planner, Calligra Plan ) Para planificar actividades de proyectos.
- Base de datos y herramientas de administración de bases de datos (ejemplos: MS SQL Server, MySQL , Oracle, PostgreSQL ) Para hacer bases de conocimiento.
- Herramientas de prueba automatizadas (ejemplos: scripts de prueba) Para ejecutar pruebas después de cada compilación diaria.
Ver también
- Desarrollo Ágil de Software
- Desarrollo incremental e iterativo
- Marco de soluciones de Microsoft
- Método de desarrollo de sistemas dinámicos (DSDM)
- Método MoSCoW
Notas
- ^ Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003
- ^ Como se muestra en el artículo de Zuser, Heil y Grechening.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad Documento técnico de Microsoft Solutions, junio de 2002
- ^ a b c d Informe técnico de la disciplina de gestión de riesgos de Microsoft
Referencias
- Microsoft Junio de 2002 Marco de soluciones de Microsoft (informe técnico) Microsoft Press
- Microsoft, junio de 2002, disciplina de gestión de riesgos de MSF v.1.1 (informe técnico) Microsoft Press
- Wolfgang Zuser, Stefan Heil, Thomas Grechenig 2005 Desarrollo y aseguramiento de la calidad del software en RUP, MSF y XP - Actas de un estudio comparativo del taller de 2005 sobre calidad del software
- Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003 Nuevas direcciones sobre métodos ágiles: un análisis comparativo ICSE
- 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 de Internet: una clase diferente de procesos Annals of Software Engineering 14 169-195