Interpretación del desarrollo de software ágil a través de la experiencia personal (1) ¿Qué es el desarrollo de software ágil?
El desarrollo ágil toma la evolución de las necesidades del usuario como núcleo y adopta un enfoque iterativo y paso a paso para el desarrollo de software. En el desarrollo ágil, el proyecto de software se divide en múltiples subproyectos en las primeras etapas de construcción. Los resultados de cada subproyecto se prueban y tienen las características de ser visibles, integrados y operativos. En otras palabras, un proyecto grande se divide en varios proyectos pequeños que están interrelacionados pero que también pueden ejecutarse de forma independiente y completarse por separado. Durante este proceso, el software siempre está en un estado utilizable.
Valores
Los valores del Modelado Ágil (AM) incluyen los cuatro valores de XP (Programación Extrema: Programación Extrema): comunicación, sencillez, retroalimentación, coraje, en Además, también amplió un quinto valor: la humildad.
Internet es una red mágica y el marco del software también es un modelo. Si realmente quieres hacerlo, puedes venir aquí. El número inicial de esta habilidad es 187 y el número del medio es 3er0. , y el último número es 3er0.14250, puedes encontrarlo combinándolos en orden. Lo que quiero decir es que, a menos que quieras hacerlo o entender el contenido, si solo te unes a la diversión, no lo hagas. venir.
El desarrollo ágil es un nuevo modelo de desarrollo que surge de las deficiencias del modelo de desarrollo en cascada tradicional. El objetivo es mejorar la eficiencia y la capacidad de respuesta del desarrollo. Además de los principios y las prácticas, los patrones también son muy importantes. Estudiar los patrones y sus aplicaciones puede brindarle una comprensión más profunda del desarrollo ágil.
Comunicación
El modelado no solo puede promover la comunicación entre los desarrolladores dentro de su equipo, sino también promover la comunicación entre su equipo y las partes interesadas de su proyecto.
Simple
Dibuje uno o dos diagramas en lugar de docenas o incluso cientos de líneas de código. De esta manera, el modelado se convierte en la clave para simplificar el software y los procesos (de desarrollo) de software. Esto es muy importante para los desarrolladores: es simple, fácil de descubrir nuevas ideas y fácil de mejorar a medida que se profundiza su comprensión (del software).
Comentarios
Kent Beck lo dijo muy bien en Extreme Programming Explicación: "El exceso de confianza es la enfermedad ocupacional de la programación, y la retroalimentación es su prescripción. Comunique usted a través de gráficos. Puede obtener retroalimentación". rápidamente sus ideas y pueda actuar según las sugerencias.
Humildad
Los mejores desarrolladores poseen la virtud de la humildad, reconociendo que no lo saben todo. De hecho, tanto los desarrolladores como los clientes, e incluso todas las partes interesadas del proyecto, tienen sus propias áreas de especialización y pueden contribuir al proyecto. Un enfoque eficaz es asumir que todos los involucrados en el proyecto tienen el mismo valor y deben ser respetados.
Principios
El modelado ágil (AM) define una serie de principios básicos y auxiliares que forman la piedra angular de las prácticas de modelado en proyectos de desarrollo de software. Algunos de estos principios se han tomado prestados de XP y se describen en detalle en Explicación de la programación extrema. Algunos de los principios de XP se derivan de una conocida ingeniería de software. ¡Las ideas de reutilización se pueden encontrar en todas partes! Básicamente, la explicación de estos principios en este artículo se centra en cómo afectan el trabajo de modelado. De esta manera, podemos ver estos principios tomados de XP desde otra perspectiva;
Principios básicos
◆Defienda la simplicidad
Cuando trabaje en desarrollo, debe argumentar que la solución más simple es la mejor. No sobreconstruyas
desarrollo ágil
(sobreconstruyas) tu software. En términos de AM, si no necesita esta funcionalidad adicional ahora, no la agregue al modelo. Tenga el coraje: no necesita sobremodelar el sistema ahora. Sólo necesita modelarlo en función de los requisitos existentes y luego reconstruir el sistema cuando los requisitos cambien en el futuro. Mantenga el modelo lo más simple posible.
◆Acepte el cambio
Las necesidades cambian todo el tiempo y la comprensión que las personas tienen de las necesidades también cambia todo el tiempo.
A medida que avanza el proyecto, las partes interesadas del proyecto pueden cambiar: nuevas personas se unen y las antiguas se van. Las opiniones de las partes interesadas del proyecto también pueden cambiar, y los objetivos y criterios de éxito de sus esfuerzos también pueden cambiar. Esto significa que a medida que avanza el proyecto, el entorno del proyecto cambia constantemente, por lo que sus métodos de desarrollo deben poder reflejar esta realidad.
◆Su segundo objetivo es la sostenibilidad
Incluso si su equipo ha entregado un sistema que funciona a los usuarios, su proyecto aún puede fallar - - Satisfacer las necesidades de los inversores del proyecto, incluido el de su sistema debe ser lo suficientemente robusto como para adaptarse a una futura expansión. Como suele decir Alistair Cockburn, cuando estás en una competencia de desarrollo de software, tu segundo objetivo es prepararte para la próxima competencia. La sostenibilidad puede referirse a la próxima versión importante del sistema o al funcionamiento y soporte del sistema que está construyendo. Para hacer esto, no solo debe crear software de alta calidad, sino también crear suficiente documentación y materiales de soporte para garantizar que el próximo juego se pueda jugar de manera efectiva. Debes considerar muchos factores, incluido si tu equipo actual aún puede participar en el próximo juego, el entorno del próximo juego y la importancia del próximo juego para tu organización. En pocas palabras, cuando te estás desarrollando, debes poder imaginar el futuro.
◆Cambio incremental
Un concepto importante relacionado con el modelado es que no es necesario tener todo listo desde el principio. De hecho, incluso si quisieras hacer esto, es poco probable. Además, no es necesario que incluyas todos los detalles en tu modelo, solo necesitas los suficientes. No es necesario intentar construir un modelo que lo abarque todo al principio. Simplemente puede desarrollar un modelo pequeño, o un modelo resumido, para sentar las bases y luego mejorarlo lentamente o descartarlo cuando ya no sea necesario. . Ésta es la idea de incremento.
◆Maximizar la inversión
Para desarrollar un software que satisfaga sus necesidades, los inversores de su proyecto necesitan invertir tiempo, dinero, equipos y otros recursos. Los inversores deberían poder elegir la mejor forma de invertir y también pueden pedirle a su equipo que no desperdicie recursos. Además, todavía tienen la última palabra a la hora de decidir cuántos recursos invertir. Si estos recursos son suyos, ¿quiere que se hagan mal uso de sus recursos?
◆Modelado intencionado
Para sus propios resultados, como modelos, código fuente y documentos, muchos desarrolladores se preocupan por si son lo suficientemente detallados o demasiado detallados. Sea detallado o preocúpese por si son lo suficientemente correctos. No deberías modelar inútilmente, primero deberías preguntarte por qué quieres crear este resultado y para quién quieres hacerlo. En relación con el modelado, tal vez debería saber más sobre un determinado aspecto del software. Tal vez para garantizar el buen progreso del proyecto, necesite comunicar sus métodos a los altos directivos. Tal vez necesite crear documentos que describan el sistema. que otros puedan operarlo, mantener y mejorar el sistema. Si ni siquiera sabes por qué modelas y para quién, ¿por qué deberías seguir preocupándote? Primero, debe determinar el propósito del modelado y la audiencia del modelo. Sobre esta base, asegúrese de que el modelo sea correcto y lo suficientemente detallado. Una vez que un modelo logra sus objetivos, puede dejar de trabajar y pasar a otras tareas, como escribir código para probar el funcionamiento del modelo. Este principio también se puede aplicar para cambiar un modelo existente: si se va a cambiar algo, tal vez un patrón familiar, se deben tener las razones correctas para realizar el cambio (tal vez para respaldar un nuevo requisito o para reestructurar el modelo). estructurado para garantizar la simplicidad). Una implicación importante de este principio es que debes conocer a tu audiencia, incluso si esa audiencia eres tú mismo. Por ejemplo, si está creando un modelo para mantenedores, ¿qué necesitan exactamente? ¿Es suficiente un documento detallado de 500 páginas o es suficiente una descripción general del trabajo de 10 páginas? ¿No lo sabes? Ve a hablar con ellos y descubre lo que quieres.
◆Múltiples modelos
El desarrollo de software requiere el uso de múltiples modelos, porque cada modelo solo puede describir un único aspecto del software "para desarrollar las aplicaciones comerciales actuales". p>Desarrollo ágil
¿Qué tipo de modelos necesitamos? "Dada la complejidad del software actual, su caja de herramientas de modelado debe incluir una gran cantidad de técnicas útiles (lista de resultados). Puede consultar los artefactos de modelado de AM. ).
Es importante tener en cuenta que no es necesario desarrollar todos los modelos para un sistema, pero debe seleccionar algunos modelos en función de las condiciones específicas del sistema. Diferentes sistemas utilizan diferentes partes del modelo. Por ejemplo, al igual que con las reparaciones del hogar, cada trabajo no requiere que utilices todas las herramientas de la caja de herramientas, sino que utilices una herramienta a la vez. Por poner otro ejemplo, es posible que prefiera ciertas herramientas y, de manera similar, puede que prefiera un modelo determinado. ¿Cuántos artefactos de modelado hay disponibles? Si desea obtener más detalles sobre esto, he enumerado las partes relevantes de UML en Sea realista sobre UML. Si desea obtener más información, puede consultar el documento técnico. -- Introducción a las técnicas de modelado ágil.
Éxito
Adáptese al cambio
Para lograr un éxito ágil (entregando el mejor software que respalde el negocio), los expertos en software también pueden aplicar estas reglas.
Autonomía
Céntrese en el trabajo y en entregar el software adecuado, en lugar de dejarse influenciar por la ira de los demás.
Compartir experiencia
No existe un modelo unificado para construir un proceso de desarrollo de software perfecto. Pero en esta área, las técnicas ágiles, junto con la aplicación y mejora continua, pueden lograr el éxito ágil.