SlideShare a Scribd company logo
1 of 29
Software Architecture Also
Needs Agile
Boyan Mihaylov
@bmihaylov
Agile Day Riga 2015
Grammatically correct
Agile Day Riga 2015 2
agile
[aj-uh l, -ahyl]
adjective
1. quick and well-coordinated in movement; lithe:
an agile leap
2. active; lively:
an agile person
3. marked by an ability to think quickly; mentally acute or aware:
She's 95 and still very agile
http://dictionary.reference.com/browse/agile
Software architecture also needs Agile…
3Agile Day Riga 2015
Thinking ExecutionPractices
Typical software architecture
Agile Day Riga 2015 4
Web Interface
Business Logic
Data Access Database
Caching
Authorization
Client Application
API
External services
What is software architecture
Agile Day Riga 2015 5
Software architecture is the fundamental organization of a SYSTEM
embodied in its COMPONENTS, their RELATIONSHIPS to each
other, and to the ENVIRONMENT, and the principles guiding its
design and evolution.
IEEE 1471
When I mention Agile…
Agile Day Riga 2015 6
“Yes, we are doing SCRUM”
Agile Day Riga 2015 7
Agile ≠ SCRUM
Agile methodologies
SCRUM
What is Agile all about?
Welcome changing requirements, even late in development
Deliver working software frequently
Reflect on how to become more effective
Agile Day Riga 2015 8
CHANGE
It is all about reacting to
http://www.agilemanifesto.org/principles.html
Agile in practice
Practice Degree of applying
Refactoring rather often
Simple Design rather often
Test-Driven Development sometime
Clean Code rather rare
Non-Solo Development rather rare
Clean Architecture rather very rare
Agile Day Riga 2015 9
http://agiledesign.org/2014/09/09/i-roadmap-to-an-agile-design/
Agile software architecture
Agile Day Riga 2015 10
Agile teams don't necessarily create
agile software architectures
A good architecture enables agility
but
Agility and the essence of software architecture, Simon Brown
Agile Day Riga 2015 11
Doing software architecture
is also an iterative process
Start as early as possible
Every meeting with a client should be attended of at least one
Agile Day Riga 2015 12
Always ask questions
Agile Day Riga 2015 13
Clients do not know what they do not know
Clients do not know what IT can
Clients do not know how to improve their processes-
Clients know what they do every day
+
Specification of the system (1)
Any kind of documentation that specifies what the system should do
◦ Word documents
◦ Wireframes / sketches
◦ Post-it notes
◦ White board drawings
◦ Photo shots
Agile Day Riga 2015 14
Specification of the system (2)
Agile Day Riga 2015 15
Can potentially include too many artifacts
Can become chaotic
Document content is hard to keep up-to-date-
Core functionalities are described very quickly
Visual representation of the future system
Customer can see it on-the-fly and add input+
Why to keep documentation
Write decisions down – every decision is important
Be able to justify your past decisions
Future maintenance of the system
Some people leave, some people come
Agile Day Riga 2015 16
How to do documentation (1)
Agile Day Riga 2015 17
UML?
People tend to ignore it
How to do documentation (2)
Agile Day Riga 2015 18
NoUML
Everything can be used
to do documentation
How to do documentation (3)
Agile Day Riga 2015 19
How to do documentation (4)
Agile Day Riga 2015 20
Agile Day Riga 2015 21
Developers should learn
how to do sketches
Agile Day Riga 2015 22
Don’t be a slave to tools,
make your own rules
Case example
Ferry company wants a new web system for selling tickets
The inventory is already managed by an external system
The new system should be decoupled in a way that the back-end part could be rewritten
in other language in the future
Agile Day Riga 2015 23
Iteration #1
The inventory service has a custom token-based authentication mechanism
The inventory service has limitations to the required data
Agile Day Riga 2015 24
Service layer
(API)
External inventory
web service
Browser application
Data
store
Iteration #2
The inventory service has performance issues
The inventory service stop functioning when “stressed too much”
Agile Day Riga 2015 25
Service layer
(API)
External inventory
web service
Browser application
Data
store
Inventory service
proxy
Iteration #3
Customers see tickets that are actually sold-out
Agile Day Riga 2015 26
Service layer
(API)
External inventory
web service
Browser application
Data
store
Inventory service
proxy
Cache
Iteration #4
Agile Day Riga 2015 27
Service layer
(API)
External inventory
web service
Browser application
Data
store
Inventory service
proxy
Cache
External inventory
system
Clear
inventory
cache
Take-away tips
Start simple, grow slowly
It is creative work
◦ People should enjoy it
Add complexity only when needed
◦ Try to postpone it as much as possible
◦ Do NOT predict the future, it changes a lot
Document important decisions
◦ You will regret not doing this at a later point
Agile Day Riga 2015 28
Ļoti pateicos!
29Agile Day Riga 2015
http://bit.ly/adr15-boyan
Rate meGet in touch
hey@boyan.in
@bmihaylov
Afterparty

More Related Content

What's hot

Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...mircea.lungu
 
Software Requirements Workshop Presentation
Software Requirements Workshop PresentationSoftware Requirements Workshop Presentation
Software Requirements Workshop PresentationIvarsLenss
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignRadu_Negulescu
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture FrameworkFirmansyahIrma1
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentSander van der Burg
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference ArchitectureJohan Eltes
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsIBM Rational software
 
From monolith to resilient microservices
From monolith to resilient microservicesFrom monolith to resilient microservices
From monolith to resilient microservicesRehanvanderMerwe1
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture conceptsPaul Preiss
 
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...IIBA_Latvia_Chapter
 
An Enterprise Ontology based approach to Model-Driven Engineering
An Enterprise Ontology based approach to Model-Driven EngineeringAn Enterprise Ontology based approach to Model-Driven Engineering
An Enterprise Ontology based approach to Model-Driven EngineeringJohan den Haan
 
Agile Architecture Tech And Patterns
Agile Architecture   Tech And PatternsAgile Architecture   Tech And Patterns
Agile Architecture Tech And Patternspragkirk
 
Architectural Driver
Architectural DriverArchitectural Driver
Architectural DriverNghia Le
 

What's hot (20)

Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
 
Software Requirements Workshop Presentation
Software Requirements Workshop PresentationSoftware Requirements Workshop Presentation
Software Requirements Workshop Presentation
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutions
 
From monolith to resilient microservices
From monolith to resilient microservicesFrom monolith to resilient microservices
From monolith to resilient microservices
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture concepts
 
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...
'Usage of business processes models: Theory and Practice by J.Bicevskis, G. K...
 
Sda 1
Sda   1Sda   1
Sda 1
 
An Enterprise Ontology based approach to Model-Driven Engineering
An Enterprise Ontology based approach to Model-Driven EngineeringAn Enterprise Ontology based approach to Model-Driven Engineering
An Enterprise Ontology based approach to Model-Driven Engineering
 
Agile Architecture Tech And Patterns
Agile Architecture   Tech And PatternsAgile Architecture   Tech And Patterns
Agile Architecture Tech And Patterns
 
Architectural Driver
Architectural DriverArchitectural Driver
Architectural Driver
 
Security Design Concepts
Security Design ConceptsSecurity Design Concepts
Security Design Concepts
 

Viewers also liked

Software Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patternsSoftware Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patternsJose Emilio Labra Gayo
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersDan Douglas
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design DecisionsHenry Muccini
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewWinton Winton
 

Viewers also liked (12)

Software Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patternsSoftware Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patterns
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 

Similar to Software architecture also needs agile

Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Alan Hood
 
Role of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptxRole of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptxRohitRadhakrishnan8
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQServiceRocket
 
The Business Justification for APM
The Business Justification for APMThe Business Justification for APM
The Business Justification for APMJonah Kowall
 
APIdays Paris 2019 - Customer First Strategy through API-led Connectivity by...
APIdays Paris 2019 - Customer First Strategy  through API-led Connectivity by...APIdays Paris 2019 - Customer First Strategy  through API-led Connectivity by...
APIdays Paris 2019 - Customer First Strategy through API-led Connectivity by...apidays
 
OCW mutual materials.pptx
OCW mutual materials.pptxOCW mutual materials.pptx
OCW mutual materials.pptxAuraPlayer
 
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & ProcessesRakuten Group, Inc.
 
How Mutual Materials Achieved a New Look and Feel
How Mutual Materials Achieved a New Look and FeelHow Mutual Materials Achieved a New Look and Feel
How Mutual Materials Achieved a New Look and FeelAuraPlayer
 
Solution Design & Architecture.pptx
Solution Design & Architecture.pptxSolution Design & Architecture.pptx
Solution Design & Architecture.pptxNikhileshSathyavarap
 
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...XebiaLabs
 
Hidden Gems for Oracle EBS Automation in the UiPath Marketplace
Hidden Gems for Oracle EBS Automation in the UiPath MarketplaceHidden Gems for Oracle EBS Automation in the UiPath Marketplace
Hidden Gems for Oracle EBS Automation in the UiPath MarketplaceAuraPlayer
 
Putting the Puzzle Together: Integrating Emerging Best Pracitces
Putting the Puzzle Together: Integrating Emerging Best PracitcesPutting the Puzzle Together: Integrating Emerging Best Pracitces
Putting the Puzzle Together: Integrating Emerging Best PracitcesLean IT Association
 
OCW mutual materials (2).pptx
OCW mutual materials (2).pptxOCW mutual materials (2).pptx
OCW mutual materials (2).pptxAuraPlayer
 
Agile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesAgile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesLeadingAgile
 
Run IT as Business Meetup self-service BI
Run IT as Business Meetup self-service BIRun IT as Business Meetup self-service BI
Run IT as Business Meetup self-service BIMark Wu
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIsWSO2
 
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)Razorleaf Corporation
 
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and SlackDenver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and SlackBig Compass
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
 

Similar to Software architecture also needs agile (20)

Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
Role of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptxRole of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptx
 
Scaled agile meets the ground
Scaled agile meets the groundScaled agile meets the ground
Scaled agile meets the ground
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQ
 
The Business Justification for APM
The Business Justification for APMThe Business Justification for APM
The Business Justification for APM
 
APIdays Paris 2019 - Customer First Strategy through API-led Connectivity by...
APIdays Paris 2019 - Customer First Strategy  through API-led Connectivity by...APIdays Paris 2019 - Customer First Strategy  through API-led Connectivity by...
APIdays Paris 2019 - Customer First Strategy through API-led Connectivity by...
 
OCW mutual materials.pptx
OCW mutual materials.pptxOCW mutual materials.pptx
OCW mutual materials.pptx
 
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes
[Rakuten TechConf2014] [C-6] Japan ICHIBA Daily Work - Tools & Processes
 
How Mutual Materials Achieved a New Look and Feel
How Mutual Materials Achieved a New Look and FeelHow Mutual Materials Achieved a New Look and Feel
How Mutual Materials Achieved a New Look and Feel
 
Solution Design & Architecture.pptx
Solution Design & Architecture.pptxSolution Design & Architecture.pptx
Solution Design & Architecture.pptx
 
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
 
Hidden Gems for Oracle EBS Automation in the UiPath Marketplace
Hidden Gems for Oracle EBS Automation in the UiPath MarketplaceHidden Gems for Oracle EBS Automation in the UiPath Marketplace
Hidden Gems for Oracle EBS Automation in the UiPath Marketplace
 
Putting the Puzzle Together: Integrating Emerging Best Pracitces
Putting the Puzzle Together: Integrating Emerging Best PracitcesPutting the Puzzle Together: Integrating Emerging Best Pracitces
Putting the Puzzle Together: Integrating Emerging Best Pracitces
 
OCW mutual materials (2).pptx
OCW mutual materials (2).pptxOCW mutual materials (2).pptx
OCW mutual materials (2).pptx
 
Agile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesAgile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily Releases
 
Run IT as Business Meetup self-service BI
Run IT as Business Meetup self-service BIRun IT as Business Meetup self-service BI
Run IT as Business Meetup self-service BI
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs
 
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)
AU 2014: Autodesk PLM 360 Success Story with Inphi (PPT)
 
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and SlackDenver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 

More from Boyan Mihaylov

How WebAssembly is changing the Web and what it means for Angular
How WebAssembly is changing the Web and what it means for AngularHow WebAssembly is changing the Web and what it means for Angular
How WebAssembly is changing the Web and what it means for AngularBoyan Mihaylov
 
Crafting a robust deployment pipeline in finance
Crafting a robust deployment pipeline in financeCrafting a robust deployment pipeline in finance
Crafting a robust deployment pipeline in financeBoyan Mihaylov
 
Using improv techniques for better agile teams
Using improv techniques for better agile teamsUsing improv techniques for better agile teams
Using improv techniques for better agile teamsBoyan Mihaylov
 
Web assembly brings the web to a new era
Web assembly brings the web to a new eraWeb assembly brings the web to a new era
Web assembly brings the web to a new eraBoyan Mihaylov
 
Showdown CI/CD - TeamCity
Showdown CI/CD - TeamCityShowdown CI/CD - TeamCity
Showdown CI/CD - TeamCityBoyan Mihaylov
 
Stop the internet, i want to go offline
Stop the internet, i want to go offlineStop the internet, i want to go offline
Stop the internet, i want to go offlineBoyan Mihaylov
 
Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Boyan Mihaylov
 
Lean or agile, software architecture is fragile
Lean or agile, software architecture is fragileLean or agile, software architecture is fragile
Lean or agile, software architecture is fragileBoyan Mihaylov
 
Agile software architecture
Agile software architectureAgile software architecture
Agile software architectureBoyan Mihaylov
 
Component-driven development with AngularJS
Component-driven development with AngularJSComponent-driven development with AngularJS
Component-driven development with AngularJSBoyan Mihaylov
 
Bringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBoyan Mihaylov
 
Identifying methods for measuring emotions
Identifying methods for measuring emotionsIdentifying methods for measuring emotions
Identifying methods for measuring emotionsBoyan Mihaylov
 

More from Boyan Mihaylov (17)

How WebAssembly is changing the Web and what it means for Angular
How WebAssembly is changing the Web and what it means for AngularHow WebAssembly is changing the Web and what it means for Angular
How WebAssembly is changing the Web and what it means for Angular
 
Crafting a robust deployment pipeline in finance
Crafting a robust deployment pipeline in financeCrafting a robust deployment pipeline in finance
Crafting a robust deployment pipeline in finance
 
Using improv techniques for better agile teams
Using improv techniques for better agile teamsUsing improv techniques for better agile teams
Using improv techniques for better agile teams
 
Web assembly brings the web to a new era
Web assembly brings the web to a new eraWeb assembly brings the web to a new era
Web assembly brings the web to a new era
 
Showdown CI/CD - TeamCity
Showdown CI/CD - TeamCityShowdown CI/CD - TeamCity
Showdown CI/CD - TeamCity
 
Stop the internet, i want to go offline
Stop the internet, i want to go offlineStop the internet, i want to go offline
Stop the internet, i want to go offline
 
Shifting to agile
Shifting to agileShifting to agile
Shifting to agile
 
Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?
 
Lean or agile, software architecture is fragile
Lean or agile, software architecture is fragileLean or agile, software architecture is fragile
Lean or agile, software architecture is fragile
 
Flux architecture
Flux architectureFlux architecture
Flux architecture
 
AngularJS 2.0
AngularJS 2.0AngularJS 2.0
AngularJS 2.0
 
To SPA or not to SPA
To SPA or not to SPATo SPA or not to SPA
To SPA or not to SPA
 
The AngularJS way
The AngularJS wayThe AngularJS way
The AngularJS way
 
Agile software architecture
Agile software architectureAgile software architecture
Agile software architecture
 
Component-driven development with AngularJS
Component-driven development with AngularJSComponent-driven development with AngularJS
Component-driven development with AngularJS
 
Bringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJS
 
Identifying methods for measuring emotions
Identifying methods for measuring emotionsIdentifying methods for measuring emotions
Identifying methods for measuring emotions
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 

Software architecture also needs agile

  • 1. Software Architecture Also Needs Agile Boyan Mihaylov @bmihaylov Agile Day Riga 2015
  • 2. Grammatically correct Agile Day Riga 2015 2 agile [aj-uh l, -ahyl] adjective 1. quick and well-coordinated in movement; lithe: an agile leap 2. active; lively: an agile person 3. marked by an ability to think quickly; mentally acute or aware: She's 95 and still very agile http://dictionary.reference.com/browse/agile
  • 3. Software architecture also needs Agile… 3Agile Day Riga 2015 Thinking ExecutionPractices
  • 4. Typical software architecture Agile Day Riga 2015 4 Web Interface Business Logic Data Access Database Caching Authorization Client Application API External services
  • 5. What is software architecture Agile Day Riga 2015 5 Software architecture is the fundamental organization of a SYSTEM embodied in its COMPONENTS, their RELATIONSHIPS to each other, and to the ENVIRONMENT, and the principles guiding its design and evolution. IEEE 1471
  • 6. When I mention Agile… Agile Day Riga 2015 6 “Yes, we are doing SCRUM”
  • 7. Agile Day Riga 2015 7 Agile ≠ SCRUM Agile methodologies SCRUM
  • 8. What is Agile all about? Welcome changing requirements, even late in development Deliver working software frequently Reflect on how to become more effective Agile Day Riga 2015 8 CHANGE It is all about reacting to http://www.agilemanifesto.org/principles.html
  • 9. Agile in practice Practice Degree of applying Refactoring rather often Simple Design rather often Test-Driven Development sometime Clean Code rather rare Non-Solo Development rather rare Clean Architecture rather very rare Agile Day Riga 2015 9 http://agiledesign.org/2014/09/09/i-roadmap-to-an-agile-design/
  • 10. Agile software architecture Agile Day Riga 2015 10 Agile teams don't necessarily create agile software architectures A good architecture enables agility but Agility and the essence of software architecture, Simon Brown
  • 11. Agile Day Riga 2015 11 Doing software architecture is also an iterative process
  • 12. Start as early as possible Every meeting with a client should be attended of at least one Agile Day Riga 2015 12
  • 13. Always ask questions Agile Day Riga 2015 13 Clients do not know what they do not know Clients do not know what IT can Clients do not know how to improve their processes- Clients know what they do every day +
  • 14. Specification of the system (1) Any kind of documentation that specifies what the system should do ◦ Word documents ◦ Wireframes / sketches ◦ Post-it notes ◦ White board drawings ◦ Photo shots Agile Day Riga 2015 14
  • 15. Specification of the system (2) Agile Day Riga 2015 15 Can potentially include too many artifacts Can become chaotic Document content is hard to keep up-to-date- Core functionalities are described very quickly Visual representation of the future system Customer can see it on-the-fly and add input+
  • 16. Why to keep documentation Write decisions down – every decision is important Be able to justify your past decisions Future maintenance of the system Some people leave, some people come Agile Day Riga 2015 16
  • 17. How to do documentation (1) Agile Day Riga 2015 17 UML? People tend to ignore it
  • 18. How to do documentation (2) Agile Day Riga 2015 18 NoUML Everything can be used to do documentation
  • 19. How to do documentation (3) Agile Day Riga 2015 19
  • 20. How to do documentation (4) Agile Day Riga 2015 20
  • 21. Agile Day Riga 2015 21 Developers should learn how to do sketches
  • 22. Agile Day Riga 2015 22 Don’t be a slave to tools, make your own rules
  • 23. Case example Ferry company wants a new web system for selling tickets The inventory is already managed by an external system The new system should be decoupled in a way that the back-end part could be rewritten in other language in the future Agile Day Riga 2015 23
  • 24. Iteration #1 The inventory service has a custom token-based authentication mechanism The inventory service has limitations to the required data Agile Day Riga 2015 24 Service layer (API) External inventory web service Browser application Data store
  • 25. Iteration #2 The inventory service has performance issues The inventory service stop functioning when “stressed too much” Agile Day Riga 2015 25 Service layer (API) External inventory web service Browser application Data store Inventory service proxy
  • 26. Iteration #3 Customers see tickets that are actually sold-out Agile Day Riga 2015 26 Service layer (API) External inventory web service Browser application Data store Inventory service proxy Cache
  • 27. Iteration #4 Agile Day Riga 2015 27 Service layer (API) External inventory web service Browser application Data store Inventory service proxy Cache External inventory system Clear inventory cache
  • 28. Take-away tips Start simple, grow slowly It is creative work ◦ People should enjoy it Add complexity only when needed ◦ Try to postpone it as much as possible ◦ Do NOT predict the future, it changes a lot Document important decisions ◦ You will regret not doing this at a later point Agile Day Riga 2015 28
  • 29. Ļoti pateicos! 29Agile Day Riga 2015 http://bit.ly/adr15-boyan Rate meGet in touch hey@boyan.in @bmihaylov Afterparty