El elemento esencial de la agilidad de la arquitectura es el feeback.
El proceso de desarrollo de software
Introducción al curso de Fundamentos de Arquitectura de Software
Etapas del proceso de desarrollo de software
Dificultades en el desarrollo de software
Roles en metodologías tradicionales y ágiles
Introducción a la arquitectura de software
¿Qué es arquitectura de software?
La importancia de la comunicación - Ley de Conway
Objetivos del arquitecto
Arquitectura y metodologías
Análisis de requerimientos
Entender el problema
Requerimientos
Riesgos
Restricciones
Reto: Clasificación de requerimientos y análisis de riesgos
Estilos de arquitectura
Arquitectura, panorama y definición
Estilos: Llamado y retorno
Estilos: Flujo de datos
Estilos: Centradas en datos
Estilos: Componentes independientes
Comparando estilos: ¿Cómo elijo?
Reto: Un producto, muchos estilos
Desarrollo del proyecto
Desarrollo del proyecto: PlatziServicios Fase Startup
Desarrollo del proyecto: PlatziServicios Fase Producto en crecimiento
Desarrollo del proyecto: PlatziServicios Fase Escala global
Conclusiones del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Guido Contreras Woda
Aportes 82
Preguntas 8
El elemento esencial de la agilidad de la arquitectura es el feeback.
El arquitecto de metodologías tradicionales tiene como objetivo encontrar los problemas y diseñar una solución a gran escala que ataque dichos problemas esenciales del desarrollo.
`
El arquitecto de metodologías ágiles trabaja con un equipo autogestionado y por ende ven al diseño como un proceso evolutivo y que se va dando sprint a sprint.
Etapa del diseño:
Metodologías ágiles: El arquitecto recibe feedback a través de métricas por cada sprint.
Metodologías Tradicionales: El arquitecto diseña una solución basada en los Requerimientos, Restricciones y Riesgos. De este diseño resulta un Modelo y una Documentación respectiva a su Implementación. Durante esta etapa de Diseño no hay Implementación de Software.
Metodologías ágiles: La Arquitectura emerge de un equipo autogestionado que realiza el diseño de una solución como algo evolutivo momento a momento (sprint a sprint) lo que da lugar a reevaluar las decisiones tomadas. A su vez no se adelanta a tomar decisiones que pueden ser postergadas a menos que sea absolutamente necesario. Durante cada sprint realiza una rápida implementación para poder tener feedback a través de métricas y alertas, para luego mediante una retrospectiva, reevaluar o no decisiones tomadas.
Otra cosa importante en el desarrollo ágil es la posibilidad de implementar “esqueletos de la aplicación" (Tracer Bullet) que nos permiten testear todas las capas de nuestra arquitectura y crear una columna vertebral a partir de la cual luego hacer incrementos de funcionalidad.
Principal diferencia: El problema de la falta de feedback en las Metodologías Tradicionales durante la etapa de diseño.
TRADICIONAL el objetivo es encontrar los problemas y diseñar una solución que ataque a estos problemas.(se da en una etapa de diseño)
en el modelo tradicional falta el feedback (no tenemos feedback sobre las decisiones si no hasta que se implementa y se despliega la solución)
ÁGILES el objetivo que la solución va ser evolutiva y se da paso a paso (se trata de momentos donde se puede evaluar nuestras decisiones)
TRACER BULLETS
esqueletos de solución, se plantea una prueba diciendo que la estructura que planteamos va a hacer algo, se implementa se mide y se evoluciona, sirve para hacer arquitectura iterativa mente
Sonaré a Freddy, pero Platzi también ofrece un curso de Scrum: https://platzi.com/clases/scrum/
No sé si soy yo, pero siento que el balance entre términos técnicos y ejemplos muy simples no son buenos. Es la 4ta vez que veo esta clase porque no la entiendo. Tal vez sea yo, pero los otros cursos están mejor ejemplificados y estructurados para su consumo.
al final del video menciona este concepto:
aui va en inglés y su traducción:
Tracer bullet
Also called a drone spike, a tracer bullet is a spike with the current architecture, current technology set, current set of best practices that result in production quality code. It might just be a very narrow implementation of the functionality but is not throwaway code. It is of production quality, and the rest of the iterations can build on this code. The name has military origins as ammunition that makes the path of the bullet visible, allowing for corrections. Often these implementations are a ‘quick shot’ through all layers of an application, such as connecting a single form’s input field to the back-end, to prove the layers connect as expected
También llamada punta de dron, una bala de trazado es una punta con la arquitectura actual, el conjunto de tecnología actual, el conjunto actual de mejores prácticas que dan como resultado un código de calidad de producción.
**Puede ser una implementación muy limitada de la funcionalidad, pero no es un código desechable. Es de calidad de producción, y el resto de las iteraciones pueden basarse en este código. **
El nombre tiene orígenes militares como munición que hace visible el camino de la bala, lo que permite correcciones.
A menudo, estas implementaciones son un ‘disparo rápido’ a través de todas las capas de una aplicación, como conectar un campo de entrada de un solo formulario al back-end, para probar que las capas se conectan como se esperaba
Creo que la metodología tradicional es muy débil por que se prueba hasta la ultima fase. A diferencia de la metodología ágil que está iterando constantemente y no da por hecho ninguna decisión. Saludos, AF.
La metodología tradicional entrega feedback en el momento de la implementación del software mientras que la agil, alimenta con feedback al análisis y desarrollo del software o solución al problema. Es mas efectivo.
La arquitectura como tal nace en las metodologías tradicionales donde su objetivo era brindar soluciones a gran escala a los problemas esenciales o de alto riesgo.
Por otro lado las metodologias agiles plantean que las arquitecturas emergen de equipos autogestionados y que el diseño de una solución se va formando de manera evolutiva.
En las Metodologías tradicionales no tenemos feedback hasta que la solución ya está hecha contrario a las agiles que se desarrollando de manera iterativa a la vez que obtenemos feedback según cada prioridad.
RESUMEN:
Arquitectura y metodologías
Arquitectura varía según la metodología.
Tradicional:
Deinifición del problema, requerimentos, riesgos, restricciones hacen parte de las etapas iniciales. El arquitecto diseña y modela la arquitecrua para posterior desarrollar en base a documentción.
Desventaja es que no tiene feedback de su trabajo hasta el despliegue.
Agiles:
Consiste en momentos. Los springs sirven para planear los momentos importantes, definimos arquitectura/prioridades backlog. Se lleva al usuario y se recibe feedback mediante métricas. En base a estas se asegura de cuanto mi arquitectura está funcionado.
Podemos hacer esqueletos de la solución, tracerbullet. Hacer arquitectura interactivamente es posible desde que se reciba el feedback constante.
La explicación de la clase seria de la siguiente manera (por favor corregir si hay error):
El papel de la arquitectura se mira según la metodología que se use:
M.Tradicional la arquitectura nace con el objetivo de encontrar los problemas y diseñar una solución que ataque los problemas esenciales, todo esto porque es una metodología básicamente lineal.
El arquitecto en M.Tradicional toma las decisiones en la etapa de diseño y toma decisiones a partir de cuatro razones básicas (1. Definición del problema, 2. Restricciones del problema, 3. Requerimientos, 4. Riesgos) al observar estos y analizarlos toma decisiones sobre que tipo de desarrollo y y arquitectura realizar y su correspondiente documentación, en esto se nota que estos pasos se deben realizar antes de un desarrollo del producto, por lo que no hay feedback o retroalimentacion en el momento lo cual demora en los procesos a este tipo de metodologia.
M.Agil la arquitectura nace con el objetivo de desarrollar procesos evolutivos en un equipo autogestionado que se de ciclo a ciclo, todo esto porque es una metodologia que junta a mas a sus equipos de trabajo y es “ciclica” en el sentido de que hay constante retroalimentacion “feedback”. utilizan sistemas de medicion que ayudan a planear la arquitectura del producto en cada ciclo de trabajo y desarrollo, lo que ayuda a esta metodologia es que no es tan rigida como la tradicional y permite revisar en retrospectiva y hacer cambios en el camino inclusive antes de sacar la primera version del producto.
ARQUITECTURA Y METODOLOGÍAS
.
Dependiendo de la metodología implementada la arquitectura cambia. La arquitectura como practica surge de las metodologías tradicionales en donde el objetivo principalmente era encontrar los problemas y diseñar una solución a gran escala que ataque a estos problemas especiales de alto riesgo.
.
Por otro parte las metodologías ágiles plantean que la arquitectura emerge de un equipo autosugestionado por lo que se entiende el diseño de una solución como algo evolutivo y que surge sprint a sprint.
.
La arquitectura en una metodología ágil se basa en momentos en donde se puede evaluar o revaluar las decisiones. Una buena practica es planear los momentos importantes o el ultimo momento responsable, este ultimo momento responsable significa no adelantarse a desiciones que pueden ser postergadas a menos que este sea el ultimo momento donde se debe tomar la decisión.
.
Una vez planeado el sprint y definido que decisiones arquitectónicas se deben tomar, se ejecuta el sprint en base a las prioridades y luego se despliega para que el usuario lo pruebe y se obtiene feedback a través de métricas y alertas.
.
Cuando se dispone de métricas y se hace una retrospectiva de que esta pasando se pueden re evaluar las desiciones de arquitectura y luego volver a poner en el backlog estas desiciones que se deben volver a tomar.
.
En el desarrollo ágil se pueden hacer esqueletos de solución, es decir, en vez de plantear la solución finalizada se puede plantear poner una prueba o esqueleto en donde la estructura arquitectónica puede ayudar a mejorar el sistema, luego se implementa en el sprint, se mide y se hace evolucionar a través del feedback recibido y nuevas decisiones.
Cuanto más rápido obtengamos la retroalimentación, menos cambios necesitaremos para llegar al objetivo.
La arquitectura evoluciona en metodologías ágiles, por ello es importante tener métricas para cada iteración y en base a ellas decidir si la arquitectura necesita cambios estructurales o no.
Metodologías ágiles frente a las tradicionales en el proceso de desarrollo de software:
http://www.revistaespirales.com/index.php/es/article/view/269/225
Este video se comprende mejor si previamente se tiene presente el contexto de una metodología ágil como lo es scrum: https://www.wikiwand.com/es/Scrum_(desarrollo_de_software)
infórmate de manera clara sobre que es Scrum y notarás la diferencia al ver este video.
Lo más importante para ser ágiles es el feedback.
Tomé la carrera de fundamentos y en el curso de arquitectura mencionan mucho las metodologías ágiles, pero ningún curso anterior han hablado de ciclos de vida o metodologías ágiles como tal…
Entonces lo bueno de las metodologías ágiles es que nos dan un feedback constante, en comparación con la metodología tradicional que hay que esperar que termine una fase para hacer el feedback.
Entendiendo un poco como nacen y se mejoran los proyectos de arquitectura de software
Hay una increíble similitud entre el papel que cumple el arquitecto en la metodología tradicional de desarrollo y el papel de un investigador en el método científico.
[DnnizNote]
Agile. En general la arquitectura es evolutiva, y debe ser medible en el proceso. Esto permite volver a analizar la toma de decisiones y validar que lo entregado cumpla con alcance del sprint, por ello el feedback es lo más importante.
feedback , o pie atrás, y no feeback, retorceder el pago, …
se parecen, pero no son lo mismo.
El feedback es un elemento esencial que nos ayuda a evitar reprocesos.
buena explicación !!!1
8. Mis apuntes sobre: "Arquitectura y metodologías"
La arquitectura cambia si es tradicional o ágil.
8.1. Etapa de Diseño:
8.1.2, Metodología tradicional: Definición del problema, restricciones, requerimientos,
riesgos y se obtiene un modelo de arquitectura y su documentación. Sin embargo no tiene
feedback.
Último momento responsable
Last responsible moment (LRM)
Una estrategia de no tomar una decisión prematura sino postergar y mantener abiertas las decisiones importantes e irreversibles hasta que el costo de no tomar una decisión se vuelva más grande que el costo de tomar una decisión.
Hay que hacer arquitectura iterativamente: lo más importante para ser ágiles es el feedback, midamos la arquitectura, volvamos a evaluarla y siempre tengamos en cuenta el estado actual de lo que tenemos y cómo lo podemos mejorar.
Arquitecto y metodologías
Metodología tradicional: Las decisiones de arquitectura se llevan a cabo en la etapa de diseño.
Metodología ágil: Las decisiones de arquitectura se llevan a cabo en cada iteración.
Para obtener feedback es necesario utilizar métricas para poder medirlos.
En el desarrollo ágil podemos plantear una posible solución “esqueleto” que a través de iteraciones y feedback podemos hacer más implementaciones hasta llegar al producto final.
Las versiones betas serian un ejemplo en donde se usa la metodoligia agil?
La arquitectura cambia si la metodología es tradicional o ágil.
La arquitectura nace en las metodologías tradicionales con el fin de darle solución a los problemas esenciales en el desarrollo. Por otro lado las metodologías ágiles plantean que la arquitectura emerja de un equipo autosugestionado que genera el diseño de una solución de manera evolutiva paso a paso (sprint a sprint).
En las metodologías tradicionales esta ausente el feedback, por lo que el arquitecto no tiene feedback hasta que la solución ha sido desarrollada e implementada. durante desarrollos largos esto podría generar grandes problemas ante escenarios que hayan podido generar cambios durante el tiempo de desarrollo teniendo que volver replanear, refactorizar o reahacer la solución. Incluye perdidas de dinero incluso cuando no se toman las previsiones?
En metodologías ágiles evaluamos y re evaluamos continuamente, Se diseñan sprint que contienen los objetivos de mayor prioridad, se ejecuta el sprint , se despliega la solución y se lleva al usuario para obtener feedback. Obtenemos feedback a través de métricas y alertas que se disparan a través de esas métricas.
Básicamente, en cuanto a las metodologías ágiles, recibir feedback y crear una infraestructura en base a los Tracer bullets permite hacer una que sea **sólida **siempre que ese feedback sea evaluado y tenido en cuenta para las decisiones de cambios de la arquitectura.
Hay una frase en los momentos importantes arquitectonicos
Las metodologías ágiles permiten ver el progreso y recibir feedback para ver si vamos por el camino correcto a diferencia de las metodologías tradicionales donde no se sabe lo que el sistema ya hace, hasta finalizarlo por completo.
Obtener feedback y re evaluar las decisiones.
Se tiene q dejar en claro al cliente que el prototipo provisional no puede ser usado para produccion
En las metodologias agiles los cambios repentinos no son tan criticos para el proyecto , el equipo tiene que estar preparado en lo posible.
Arquitectura y metodologías
Tradicional Ágil
Nace el objetivo de encontrar problemas y diseñar su solución Emerge de un equipo auto gestionado
Evolutivo, de sprint a sprint
Etapa diseño: Cuenta con feedback:
- Definición de problema - Métricas
○ Restricciones - Alertas
- Requerimientos
○ Riesgos
- Modelo de arquitectura
○ Documentación
Esqueletos de solución: Pruebas para mejorar algo (hacer arquitectura iterativamente)
✅
Al final todo esto es utópico ya que no siempre todo es tan ideal como se muestra en proyectos modernos, pero sin duda algo que sera siempre un pilar en cualquier proyecto sera la comunicación.
Una de las cosas mas importantes es entender el negocio, para ver si la solución se acoplara correctamente y si mejorara la flexibilidad.
Importante las entregas de MVP (Minimum viable product) para obtener feedback.
¿Cuál es el contexto actual de lo que tenemos? ¿Cómo podemos mejorar? base para generar una arquitectura evolutiva basada en la retroalimentación.
Excelente clase 😃
Resumen
Metodologia tradicional: Se toman todas las decisiones en la etapa de diseño, lo cual hace que el ingiero no tenga un Feedback sobre lo que realmente realizara el software
Metodologia Agil: En esta metodologia se implementa la arquitectura, se despliega, se toman metricas y aletras para evaluar el replanteamiento de la misma.
Lo mas importante para se agil es midiendo atravez del feedback.
La arquitectura de software se adapta a las necesidades de los Stakeholders así como el método científico se adapta a los resultados de los hallazgos encontrados en un estudio. En la arquitectura de software la iteración es a lo que en el método científico se conoce como experimentación.
La arquitectura nace en metodologías tradicionales en donde su objetivo era principalmente encontrar los problemas y diseñar una solución a gran escala que ataque a esos problemas esenciales, como también a los de alto riesgo del desarrollo a realizar.
Las metodologías Agiles plantean que la arquitectura emerge de un equipo auto-gestionado y por ende ven al diseño de una solución como algo evolutivo y que se va dando de sprint a sprint.
Diagrama de las metodologías ágiles
La metodología agil se basa en recibir feedback 🤔
Me gustaría que haya un minicurso de backlog.
Metodología tradicional
Metodologías ágiles
Feedback es la ventaja de las metodologías ágiles.
Medir el estado actual y como lo podemos mejorar. ¡Importante!
en las metodologías se define cuando vas a tener una retroalimentacion de como esta tu producto y que tan rápido puedes responder al estado actual es importante obtener una retroalimentacion rápida para poder responder de manera rápida a los cambios que puedan surgir
Muy buena clase! Interesante!
un buen levantamiento de requerimientos, facilita la arquitectura del software.
Las metodologias tradicionales ven la arquitectura como un modelo para solucionar problemas esenciales, casi que de una manera estatica, pues no se está reevaluando el alcance de la solución propuesta. En cambio, las metodología ágiles ven la arquitectura como un proceso evolutivo que se actualiza constantemente
gracias
Las metodologías tradicionales como su nombre nos indica son las que se han usado toda la vida y las cuales buscan imponer disciplina al proceso de desarrollo software y de esa forma volverlo predecible y por ello eficiente, mientras que las metodologías ágiles se caracterizan por ser adaptativas y flexibles, esto significa que no son reticentes a los cambios, al revés, son eventos esperados y que se acogen con normalidad. El marco de trabajo más utilizado en la actualidad es Scrum, aunque también existe Kanban, Lean y otros.
Arquitectura Ágil. Excelente concepto. Lo importante es el Feedback
Un esqueleto de solución es importante en la metodología ágil pues funciona a modo de prototipo y permite determinar si está solucionando un problema dado por el negocio.
Metodologías Tradicionales: Se Evidencia en la Etapa de Diseño, los Requerimientos, Definición del problema, Restricciones y Riesgos, como entrada, y en el proceso de construir la arquitectura, salen un modelo de arquitectura que define como se debe construir el sistema y la documentación de esta arquitectura.
El grande problema de las metodologías tradicionales en la definición del diseño de la solución es el Feedback, una retroalimentación
Metodologías Ágiles: Es una arquitectura ágil, evolutivo que se construye sprint a sprint. FeedBack con Métricas y Alertas con esas métricas.
En el desarrollo Ágil, podemos crear Esqueletos de Solución para evaluar los posibles soluciones y obtener un feedback.
Es muy importante el que nuestra arquitecutra no este estancada ya que se puede ir escalando con forme pasa el tiempo y asi llegar a tener un producto de software de calidad y con bases solidas
En las metodologias agiles es el planear los momentos importante o el ultimo momentos responsables
Una vez tomada la desicion podemo plantear un esquelo o una prueba arquitectonica, para tomar fitback
Una buen feedback es muy necesario para tomar buenas decisiones. 😃
Muy bien
El ultimo momento responsable.
Lo mas importante el** FEEDBACK**
Buena clase!
Arquitectura y Metodologías del Desarrollo de Software
La arquitectura nace en metodologías tradicionales en donde su objetivo era principalmente encontrar los problemas y diseñar una solución a gran escala que ataque a esos problemas esenciales, como también a los de alto riesgo del desarrollo a realizar.
Las metodologías Agiles plantean que la arquitectura emerge de un equipo auto-gestionado y por ende ven al diseño de una solución como algo evolutivo y que se va dando de sprint a sprint.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?