SlideShare a Scribd company logo
1 of 19
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

What's hot

Agile project management
Agile project management Agile project management
Agile project management Bimba Pawar
 
Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Ganesh Samarthyam
 
Agile development
Agile developmentAgile development
Agile developmentJoshuaU1
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesJérôme Kehrli
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptShweta Ghate
 
What Is the Rational Unified Process
What Is the Rational Unified ProcessWhat Is the Rational Unified Process
What Is the Rational Unified ProcessRobson Silva Espig
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and MethodsRiant Soft
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEVKrit Kamtuo
 
The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013Russell Archibald
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)Amardeep Vishwakarma
 
Aula 2 - Planning for Web Engineering by Roger Pressman
Aula 2 -  Planning for Web Engineering by Roger PressmanAula 2 -  Planning for Web Engineering by Roger Pressman
Aula 2 - Planning for Web Engineering by Roger PressmanRogerio P C do Nascimento
 
Rational unified process
Rational unified processRational unified process
Rational unified processnaveed428
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 

What's hot (20)

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

Similar to How Architecture Evolves in Agile Projects

Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleDhivyaa C.R
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Daniel Leroux
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overviewsunilkumar_
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsCognizant
 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented AnalysisAMITJain879
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified ProcessSharad Srivastava
 
Managing software development
Managing software developmentManaging software development
Managing software developmentRespa Peter
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING Gaditek
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
Explore the System Development Life Cycle and Phases
Explore the System Development Life Cycle and PhasesExplore the System Development Life Cycle and Phases
Explore the System Development Life Cycle and PhasesInexture Solutions
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex ProjectsBorys Lebeda
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open DevelopmentRoss Gardler
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohantyJulen Mohanty
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelChris Sterling
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 

Similar to How Architecture Evolves in Agile Projects (20)

Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycle
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workings
 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented Analysis
 
Itertaive Process Development
Itertaive Process DevelopmentItertaive Process Development
Itertaive Process Development
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
 
Managing software development
Managing software developmentManaging software development
Managing software development
 
Dev ops lpi-701
Dev ops lpi-701Dev ops lpi-701
Dev ops lpi-701
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Explore the System Development Life Cycle and Phases
Explore the System Development Life Cycle and PhasesExplore the System Development Life Cycle and Phases
Explore the System Development Life Cycle and Phases
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohanty
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at Intel
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 

More from Agileee

Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"Agileee
 
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...Agileee
 
Piotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complexPiotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complexAgileee
 
Nick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against KanbanNick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against KanbanAgileee
 
Anthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения KanbanAnthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения KanbanAgileee
 
Nataliya Trenina: Office magic
Nataliya Trenina: Office magicNataliya Trenina: Office magic
Nataliya Trenina: Office magicAgileee
 
Henrik Kniberg: Agile at home
Henrik Kniberg: Agile at homeHenrik Kniberg: Agile at home
Henrik Kniberg: Agile at homeAgileee
 
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEHenrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEAgileee
 
Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation Agileee
 
Scrum and kanban
Scrum and kanbanScrum and kanban
Scrum and kanbanAgileee
 
How To Change The World
How To Change The WorldHow To Change The World
How To Change The WorldAgileee
 
The Extreme Decade
The Extreme DecadeThe Extreme Decade
The Extreme DecadeAgileee
 
Agile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All WorksAgile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All WorksAgileee
 
Movivation 3.0
Movivation 3.0Movivation 3.0
Movivation 3.0Agileee
 
Effective Software Development in the 21st Century
Effective Software Development in the 21st CenturyEffective Software Development in the 21st Century
Effective Software Development in the 21st CenturyAgileee
 
Myths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise AgilityMyths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise AgilityAgileee
 
Lightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanshipLightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanshipAgileee
 
Lightening Talk: Lean start up
Lightening Talk: Lean start upLightening Talk: Lean start up
Lightening Talk: Lean start upAgileee
 
Lightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospectiveLightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospectiveAgileee
 
Lightening Talk: Just do it eng
Lightening Talk: Just do it engLightening Talk: Just do it eng
Lightening Talk: Just do it engAgileee
 

More from Agileee (20)

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

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

How Architecture Evolves in Agile Projects

  • 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