SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Arquitectura
para
artesanos
Software Craftsmanship Barcelona
27.09.2015
Toni Tassani
@atassani
Nada de
tecnología
Experiencia
Niveles
Relación con
craftsmanship
Ideas
Expectativas
Arquitecto
Arquitecto
“La relación de
componentes
que forman un
sistema y las
interrelaciones
entre ellos”
¿De qué hablo
cuando hablo de
arquitectura?
El tamaño
importa
Startup Corporación
Velocidad
Cambio
Riesgo
Inestabilidad
Eficiencia
Seguridad
Control
Rentabilidad
Rápida
Informal
Eficaz
Rigurosa
Formal
Precisa
La historia es
importante
Todo por decidir
Aplicaciones
y sistemas
existentes
Todo por decidir
Aplicaciones
y sistemas
existentes
el arquitecto
hombre orquesta
Arquitecto
en departamento de
arquitectura
Decisiones de entorno de desarrollo
Decisiones de entorno de ejecución
Guía para el equipo
Estructura del código
CTO / Desarrollador senior
el arquitecto
Estructuras muy formales
Organizaciones con mucha historia
Decisiones a muchos niveles
TTM “Time to Market”
TCO “Total Cost of Ownership”
Arquitecto
Normalizar
Homogeneizar
Controlar a los
desarrolladores
Facilitar cambios futuros
Permitir multi-proveedor
Evitar CVDD
Industrializar
WTF!
The Cathedral and the
Bazaar: Musings on Linux
and Open Source by an
Accidental Revolutionary
by Eric S. Raymond
Las mejores arquitecturas,
requisitos y diseños emergen
de equipos auto-organizados.
Aprendiz
Oficial
Maestro
Growing the
architecture
¿Qué podemos aprender?
We Software
¿Qué podemos aprender?
Enterprise Architect
Solutions Architect
BusinessArchitect
DataArchitect
NetworkArchitect
InfrastructureArchitect
TechnicalArchitect
SecurityArchitect
Subject Areas
Projects/LowLevelStrategy/HighLevel
Arquitectura
empresarial
“La organización fundamental
de un sistema, compuesta por
sus componentes, las relaciones
entre ellos y su entorno, así
como los principios que
gobiernan su diseño y
evolución.”
Existe, esté definida o no
Business
Data
Application
Technology
TOGAF
The Open Group
Architecture Framework
Alternativas:
Zachman
IAF
Business Layer
Application Layer
Infrastructure Layer
ArchiMate
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
c
Logging
Monitorización
Caché
Procesos batch
Alertas
Internacionalización
Llamadas a servicios
Configuración
Transaccionalidad
Autenticación …
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
IDE
Pruebas unitarias
Estrategia de pruebas
Templates
Gestión de configuración
Modelado de datos
Generadores de código
Documentación
Integración continua
Encodings …
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
Entornos
Promoción
Autorizaciones
Automatismos
Versionado
Alta disponibilidad
Registro de servicios
Alta disponibilidad
Contingencia
Intervenciones
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
Hardware
Software de base
Virtualización
Containers
Cloud pública / privada
Topología de red
Licencias
Instalación
Mantenimiento
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herramientas, estándares y
metodologías para el desarrollo de
software
Arquitectura
de operación
Mecanismos para garantizar el nivel de
servicio y operación del software
Arquitectura
técnica
Infraestructura (HW y SW base) para
soportar el desarrollo y operación del
sistema.
Negocio
Arquitectura
como producto
App1 App2 App3 App4 AppN
ARQUITECTURA
SOFTWARE BASE
HARDWARE
Arquitectura
como producto
App1 App2 App3 App4 AppN
FONTANERÍA
SOFTWARE BASE
HARDWARE
Arquitectura en
Metodologías
ágiles
DSDM Atern
“Firm foundations”
Initial architectural envisioning
“Architecture Owner”
Agile DBAs
Defer Commitment
Agile Architecture
DAD
Arquitectos
Arquitecto como rol
Comunicar la
arquitectura
Abstracción,
reducir detalle
noUML
Verbo y nombre
Workspace workspace = new Workspace("Spring PetClinic", "");
// create a software architecture model
Model model = workspace.getModel();
SoftwareSystem springPetClinic =
model.addSoftwareSystem("Spring PetClinic",
"Allows employees to view and manage information “ +
"regarding the veterinarians, the clients, and their pets.");
Person clinicEmployee = model.addPerson("Clinic Employee",
"An employee of the clinic");
clinicEmployee.uses(springPetClinic, "Uses");
// create some views to visualise the model
ViewSet viewSet = workspace.getViews();
SystemContextView contextView =
viewSet.createContextView(springPetClinic);
contextView.addAllSoftwareSystems();
contextView.addAllPeople();
// upload the model and views to structurizr.com
StructurizrClient structurizrClient = new
StructurizrClient("https://api.structurizr.com",
"key", "secret");
structurizrClient.putWorkspace(1, workspace);
Descripción de la
arquitectura en
código
structurizr
The Craftsman I Would Like to Be
Alex Bolboaca
El título no es lo importante
Aprende tu técnica
Piensa a diferentes niveles
Sé pragmático
Rodéate de artesanos
Aprende toda tu vida
http://www.alexbolboaca.ro/
Niveles de arquitectura
Enterprise Architecture
Software Architecture
Comunicación
Abstracción
Respeto
TOGAF
ArchiMate
SAFe
Architecture runway
Architecture for
Developers
structrurizr
Firmitas
Utilitas
Venustas
Gracias
Toni Tassani
@atassani

Mais conteúdo relacionado

Semelhante a Arquitectura en metodologías ágiles

Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaFrancisco Arturo Viveros
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesJaime Contreras
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps
 
BPM con BonitaSoft y gestión documental con Alfresco
BPM con BonitaSoft y gestión documental conAlfrescoBPM con BonitaSoft y gestión documental conAlfresco
BPM con BonitaSoft y gestión documental con AlfrescoIntellego Chile
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Andres Solorzano
 
Arquitectura evolutiva por Fausto de la Torre
Arquitectura evolutiva por Fausto de la TorreArquitectura evolutiva por Fausto de la Torre
Arquitectura evolutiva por Fausto de la TorreDiana Pinto
 
paas-01[1].pptx
paas-01[1].pptxpaas-01[1].pptx
paas-01[1].pptxAndreYS17
 
software
softwaresoftware
softwarealkosto
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Una introducción a ontimize
Una introducción a ontimizeUna introducción a ontimize
Una introducción a ontimizeontimize
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...Martín Cabrera
 
ES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfDavidVeraOlivera
 

Semelhante a Arquitectura en metodologías ágiles (20)

Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración Moderna
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de Telecomunicaciones
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil Corporativo
 
BPM con BonitaSoft y gestión documental con Alfresco
BPM con BonitaSoft y gestión documental conAlfrescoBPM con BonitaSoft y gestión documental conAlfresco
BPM con BonitaSoft y gestión documental con Alfresco
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
 
Arquitectura evolutiva por Fausto de la Torre
Arquitectura evolutiva por Fausto de la TorreArquitectura evolutiva por Fausto de la Torre
Arquitectura evolutiva por Fausto de la Torre
 
paas-01[1].pptx
paas-01[1].pptxpaas-01[1].pptx
paas-01[1].pptx
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
software
softwaresoftware
software
 
Conceptos
ConceptosConceptos
Conceptos
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Una introducción a ontimize
Una introducción a ontimizeUna introducción a ontimize
Una introducción a ontimize
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
 
ES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdf
 
Clase Soa
Clase SoaClase Soa
Clase Soa
 

Arquitectura en metodologías ágiles