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 / Des...
Estructuras muy formales
Organizaciones con mucha historia
Decisiones a muchos niveles
TTM “Time to Market”
TCO “Total Cos...
Normalizar
Homogeneizar
Controlar a los
desarrolladores
Facilitar cambios futuros
Permitir multi-proveedor
Evitar CVDD
Ind...
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
Technica...
Arquitectura
empresarial
“La organización fundamental
de un sistema, compuesta por
sus componentes, las relaciones
entre e...
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
Herra...
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herra...
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herra...
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herra...
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herra...
Arquitectura
de ejecución
Componentes software reutilizables
alineados con requerimientos
Arquitectura
de desarrollo
Herra...
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 = workspa...
The Craftsman I Would Like to Be
Alex Bolboaca
El título no es lo importante
Aprende tu técnica
Piensa a diferentes nivele...
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
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Arquitectura para artesanos
Próxima SlideShare
Cargando en…5
×

Arquitectura para artesanos

296 visualizaciones

Publicado el

Algunas ideas de arquitectura en grandes organizaciones pueden ser útiles a escala.

Publicado en: Software
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
296
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Arquitectura para artesanos

  1. 1. Arquitectura para artesanos Software Craftsmanship Barcelona 27.09.2015 Toni Tassani @atassani
  2. 2. Nada de tecnología Experiencia Niveles Relación con craftsmanship Ideas Expectativas
  3. 3. Arquitecto
  4. 4. Arquitecto
  5. 5. “La relación de componentes que forman un sistema y las interrelaciones entre ellos”
  6. 6. ¿De qué hablo cuando hablo de arquitectura?
  7. 7. El tamaño importa Startup Corporación
  8. 8. Velocidad Cambio Riesgo Inestabilidad Eficiencia Seguridad Control Rentabilidad
  9. 9. Rápida Informal Eficaz Rigurosa Formal Precisa
  10. 10. La historia es importante
  11. 11. Todo por decidir Aplicaciones y sistemas existentes
  12. 12. Todo por decidir Aplicaciones y sistemas existentes
  13. 13. el arquitecto hombre orquesta
  14. 14. Arquitecto en departamento de arquitectura
  15. 15. 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
  16. 16. Estructuras muy formales Organizaciones con mucha historia Decisiones a muchos niveles TTM “Time to Market” TCO “Total Cost of Ownership” Arquitecto
  17. 17. Normalizar Homogeneizar Controlar a los desarrolladores Facilitar cambios futuros Permitir multi-proveedor Evitar CVDD Industrializar
  18. 18. WTF!
  19. 19. The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary by Eric S. Raymond
  20. 20. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
  21. 21. Aprendiz Oficial Maestro
  22. 22. Growing the architecture
  23. 23. ¿Qué podemos aprender?
  24. 24. We Software
  25. 25. ¿Qué podemos aprender?
  26. 26. Enterprise Architect Solutions Architect BusinessArchitect DataArchitect NetworkArchitect InfrastructureArchitect TechnicalArchitect SecurityArchitect Subject Areas Projects/LowLevelStrategy/HighLevel
  27. 27. 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
  28. 28. TOGAF The Open Group Architecture Framework Alternativas: Zachman IAF
  29. 29. Business Layer Application Layer Infrastructure Layer ArchiMate
  30. 30. 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
  31. 31. 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 …
  32. 32. 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 …
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. Arquitectura como producto App1 App2 App3 App4 AppN ARQUITECTURA SOFTWARE BASE HARDWARE
  37. 37. Arquitectura como producto App1 App2 App3 App4 AppN FONTANERÍA SOFTWARE BASE HARDWARE
  38. 38. Arquitectura en Metodologías ágiles
  39. 39. DSDM Atern “Firm foundations”
  40. 40. Initial architectural envisioning “Architecture Owner” Agile DBAs Defer Commitment Agile Architecture DAD
  41. 41. Arquitectos
  42. 42. Arquitecto como rol Comunicar la arquitectura Abstracción, reducir detalle noUML Verbo y nombre
  43. 43. 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
  44. 44. 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/
  45. 45. Niveles de arquitectura Enterprise Architecture Software Architecture Comunicación Abstracción Respeto
  46. 46. TOGAF ArchiMate SAFe Architecture runway Architecture for Developers structrurizr
  47. 47. Firmitas Utilitas Venustas
  48. 48. Gracias Toni Tassani @atassani

×