architecture - sirve - enterprise architect wikipedia
¿Tiene un arquitecto de software un papel en ágil, esp. ¿Melé? (16)
Incluso en una metodología Agile, que puede no tener una jerarquía estricta, los programadores no serán iguales. Tendrás activistas veteranos, principiantes, aquellos que conocen el código base y el dominio del problema al revés y combinaciones de los anteriores.
Creo que aunque no puede haber una arquitectura "formal" en un proyecto verdaderamente ágil, siempre hay problemas arquitectónicos que deben abordarse y, en general, los miembros del equipo más experimentados tendrán el conocimiento para abordar algunas de estas cuestiones.
Y también tenga en cuenta que el método del proyecto interno puede ser independiente del grado de pago, por lo que un título puede ser ignorado en gran medida "en el trabajo", por así decirlo.
Estoy leyendo el libro "La profesión del arquitecto de software" de Marc y Laura Sewell ( enlace de Amazon ) y me hizo preguntarme si un arquitecto de software es parte del antiguo enfoque BDUF no ágil.
¿Hay un lugar para los arquitectos de software en un enfoque ágil? Estoy especialmente interesado en Scrum.
Por cierto, actualmente soy el arquitecto de aplicaciones de Unix para una gran empresa.
aclamaciones,
Robar
Mi rol como arquitecto en Scrum incluye lo siguiente.
Picos técnicos: pruebas de concepto: cómo lo haremos. ("Sería más simple si simplemente usara la biblioteca SMTP directamente, ya que envuelve las bibliotecas SMTP existentes; escribir su propio contenedor en nuestro contenedor no ayuda mucho. Podemos agregar el método que desee").
Coordinación entre los desarrolladores para adaptarse a la arquitectura deseada. ("Ummm ... ¿por qué estás usando tu propio archivo de propiedades?"
Trabajando con los usuarios para priorizar la acumulación de manera apropiada. ("Estos tres están relacionados, si hacemos uno, obtenemos los otros dos casi sin costo adicional").
Trabajar con los gerentes para calcular el costo de la acumulación. (No, un gerente de proyecto no puede hacer esto; no tienen la profundidad técnica. No, los programadores no pueden hacer esto, no tienen la información general).
Articulando por qué los nombres de los paquetes son así y por qué el modelo de datos tiene esas características.
Encontrar las cosas que nos faltan y volver a priorizar el trabajo acumulado por motivos técnicos ("Vamos a necesitar este sprint adicional para integrar [X], actualizar [Y] y reemplazar [Z] o nunca tendremos esos sprints hechos. ")
Sin embargo ... Agile es mejor para proyectos pequeños, y los Arquitectos especializados normalmente son más útiles en proyectos grandes.
La forma en que creo funcionaría bien, es si el Arquitecto establece el mapa general y define los módulos necesarios junto con los líderes del equipo en una forma de Scrum. Sin embargo, los líderes del equipo y sus equipos de Scrum hacen el desarrollo real.
Tipo de un Scrum de dos etapas.
+1 a la respuesta de S. Lott. El papel del arquitecto es importante, pero un enfoque ágil le ruega al arquitecto que descienda de la torre de marfil y se ensucie las manos con el equipo. Esto puede ser difícil, ya que las torres de marfil a menudo conducen a la desconexión con el arte de crear el software.
Absolutamente sí, especialmente en proyectos medianos y grandes. Un arquitecto proporciona una dirección técnica al tener una vista aérea del proyecto y es responsable de evaluar y mitigar el riesgo técnico. Los desarrolladores tienden a tener un enfoque más limitado y están menos expuestos a preocupaciones de alto nivel.
Absolutamente. No hay razón para que la arquitectura tenga que hacerse por adelantado.
Creo que esto es más un problema de habilidades que un problema de enfoque. Entonces, sí, puede tener un rol incluso si tiene ese título.
El desarrollo ágil no significa un desarrollo anarquista, aún necesita ser coordinado para mantenerse compatible con el tiempo.
Pero ... Tal vez la mayor diferencia entre los metodologías de cascada y las metodologías ágiles, es que donde encuentres un software que sea PERSONA en la cascada, probablemente serás el creador de la HABILIDAD en desarrollos ágiles. Quiero decir, como las personas están trabajando más juntos, hay una gran posibilidad de que las habilidades se vuelvan más compartidas con el tiempo por el equipo del hoyo, lo cual es bueno.
Por supuesto, el "líder" del arquitecto de software será quien mantendrá la imagen completa en su lugar y se asegurará de que todos los componentes básicos sean coherentes, pero no será el único al que remitirá a lo largo del tiempo, ya que su conocimiento será impartido a los demás.
Por supuesto.
Recuerde: ágil no es un enfoque de "tráeme una roca". Todavía hay requisitos, todavía un diseño y todavía una necesidad de una arquitectura sólida.
Cuando construyes un producto o línea de producto y empleas Scrum u otro enfoque ágil para administrar tu proyecto, una de las ideas clave es desarrollar un breve ciclo de iteración, priorizando el trabajo atrasado de las tareas a realizar, determinando lo que va a suceder en la iteración. A, B, C, etc. Allí es donde un arquitecto realmente puede ser valioso. Tener a alguien con una idea clara de cómo X, Y y Z encajarán todos puede hacer que sus iteraciones de Scrum sean mucho más productivas.
Totalmente.
El proceso de desarrollo / proyecto que ha mencionado es para construir las cosas que el arquitecto diseñó.
Entonces, la analogía que se usa a menudo, el arquitecto diseña y planifica la ciudad, los caminos, los edificios.
Los desarrolladores construyen la ciudad, las carreteras, los edificios.
Los desarrolladores pueden usar cualquier sistema de administración de proyectos que necesiten para construir, los autos en la carretera y el funcionamiento de la ciudad.
Del mismo modo que los arquitectos de la construcción están a su disposición para supervisar el edificio con los ingenieros, también debería estar el arquitecto del software a la mano para supervisar el proceso de desarrollo.
Ambos roles Arquitecto y Desarrollador están relacionados, pero pueden seguir diferentes procesos para lograr su propio programa de trabajo.
Yo diría que ciertamente lo hay. A pesar de que el enfoque en ágil es que los desarrolladores sean libres de definir su propio código, aún existe la necesidad de un diseño general del programa a un nivel más alto del que estaría trabajando un desarrollador individual.
Hemos estado practicando Scrum con éxito durante 1 año y lo que hemos experimentado es que hay dos cosas que deben equilibrarse: -Sistema de Arquitectura es un importante "contrapeso" en un entorno de desarrollo basado exclusivamente en características. La planificación estratégica y de mediano plazo en el nivel técnico debe hacerse explícitamente ya que los Propietarios de Producto se enfocan en las siguientes características que desean implementar (lo que por supuesto está bien por su parte). Por otro lado, ser realmente ágiles significa que -System Architects no debe sentarse en torres de marfil (como se menciona en varios posts anteriores) y diseñar cosas que funcionen solo en teoría. El conocimiento debe ser distribuido para que cada equipo tenga suficientes habilidades arquitectónicas.
Nuestra solución fue la siguiente (estamos trabajando en un entorno de equipos múltiples): creamos un equipo virtual liderado por el arquitecto líder (que no forma parte de un equipo de Scrum). Cada equipo decide para cada tema que debe discutirse qué miembros quieren participar en la discusión. El equipo toma una decisión común. Si se necesita trabajo adicional, esto se hace a través de una nueva historia de usuario o si es pequeña fuera de Scrum. Los miembros del equipo que se comprometieron con la decisión son responsables de comunicar la decisión y controlar su ejecución dentro de sus equipos.
Absolutamente: un arquitecto es deseado y requerido en un equipo de scrum. Tal vez no lo escuche de los evangelistas scrum / ágiles, entrenadores, etc., pero cualquier propietario de producto experimentado le dirá eso. El papel de un arquitecto en el scrum es muy importante.
No creo que exista la necesidad ya que la guía SCRUM escrita por los formantes originales de SCRUM Dr Jeff Sutherland y Ken Schwaber no mencionan la necesidad de una.
sí mucho así
''Arquitecto'' fue un término que el software robó de la industria de la construcción con la intención de describir a alguien que supervisara el proyecto en su conjunto. Un arquitecto en la industria de la construcción es alguien que consulta a los ingenieros estructurales sobre la apariencia y la "interfaz humana" del proyecto. Se puede establecer un paralelo más cercano entre el "arquitecto" de la construcción y el "diseñador UX" de un proyecto de software. El término que creo que describe más de cerca lo que hace un Arquitecto de Software es el de Ingeniero de Sistemas.
Entonces, ¿cuál es el papel de la arquitectura de software en el desarrollo ágil? Para comprender esto, es importante comprender los principios del desarrollo de software ágil. Estos principios se pueden encontrar en el Manifiesto para el desarrollo de software ágil aquí http://agilemanifesto.org
Individuos e interacciones sobre procesos y herramientas
Software de trabajo sobre documentación completa
Colaboración del cliente sobre la negociación del contrato
Responde al cambio sobre el siguiente plan
Más información aquí: http://carlospliego.com/2016/10/08/agileSoftwareDevelopmentAndArchitecture/
Primero que nada: el equipo de Scrum está auto organizado. Eso significa que los roles de gestión técnica no están tan expresados. Sí, el equipo puede elegir / invitar a un miembro para un puesto. Pero en este rol de contratación también debería estar delegando al equipo. Sí ... no es realmente. Además, la actividad del equipo es más sólida en reuniones y carreras de velocidad, principalmente. La arquitectura técnica proporciona soluciones del nivel de epopeyas y, al menos, requiere construir un mapa de ruta, aprobar tecnologías, retroalimentar a las partes interesadas y otros las operaciones son nuestro alcance del tema. Además, los arquitectos técnicos actúan en intereses de desarrollo corporativo de la empresa, especialmente para mantener DRY y otros principios de reutilización de soluciones, calidad, etc. De los sprints gruesos puede y debe interrelacionarse en una empresa de equipos múltiples, que requiere también un arreglo a nivel de liderazgo. En estos aspectos, el arquitecto está en nombre de los interesados y, además, los elementos técnicos, las restricciones, los patrones y las tecnologías, que son el tema de implementación, son una sección correcta de la historia del usuario. Básicamente, cuando sea necesario, el arquitecto puede escribir el código en un cuadro de sprint si es en interés de los negocios (esto depende en gran medida del código de liderazgo en una empresa concreta, no veo que aquí nada esté fuera de alcance). Sin embargo, el rol definido del arquitecto son las soluciones técnicas en nombre de los interesados para llevar a cabo la traducción de las definiciones técnicas y técnicas y el control de las directrices técnicas.