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

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 

Recently uploaded (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

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