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!
Arquitectura para artesanos
Arquitectura para artesanos
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.
Arquitectura para artesanos
Aprendiz
Oficial
Maestro
Growing the
architecture
Arquitectura para artesanos
¿Qué podemos aprender?
Arquitectura para artesanos
We Software
Arquitectura para artesanos
Arquitectura para artesanos
¿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 para artesanos
Arquitectura en
Metodologías
ágiles
DSDM Atern
“Firm foundations”
Arquitectura para artesanos
Initial architectural envisioning
“Architecture Owner”
Agile DBAs
Defer Commitment
Agile Architecture
DAD
Arquitectos
Arquitectura para artesanos
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

Más contenido relacionado

PPT
Herramientas para ingeniería de software asistido (CASE)
PDF
Techtuesday Arquitectura Empresarial
PDF
Arquitecturas Empresariales, Soa Y Bpm 1.0
PPT
Oracle SOA Suite
PPT
Arquitectura SOA y herramientas .net
PPT
17 IBM SFIC 2009
PPT
Jazz: El soporte definitivo para el modelo de factorias de software
PPTX
DynamizeIT Introducción
Herramientas para ingeniería de software asistido (CASE)
Techtuesday Arquitectura Empresarial
Arquitecturas Empresariales, Soa Y Bpm 1.0
Oracle SOA Suite
Arquitectura SOA y herramientas .net
17 IBM SFIC 2009
Jazz: El soporte definitivo para el modelo de factorias de software
DynamizeIT Introducción

Similar a Arquitectura para artesanos (20)

PDF
Arquitectura de Software
PPTX
tendencia de los SI y diseño Arquitectonico.pptx
PPTX
ingenieria de software
PDF
Patrones de Diseño en la Arquitectura de Integración Moderna
PPTX
20161024 CFC Keynote - Transformation enablement
PDF
Evolución TI en el sector de Telecomunicaciones
PDF
KronOps - Perfil Corporativo
PPTX
BPM con BonitaSoft y gestión documental con Alfresco
PDF
Propuesta de Plataforma IoT - UCA Cuenca 2018
PDF
Arquitectura evolutiva por Fausto de la Torre
PPTX
paas-01[1].pptx
PPT
software
PPT
Diapositivas-Ing-SW-napa
PPT
Conceptos
PPT
Ingenieria de Software
PPTX
Una introducción a ontimize
PDF
Tarea semana 1
PDF
Tareasemana1
PPTX
Arquitectura de software
PDF
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
Arquitectura de Software
tendencia de los SI y diseño Arquitectonico.pptx
ingenieria de software
Patrones de Diseño en la Arquitectura de Integración Moderna
20161024 CFC Keynote - Transformation enablement
Evolución TI en el sector de Telecomunicaciones
KronOps - Perfil Corporativo
BPM con BonitaSoft y gestión documental con Alfresco
Propuesta de Plataforma IoT - UCA Cuenca 2018
Arquitectura evolutiva por Fausto de la Torre
paas-01[1].pptx
software
Diapositivas-Ing-SW-napa
Conceptos
Ingenieria de Software
Una introducción a ontimize
Tarea semana 1
Tareasemana1
Arquitectura de software
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
Publicidad

Último (10)

PPTX
Diagrama de componentes Arquitectura de software.pptx
PPTX
Uso de Máquina de suaje y corte CNC.pptx
PPTX
Tercera forma normal para el desarrollo de software
PDF
Herramientas-de-Recuperacion-de-Datos en Informática Forense.pdf
PDF
investigacion de documento como hacer la documentacion de un proyecto
PDF
MONGO DB GESTOR DE BASE DE DATOS NO RELACIONAL
PPTX
423439882-Auditoria-de-Base-de-Datos.pptx
PPTX
Fundamentos de Programación introducción a la computación
PPTX
El manual del Lenguaje de Programacion C .pptx
PPTX
Casos de Éxito IA para incrementar la productividad
Diagrama de componentes Arquitectura de software.pptx
Uso de Máquina de suaje y corte CNC.pptx
Tercera forma normal para el desarrollo de software
Herramientas-de-Recuperacion-de-Datos en Informática Forense.pdf
investigacion de documento como hacer la documentacion de un proyecto
MONGO DB GESTOR DE BASE DE DATOS NO RELACIONAL
423439882-Auditoria-de-Base-de-Datos.pptx
Fundamentos de Programación introducción a la computación
El manual del Lenguaje de Programacion C .pptx
Casos de Éxito IA para incrementar la productividad
Publicidad

Arquitectura para artesanos