SlideShare a Scribd company logo
Agile and Architecture: An Oxymoron?
Building robust software in an agile world
Agile software architecture
● 6+ years fullstack developer
● 3+ years technical architect @ one45 software
What I like to code in:
● iOS (objective-c, swift)
● PHP, Symfony 2,3,4(coming soon)
● AngularJS ??(1,2) ===> (React vs Vu)
Currently working on:
● Data Integration
● ML/AI
● Data visualization
Slido.com #6512
Hi my name is Scott Hsieh
Agile development
Lean Agile
Find the right
product
Building product
and getting the
product to client
MVP
Product
Management
Project
Management
Slido.com #6512
3 Amigos approach
- Plan
- Develop
- Test/Verify
- Ship
Good for getting things out the
door but not so much for putting
out robust code. We will see why
later.
Slido.com #6512
Typical Lifespan of a project (what management expects)
Time
Project
health
Slido.com #6512
Typical Lifespan of a project (What actually happened)
Time
Project
Health
Slido.com #6512
Journey of a software project - the beginning
Time
beginning
coupling
Slido.com #6512
Journey of a software project - the middle
Time coupling
a mistake
occurred
Slido.com #6512
Journey of a software project - the beginning
coupling
compensation
for mistake
Time
Slido.com #6512
Journey of a software project - the end
Time
rewrite
Slido.com #6512
The finished product
● A product that ...
○ That is 100% functional (MVP)
○ Changes made overtime have
reduced the ability to make future
changes as fast original pace
○ Full of software mistakes that are
invisible to Clients and QA aka
“technical debt”
Slido.com #6512
● Code does not moist, rot, degrade
● There are no crap elves that comes out at night and add
bad code
Code does not go bad on its own
Slido.com #6512
Code is bad only if we
put it there.
We are the crap elves.
Slido.com #6512
Most common causes for software mistakes
● Change in product requirements
● Software management
● Compounding existing technical debts
Slido.com #6512
Current Development Process
Lean Agile
Customer
Value
Speed/AgilityMVP
Fastest
way to
deliver
value
Product
Management
Project
Management
Slido.com #6512
The missing link
Lean Agile
Speed/Agility
Product
Management
Structure of
Development
Customer
Value
Architecture
Quality
MVP
Slido.com #6512
Software Architecture in Agile world
Slido.com #6512
Agility in Software Architecture
Adaptation Anticipation
Slido.com #6512
How does Software Architecture help?
Slido.com #6512
Most common causes for software mistakes
● Change in product requirements
● Software management
● Compounding existing technical debts
Slido.com #6512
Change in requirement
● Change in scope of the project
● Adding new functionality to systems that
was not originally designed to support
Slido.com #6512
Most common causes for software mistakes
● Change in product requirements
● Software management
● Compounding existing technical debts
Slido.com #6512
3 Amigos approach
- Plan
- Develop
- Test/Verify
- Ship
Slido.com #6512
Software management
Input Output
100% 85% 60% 45%
Slido.com #6512
Software development is a Relay race
Development as a team is all
about “Momentum transfer”
- Get to the end with minimum
loss in quality
- We spent a lot of time thinking
about how to get started on a
task. If receiver can build
momentum before he/she
receive the task we minimize
“outages”
Slido.com #6512
Software development
I’m done my
lap. Your turn.
K.
Wall of Confusion
Most common causes for software mistakes
● Change in product requirements
● Software management
● Compounding existing technical debts
Slido.com #6512
Dual track Agile
Slido.com #6512
The Zipper model
From product requirements derive:
● Functional requirements
● Architectural requirements
Establish
● Dependencies
● Cost
Plan interleaving:
● Functional increments
● Architectural increments
● Functional Requirement
● Technical Requirement
Slido.com #6512
The Zipper model benefits
● Gradual emergence of architecture
– Deliberate, not accidental
● Validate on architecture with actual
functionality (not mere hypotheses)
● Just enough to support development
● Functional Requirement
● Technical Requirement
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agie
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Product Manager, Technical Lead, UX
Scrum master, Technical Lead, Developers
Dual Track Agile
Balances between the big picture and
now – an agile software architect has
to think about what is happening
during the development together with
aligning it with the big picture of the
entire system.
Hands-on experience – an agile software
architect is also a developer and
works on the implementation of the
system. This gives first-hand
feedback on the taken architectural
decisions.
Produces prototypes to make Focus on
sustainability
Slido.com #6512
Product Manager, Technical Lead, UX
Project Manager, Technical Lead, Developers
Most common causes for software mistakes
● Change in product requirements
● Software management
● Compounding existing technical debts
Slido.com #6512
Technical Debt are software mistakes
- When a mistake
happened, this is pretty
much the only chance
you had to fix it
coupling
a mistake
occurred
Slido.com #6512
Technical Debts are software mistakes
- You cannot build on top of
things you don’t understand
- most of it are compensating flaws
of other mistakes
- most software mistakes can’t be
fixed
- cost/time
- invisible coupling
compensation
for mistake
Slido.com #6512
● when a mistake happens in a N-tier
architecture if a mistake happened. It will
smooth itself out further away the layer is
from the source
● Components with compensation logic is
no longer re-usable or else technical debt
will multiply
● More expensive to fix down the road
more layer the technical debt is seen
regardless how small it is
N-tier architecture compounding debt
Database/
Repository
Service
View
First mistake, had
the chance to fix it
but ignored
compensation
Slido.com #6512
- what we can do is correct the
mistakes at the level where the
mistakes happens
- dev team don’t allow direct access
to the resources with mistakes,
only interfacing through the
correction layer
- dev team has to agree on where
the correction layer lives
N-tier architecture debt correction
Database/R
epository
Service
View
mistake
correction
Slido.com #6512
Conclusion
● Architecture is only as effective if the end goal is clear
● Architecture and Product requirement has to align
● If requirement or the scope of the project change dramatically we don’t
repair/refactor we re-design
● Never access the the resource/logic directly if it has correction to fix the
original mistake
● Dev team should agree upon a standard way on how we should access
those problematic resources in systems going forward
Slido.com #6512

More Related Content

PDF
Agile Embedded Software
PDF
How To Review The Sprints Efficiently
PDF
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
PDF
DevOps & Technical Agility: From Theory to Practice
PDF
How to Measure Agility Project Success in Business Terms
PDF
Scrum Events and Artifacts in Action
PPTX
From Continuous Integration to Continuous Delivery and DevOps
PDF
Test Driven Design - GDG DevFest Istanbul 2016
Agile Embedded Software
How To Review The Sprints Efficiently
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
DevOps & Technical Agility: From Theory to Practice
How to Measure Agility Project Success in Business Terms
Scrum Events and Artifacts in Action
From Continuous Integration to Continuous Delivery and DevOps
Test Driven Design - GDG DevFest Istanbul 2016

What's hot (20)

PPTX
Shifting Left Webinar Slideshow
PPTX
It takes two to tango - why tech and business succeed or fail together v4.1 b...
PDF
Salesforce CI/CD - A strategy for success
PPTX
A Crash Course in Rapid Application Development
PPTX
Embedding a Shift Left Culture in your Enterprise
PDF
What scrum masters and product owners should know about software quality and ...
PDF
What is quality, and how do we build it in
PDF
Tech foundations-slides
PPTX
Agile Defense - Changing the Way Wars Are Fought, Logistics Delivered, and Ho...
PPTX
Go Faster - Remove Inhibitors to Rapid Innovation
PDF
The Phoenix Project DevOps Simulation - Paul Wilkinson
PDF
Forget about Agile
PDF
Agile Workshop: Releasing Quality Software
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PPTX
Harmonic's Journey Scaled-Agile In The New Generation of Cable OS v4
PPTX
Introduction to Agile Hardware
PDF
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
PPTX
Augury's Journey Towards CD by Assaf Mizrachi
PPTX
Project management in the age of accelerating change - IT/Tech specific
PPTX
CI/CD - A strategy for success (North Africa Dreamin' Prez)
Shifting Left Webinar Slideshow
It takes two to tango - why tech and business succeed or fail together v4.1 b...
Salesforce CI/CD - A strategy for success
A Crash Course in Rapid Application Development
Embedding a Shift Left Culture in your Enterprise
What scrum masters and product owners should know about software quality and ...
What is quality, and how do we build it in
Tech foundations-slides
Agile Defense - Changing the Way Wars Are Fought, Logistics Delivered, and Ho...
Go Faster - Remove Inhibitors to Rapid Innovation
The Phoenix Project DevOps Simulation - Paul Wilkinson
Forget about Agile
Agile Workshop: Releasing Quality Software
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Harmonic's Journey Scaled-Agile In The New Generation of Cable OS v4
Introduction to Agile Hardware
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Augury's Journey Towards CD by Assaf Mizrachi
Project management in the age of accelerating change - IT/Tech specific
CI/CD - A strategy for success (North Africa Dreamin' Prez)
Ad

Similar to Agile software architecture (20)

PPTX
Way to Agile from Tradition - Agile Way
PDF
Angularjs practical project experiences with javascript development in a bank
PDF
The Language of Application Architecture
PDF
Upmc tpdev1
PPTX
Technical Debt.pptx
PPTX
Agile – The New Kid in the Block?
PDF
Managing technical debt
PDF
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
PPTX
Scrum Framework in Agile
PDF
Web Development Course in Chandigarh.pdf
PPT
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
PDF
Oracle Development Cloud Service
PDF
Measure and increase developer productivity with help of Severless by Kazulki...
PDF
Grails & DevOps: continuous integration and delivery in the cloud
PPTX
DevOpsDays Jakarta Igites
DOCX
VinodKulkarni_Resume
PDF
technical debt management strategies
PPTX
EVOLVE'14 | Keynote | Cat Reusswig | Building a Great AEM Team
PPTX
A modern architecturereview–usingcodereviewtools-ver-3.5
 
PPT
Agile Engineering Practices
Way to Agile from Tradition - Agile Way
Angularjs practical project experiences with javascript development in a bank
The Language of Application Architecture
Upmc tpdev1
Technical Debt.pptx
Agile – The New Kid in the Block?
Managing technical debt
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Scrum Framework in Agile
Web Development Course in Chandigarh.pdf
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Oracle Development Cloud Service
Measure and increase developer productivity with help of Severless by Kazulki...
Grails & DevOps: continuous integration and delivery in the cloud
DevOpsDays Jakarta Igites
VinodKulkarni_Resume
technical debt management strategies
EVOLVE'14 | Keynote | Cat Reusswig | Building a Great AEM Team
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Agile Engineering Practices
Ad

Recently uploaded (20)

PDF
Understanding Forklifts - TECH EHS Solution
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPT
Introduction Database Management System for Course Database
PDF
AI in Product Development-omnex systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Understanding Forklifts - TECH EHS Solution
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Design an Analysis of Algorithms II-SECS-1021-03
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
L1 - Introduction to python Backend.pptx
Online Work Permit System for Fast Permit Processing
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Introduction Database Management System for Course Database
AI in Product Development-omnex systems
Wondershare Filmora 15 Crack With Activation Key [2025
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
Adobe Illustrator 28.6 Crack My Vision of Vector Design
2025 Textile ERP Trends: SAP, Odoo & Oracle
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
Lecture 3: Operating Systems Introduction to Computer Hardware Systems

Agile software architecture

  • 1. Agile and Architecture: An Oxymoron? Building robust software in an agile world
  • 3. ● 6+ years fullstack developer ● 3+ years technical architect @ one45 software What I like to code in: ● iOS (objective-c, swift) ● PHP, Symfony 2,3,4(coming soon) ● AngularJS ??(1,2) ===> (React vs Vu) Currently working on: ● Data Integration ● ML/AI ● Data visualization Slido.com #6512 Hi my name is Scott Hsieh
  • 4. Agile development Lean Agile Find the right product Building product and getting the product to client MVP Product Management Project Management Slido.com #6512
  • 5. 3 Amigos approach - Plan - Develop - Test/Verify - Ship Good for getting things out the door but not so much for putting out robust code. We will see why later. Slido.com #6512
  • 6. Typical Lifespan of a project (what management expects) Time Project health Slido.com #6512
  • 7. Typical Lifespan of a project (What actually happened) Time Project Health Slido.com #6512
  • 8. Journey of a software project - the beginning Time beginning coupling Slido.com #6512
  • 9. Journey of a software project - the middle Time coupling a mistake occurred Slido.com #6512
  • 10. Journey of a software project - the beginning coupling compensation for mistake Time Slido.com #6512
  • 11. Journey of a software project - the end Time rewrite Slido.com #6512
  • 12. The finished product ● A product that ... ○ That is 100% functional (MVP) ○ Changes made overtime have reduced the ability to make future changes as fast original pace ○ Full of software mistakes that are invisible to Clients and QA aka “technical debt” Slido.com #6512
  • 13. ● Code does not moist, rot, degrade ● There are no crap elves that comes out at night and add bad code Code does not go bad on its own Slido.com #6512
  • 14. Code is bad only if we put it there. We are the crap elves. Slido.com #6512
  • 15. Most common causes for software mistakes ● Change in product requirements ● Software management ● Compounding existing technical debts Slido.com #6512
  • 16. Current Development Process Lean Agile Customer Value Speed/AgilityMVP Fastest way to deliver value Product Management Project Management Slido.com #6512
  • 17. The missing link Lean Agile Speed/Agility Product Management Structure of Development Customer Value Architecture Quality MVP Slido.com #6512
  • 18. Software Architecture in Agile world Slido.com #6512
  • 19. Agility in Software Architecture Adaptation Anticipation Slido.com #6512
  • 20. How does Software Architecture help? Slido.com #6512
  • 21. Most common causes for software mistakes ● Change in product requirements ● Software management ● Compounding existing technical debts Slido.com #6512
  • 22. Change in requirement ● Change in scope of the project ● Adding new functionality to systems that was not originally designed to support Slido.com #6512
  • 23. Most common causes for software mistakes ● Change in product requirements ● Software management ● Compounding existing technical debts Slido.com #6512
  • 24. 3 Amigos approach - Plan - Develop - Test/Verify - Ship Slido.com #6512
  • 25. Software management Input Output 100% 85% 60% 45% Slido.com #6512
  • 26. Software development is a Relay race Development as a team is all about “Momentum transfer” - Get to the end with minimum loss in quality - We spent a lot of time thinking about how to get started on a task. If receiver can build momentum before he/she receive the task we minimize “outages” Slido.com #6512
  • 27. Software development I’m done my lap. Your turn. K. Wall of Confusion
  • 28. Most common causes for software mistakes ● Change in product requirements ● Software management ● Compounding existing technical debts Slido.com #6512
  • 30. The Zipper model From product requirements derive: ● Functional requirements ● Architectural requirements Establish ● Dependencies ● Cost Plan interleaving: ● Functional increments ● Architectural increments ● Functional Requirement ● Technical Requirement Slido.com #6512
  • 31. The Zipper model benefits ● Gradual emergence of architecture – Deliberate, not accidental ● Validate on architecture with actual functionality (not mere hypotheses) ● Just enough to support development ● Functional Requirement ● Technical Requirement
  • 32. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 33. Dual Track Agie Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 34. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 35. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 36. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 37. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 39. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 40. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 41. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 42. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 43. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 44. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 45. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 46. Dual Track Agile Product Manager, Technical Lead, UX Scrum master, Technical Lead, Developers
  • 47. Dual Track Agile Balances between the big picture and now – an agile software architect has to think about what is happening during the development together with aligning it with the big picture of the entire system. Hands-on experience – an agile software architect is also a developer and works on the implementation of the system. This gives first-hand feedback on the taken architectural decisions. Produces prototypes to make Focus on sustainability Slido.com #6512 Product Manager, Technical Lead, UX Project Manager, Technical Lead, Developers
  • 48. Most common causes for software mistakes ● Change in product requirements ● Software management ● Compounding existing technical debts Slido.com #6512
  • 49. Technical Debt are software mistakes - When a mistake happened, this is pretty much the only chance you had to fix it coupling a mistake occurred Slido.com #6512
  • 50. Technical Debts are software mistakes - You cannot build on top of things you don’t understand - most of it are compensating flaws of other mistakes - most software mistakes can’t be fixed - cost/time - invisible coupling compensation for mistake Slido.com #6512
  • 51. ● when a mistake happens in a N-tier architecture if a mistake happened. It will smooth itself out further away the layer is from the source ● Components with compensation logic is no longer re-usable or else technical debt will multiply ● More expensive to fix down the road more layer the technical debt is seen regardless how small it is N-tier architecture compounding debt Database/ Repository Service View First mistake, had the chance to fix it but ignored compensation Slido.com #6512
  • 52. - what we can do is correct the mistakes at the level where the mistakes happens - dev team don’t allow direct access to the resources with mistakes, only interfacing through the correction layer - dev team has to agree on where the correction layer lives N-tier architecture debt correction Database/R epository Service View mistake correction Slido.com #6512
  • 53. Conclusion ● Architecture is only as effective if the end goal is clear ● Architecture and Product requirement has to align ● If requirement or the scope of the project change dramatically we don’t repair/refactor we re-design ● Never access the the resource/logic directly if it has correction to fix the original mistake ● Dev team should agree upon a standard way on how we should access those problematic resources in systems going forward Slido.com #6512

Editor's Notes

  • #7: This graph here is what agile process promises if we follow its step to do scrum, retrospective, continuous delivery, gather feedback and repeat
  • #19: It is not just a diagram with lines and dots,
  • #20: But rather a complete set of decisions that govern the development of the system, including the code itself. Every decision made is a trade-off and should be carefully considered. The agile mindset requires to be open to changes, even late in the project
  • #31: What architecture offers is guide the project to a safe and smooth path towards the destination Layout what tools/resources we need for the project Identify and avoid potential pitfalls Not making any sharp turns (dramatic changes) or backtrack too much if a mistake is found