SlideShare a Scribd company logo
Evolution of Architecture
      (I obviously mean „in agile projects”)



             Paweł Lipiński
pawel@agileee:/etc$whoami

•   based in Warsaw / Poland

•   then >10 years in Java

    ‣   SCJP, SCWCD, SCBCD, SCEA

•   i did: development, consulting, trainings, audits, architecture

•   software and system architect for the last 4 years

•   worked with: cowboy, quasi-RUP, FDD, Scrum (CSP), XP

•   currently:

    ‣   developer & owner @ Pragmatists, doing a merge of Scrum&XP

•   professional interests: (A)OO, agile, software quality assurance,
    languages
What’s this gonna be about


•   baseline - what’s architecture in general and how do I see it in agile
    projects


•   some principles of agile architecture
      what I think is important
      what helps
      what not to do


•   how we try to implement it
Welcome changing requirements, even late in
development. Agile processes harness change for
     the customer's competitive advantage.


The best architectures, requirements, and designs
       emerge from self-organising teams.



agile manifesto, principles #2 & #11
Architecture


„Architecture” is a term that lots of people try to define, with little
agreement. There are two common elements: One is the highest-level
breakdown of a system into its parts; the other, decisions that are hard to
change.
                                                    Martin Fowler, PoEAA




From the perspective of change, the role of architecture in agile
development becomes quite clear: a good architecture is responsive and will
support agility; a poor architecture will resist it and reduce it.
               Kevlin Henney, The role of architecture in agile development
so how should the architecture be?


should encourage change - so it must be extensible and modifiable

should promote quality - care for / ensure testability, readability, feeling of safety

promote creating value - make adding functionality simple, enable regular demos /
reviews of new features

enable research and verification - developers should always be able to check different
approaches, verify their ideas

be self-documenting - architecture lies in the code, the more readable it is at a high
level, the less one needs to describe (often just the package names are enough to give
high level description of architecture)
(some) principles of Agile Architecture




influenced by Dean Leffingwell, scalingsoftwareagility.wordpress.com
a team which codes the system, designs the system

conscious decisions need data - which appears / emerges during development

decisions should be made by the team - it increases responsibility and
engagement / commitment

making decisions by several people increases probability of making better ones

for the architecture to evolve, the architect (as a role) must be aware of costs and
consequences of changes - and these are known to the team only
choose the simplest architecture that can possibly work

   if we suppose that architecture can evolve together with the development of the
   system, we can also suppose that it’s enough that it supports only what’s
   necessary NOW and what we’re absolutely sure is required (vs. YAGNI)

   the simpler the architecture, the easier it is to control and grasp by the team

   the bigger the team, the more true it is
if unsure, check it with code

evolution of architecture, design, code means constant refactoring, permanent
trials and tests leading to the right solution

sometimes you need to check several things up to empirically verify which one is
better

that’s the best way to gain knowledge and architectural experience
the one to build is the one to test

performance and stability tests verify correctness of architecture (eligibility in
respect to nonfunctional requirements)

in order to find these kinds of issues, tests must be performed often (CI)

tests can lead architecture similarly as they do with design
if you know it, don’t pretend you don’t

some things can be safely assumed / decided on very early, so that big changes are
not needed later

some things lie in experience and there’s not much sense in verifying them

sometimes the last responsible moment is just the very beginning of a project

if a decision is to be made, and we have complete data do make it, there’s no sense
to pretend we don’t know what to do
architecture is a collaborative work

sometimes it just means a work done commonly within the development team

for big systems, with big/many teams it’s a subset of people

team members can change - it’s good to have developers there as well - they’re the
ones that need to commit!

Nokia Test - it’s not agile if any part of a project is done by a single person
how’s that done in practice?


                         evaluation
                                                 software
 initial concept            and
                                               development
                          changes



                      architecture team:     development teams
systems architect
                    architect + developers




    the concept is just a vision, not a BAUF
Architecture as a part of each iteration


 Analysis   Architecture   Design   Coding   Testing   Integration
Number:           As a Manager I want to       Estimate:
                                                         see statistics of progress
                                             13                                            8
                                                              of my projects

                                        Notes:

                                                 A statistic should contain:
                                                 - project name and description
                                                 - budget in € and %-tage of overall
                                                 budget
                                                 - progress as %-tage

                                                  2                15
                                                                                        Pragmatists
                                        Release: _____   Priority: _____                 Inspect & Adapt




architecture is just one aspect of a project, and just like any other
          is governed by the same forces and principles

   iterativeness, communication, feedback, balance between
       decisions and risk enhance reactiveness to change
Architecture is not a document or some prescriptions,
but an effect of a long-lasting process, which starts with
initial concept, and then, during system’s development
reacts to new-coming data and adapts to them.

It’s a message about current system state, a shared
team’s knowledge being under constant evolution.

Architecture as such is a waste. It’s of no value to a
client, but is an element of lowering costs of creating
the actual value.
One of the more insidious and persistent myths of agile development is that
up-front architecture and design are bad; that you should never spend time up
front making architectural decisions. That instead you should evolve your
architecture and design from nothing, one test-case at a time.
Pardon me, but that’s Horse Shit.
(...)
Don’t feel that TDD is the only way to design. On the other hand, don’t let
yourself get too vested in your designs. Allow TDD to change your plans if it
leads you in a different direction.


   Robert C. Martin, ObjectMentor blog, „The Scatalogy of Agile Architecture”, 25.04.2009
Thank You
     (Q&A)

pawel.lipinski@pragmatists.pl

  http://www.pragmatists.pl

More Related Content

PPT
Agile Development | Agile Process Models
PPSX
PMI Vs SDLC
DOCX
Unified Process
PPTX
RUP model
PDF
A Basic Introduction to Creating a Software Requirements Specification
PPT
Pressman ch-3-prescriptive-process-models
ZIP
Unified Process
PPTX
Software Development Process Models (SCRUM Methodology)
Agile Development | Agile Process Models
PMI Vs SDLC
Unified Process
RUP model
A Basic Introduction to Creating a Software Requirements Specification
Pressman ch-3-prescriptive-process-models
Unified Process
Software Development Process Models (SCRUM Methodology)

What's hot (20)

PPTX
Agile project management
PDF
Refactoring for Software Design Smells - 1 day Workshop
PPTX
Agile development
DOCX
The unified process
PPTX
Periodic Table of Agile Principles and Practices
PPT
Software project management 3
PPTX
extreme programming
PPTX
Unified process,agile process,process assesment ppt
PDF
What Is the Rational Unified Process
PPTX
List of Software Development Model and Methods
PPTX
Software Project Management - NESDEV
PDF
Feature driven design FDD
PPTX
The six phase comprehensive project life cycle model-2013
PPT
ABC of Agile (Scrum & Extreme Programming)
PPT
Aula 2 - Planning for Web Engineering by Roger Pressman
PPTX
Rational unified process
PDF
7 5-94-101
PPTX
Software Engineering Practice
DOCX
process models- software engineering
DOCX
Spm unit 3
Agile project management
Refactoring for Software Design Smells - 1 day Workshop
Agile development
The unified process
Periodic Table of Agile Principles and Practices
Software project management 3
extreme programming
Unified process,agile process,process assesment ppt
What Is the Rational Unified Process
List of Software Development Model and Methods
Software Project Management - NESDEV
Feature driven design FDD
The six phase comprehensive project life cycle model-2013
ABC of Agile (Scrum & Extreme Programming)
Aula 2 - Planning for Web Engineering by Roger Pressman
Rational unified process
7 5-94-101
Software Engineering Practice
process models- software engineering
Spm unit 3
Ad

Similar to Evolution Of Architecture, Pawel Lipinski (20)

PDF
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
PPTX
Unit iii-Architecture in the lifecycle
PPT
Agile Software Architecture
PDF
Agile Engineering - ODU ACM
PPT
Software Development in 21st Century
PDF
Reality checking agile's architectural inner workings
PPTX
Why We Need Architects (and Architecture) on Agile Projects
KEY
Agile Architecture (MAE slides)
PDF
The tension between agile and architecture
PPTX
Agile Architecture: Ideals, History, and a New Hope
PPTX
Agile Architecture and Modeling - Where are we Today
PDF
Right-sized Architecture: Integrity for Emerging Designs
PPTX
NISI Agile Software Architecture Slide Deck
PDF
10 Hinweise für Architekten
PDF
Software Craftsmanship - It's an Imperative
PDF
Ten Advices for Architects
PDF
Software craftsmanship - Imperative or Hype
PPTX
Modern software architect post the agile wave
PDF
Velocity 2010: Scalable Internet Architectures
PPT
Arch factory - Agile Design: Best Practices
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Unit iii-Architecture in the lifecycle
Agile Software Architecture
Agile Engineering - ODU ACM
Software Development in 21st Century
Reality checking agile's architectural inner workings
Why We Need Architects (and Architecture) on Agile Projects
Agile Architecture (MAE slides)
The tension between agile and architecture
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture and Modeling - Where are we Today
Right-sized Architecture: Integrity for Emerging Designs
NISI Agile Software Architecture Slide Deck
10 Hinweise für Architekten
Software Craftsmanship - It's an Imperative
Ten Advices for Architects
Software craftsmanship - Imperative or Hype
Modern software architect post the agile wave
Velocity 2010: Scalable Internet Architectures
Arch factory - Agile Design: Best Practices
Ad

More from Agileee (20)

PPTX
Robin Dymond: "Your Brain and Better Product Development"
KEY
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
PDF
Piotr Burdylo: Managing developers is complex
PDF
Nick Oostvogels: 5 Arguments Against Kanban
KEY
Anthony Marchenko: Опыт внедрения Kanban
PDF
Nataliya Trenina: Office magic
PDF
Henrik Kniberg: Agile at home
PDF
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
PDF
Nathaniel Cadwell: The Art of Facilitation
PPTX
Scrum and kanban
PDF
How To Change The World
PDF
The Extreme Decade
PPT
Agile Testing. Risks, Uncertainty and Why It All Works
PPT
Movivation 3.0
PPT
Effective Software Development in the 21st Century
PDF
Myths, Legends and Monsters of Enterprise Agility
PPTX
Lightening Talk: Software craftsmanship
PDF
Lightening Talk: Lean start up
PPTX
Lightening Talk: lama sutra of retrospective
PPTX
Lightening Talk: Just do it eng
Robin Dymond: "Your Brain and Better Product Development"
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Piotr Burdylo: Managing developers is complex
Nick Oostvogels: 5 Arguments Against Kanban
Anthony Marchenko: Опыт внедрения Kanban
Nataliya Trenina: Office magic
Henrik Kniberg: Agile at home
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Nathaniel Cadwell: The Art of Facilitation
Scrum and kanban
How To Change The World
The Extreme Decade
Agile Testing. Risks, Uncertainty and Why It All Works
Movivation 3.0
Effective Software Development in the 21st Century
Myths, Legends and Monsters of Enterprise Agility
Lightening Talk: Software craftsmanship
Lightening Talk: Lean start up
Lightening Talk: lama sutra of retrospective
Lightening Talk: Just do it eng

Recently uploaded (20)

PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPT
Teaching material agriculture food technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Cloud computing and distributed systems.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Teaching material agriculture food technology
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Cloud computing and distributed systems.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
NewMind AI Monthly Chronicles - July 2025
“AI and Expert System Decision Support & Business Intelligence Systems”

Evolution Of Architecture, Pawel Lipinski

  • 1. Evolution of Architecture (I obviously mean „in agile projects”) Paweł Lipiński
  • 2. pawel@agileee:/etc$whoami • based in Warsaw / Poland • then >10 years in Java ‣ SCJP, SCWCD, SCBCD, SCEA • i did: development, consulting, trainings, audits, architecture • software and system architect for the last 4 years • worked with: cowboy, quasi-RUP, FDD, Scrum (CSP), XP • currently: ‣ developer & owner @ Pragmatists, doing a merge of Scrum&XP • professional interests: (A)OO, agile, software quality assurance, languages
  • 3. What’s this gonna be about • baseline - what’s architecture in general and how do I see it in agile projects • some principles of agile architecture what I think is important what helps what not to do • how we try to implement it
  • 4. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. The best architectures, requirements, and designs emerge from self-organising teams. agile manifesto, principles #2 & #11
  • 5. Architecture „Architecture” is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level breakdown of a system into its parts; the other, decisions that are hard to change. Martin Fowler, PoEAA From the perspective of change, the role of architecture in agile development becomes quite clear: a good architecture is responsive and will support agility; a poor architecture will resist it and reduce it. Kevlin Henney, The role of architecture in agile development
  • 6. so how should the architecture be? should encourage change - so it must be extensible and modifiable should promote quality - care for / ensure testability, readability, feeling of safety promote creating value - make adding functionality simple, enable regular demos / reviews of new features enable research and verification - developers should always be able to check different approaches, verify their ideas be self-documenting - architecture lies in the code, the more readable it is at a high level, the less one needs to describe (often just the package names are enough to give high level description of architecture)
  • 7. (some) principles of Agile Architecture influenced by Dean Leffingwell, scalingsoftwareagility.wordpress.com
  • 8. a team which codes the system, designs the system conscious decisions need data - which appears / emerges during development decisions should be made by the team - it increases responsibility and engagement / commitment making decisions by several people increases probability of making better ones for the architecture to evolve, the architect (as a role) must be aware of costs and consequences of changes - and these are known to the team only
  • 9. choose the simplest architecture that can possibly work if we suppose that architecture can evolve together with the development of the system, we can also suppose that it’s enough that it supports only what’s necessary NOW and what we’re absolutely sure is required (vs. YAGNI) the simpler the architecture, the easier it is to control and grasp by the team the bigger the team, the more true it is
  • 10. if unsure, check it with code evolution of architecture, design, code means constant refactoring, permanent trials and tests leading to the right solution sometimes you need to check several things up to empirically verify which one is better that’s the best way to gain knowledge and architectural experience
  • 11. the one to build is the one to test performance and stability tests verify correctness of architecture (eligibility in respect to nonfunctional requirements) in order to find these kinds of issues, tests must be performed often (CI) tests can lead architecture similarly as they do with design
  • 12. if you know it, don’t pretend you don’t some things can be safely assumed / decided on very early, so that big changes are not needed later some things lie in experience and there’s not much sense in verifying them sometimes the last responsible moment is just the very beginning of a project if a decision is to be made, and we have complete data do make it, there’s no sense to pretend we don’t know what to do
  • 13. architecture is a collaborative work sometimes it just means a work done commonly within the development team for big systems, with big/many teams it’s a subset of people team members can change - it’s good to have developers there as well - they’re the ones that need to commit! Nokia Test - it’s not agile if any part of a project is done by a single person
  • 14. how’s that done in practice? evaluation software initial concept and development changes architecture team: development teams systems architect architect + developers the concept is just a vision, not a BAUF
  • 15. Architecture as a part of each iteration Analysis Architecture Design Coding Testing Integration
  • 16. Number: As a Manager I want to Estimate: see statistics of progress 13 8 of my projects Notes: A statistic should contain: - project name and description - budget in € and %-tage of overall budget - progress as %-tage 2 15 Pragmatists Release: _____ Priority: _____ Inspect & Adapt architecture is just one aspect of a project, and just like any other is governed by the same forces and principles iterativeness, communication, feedback, balance between decisions and risk enhance reactiveness to change
  • 17. Architecture is not a document or some prescriptions, but an effect of a long-lasting process, which starts with initial concept, and then, during system’s development reacts to new-coming data and adapts to them. It’s a message about current system state, a shared team’s knowledge being under constant evolution. Architecture as such is a waste. It’s of no value to a client, but is an element of lowering costs of creating the actual value.
  • 18. One of the more insidious and persistent myths of agile development is that up-front architecture and design are bad; that you should never spend time up front making architectural decisions. That instead you should evolve your architecture and design from nothing, one test-case at a time. Pardon me, but that’s Horse Shit. (...) Don’t feel that TDD is the only way to design. On the other hand, don’t let yourself get too vested in your designs. Allow TDD to change your plans if it leads you in a different direction. Robert C. Martin, ObjectMentor blog, „The Scatalogy of Agile Architecture”, 25.04.2009
  • 19. Thank You (Q&A) pawel.lipinski@pragmatists.pl http://www.pragmatists.pl