Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecture And The Agile Approach - A Contradiction? - Reloaded

Architecture And The Agile Approach - A Contradiction? - Reloaded

Mit Softwarearchitektur werden häufig übermächtige, starre und langfristige Modelle assoziiert. Nicht zuletzt vor diesem Hintergrund wird das Thema Architektur im Umfeld agiler Methoden kritisch beäugt. Der Vortrag startet mit einer persönlichen Erfahrung zu diesem Thema – ein Architekturprojekt in einem agilen Unternehmen. Ausgehend davon wird diskutiert, welchen Stellenwert Softwarearchitekturen im agilen Umfeld besitzen und welche Ansätze existieren, um dennoch Softwarearchitekturen und deren Akzeptanz zu etablieren. Am Ende erfolgt eine Betrachtung der Rolle "Softwarearchitekt" im Kontext agiler Vorgehensmodelle.

André Neubauer

December 11, 2016
Tweet

More Decks by André Neubauer

Other Decks in Technology

Transcript

  1. Architecture And The
    Agile Movement
    A Contradiction?

    View full-size slide

  2. "Technology enthusiast, org development
    fanatic and strong advocate on modern
    leadership. Motivated by 'Y'! Love to work
    at @Misterspex, acting as CTO”
    – @devpg

    View full-size slide

  3. What is Agile?
    ■ Iterations
    ■ Transparency
    ■ Potentially
    shippable code
    ■ Continuous
    improvement

    View full-size slide

  4. What is
    architecture?
    "The highest level concept of a
    system in its environment. The
    architecture of a software system (at a
    given point in time) is its organization
    or structure of significant
    components interacting through
    interfaces, those components being
    composed of successively smaller
    components and interfaces."
    – IEEE Recommended Practice for
    Architectural Description, IEEE Std
    P1471

    View full-size slide

  5. What is
    architecture?
    "In most successful software projects,
    the expert developers working on that
    project have a shared understanding
    of the system design. This shared
    understanding is called ‘architecture.’
    [...]
    These components are usually
    composed of smaller components, but
    the architecture only includes the
    components and interfaces that are
    understood by all the developers."
    – Ralph Johnson

    View full-size slide

  6. "Architecture is about the important
    stuff. Whatever that is."
    – Who needs an architect?,
    by Martin Fowler
    "Stuff that's hard to change later."
    – Neal Ford
    What is
    architecture?

    View full-size slide

  7. What are the goals of
    architecture?
    ■ Reduce cost of
    change
    ■ Minimize impact
    ■ Make it easy to
    understand

    View full-size slide

  8. No conflict so far! :-)

    View full-size slide

  9. Architecture
    has a bad
    reputation in
    the agile
    world!
    "I want to talk to somebody that
    actually writes software, not drawing
    hand-waver"
    – The frustrated architect,
    by Simon Brown

    View full-size slide

  10. Architecture
    has a bad
    reputation in
    the agile
    world!
    „Der Software-Architekt ist die
    Vergangenheit, der Software-Experte
    die Zukunft.“
    – Die Zukunft des Architekten in der
    Software-Entwicklung,
    by Ilker Cetinkaya

    View full-size slide

  11. Architecture has a bad
    reputation in the agile
    world! Why?
    ■ Ivory tower
    ■ Big design/
    architecture up
    front
    (BDUF/BAUF)
    ■ Formal models

    View full-size slide

  12. Some real world
    experience

    View full-size slide

  13. Company ABC
    ■ Monolithic legacy
    app
    ■ More than 100
    software engineers
    ■ One year
    experience with
    agile methods
    ■ Output doubled!

    View full-size slide

  14. What should be done!
    Change web
    framework
    Event driven
    architecture
    Enhance dev
    environment
    Swimlanes
    New domain
    model

    View full-size slide

  15. What really happened!
    One more web
    framework
    New
    business
    Continuous
    delivery
    R/W-split
    pricing
    One more web
    framework

    View full-size slide

  16. Welcome to the
    information age!
    ■ Discontinuous
    change
    ■ Short product life
    cycles
    ■ Continuous price
    declines
    ■ Little customer
    loyalty
    ■ Based on
    knowledge work

    View full-size slide

  17. What’s wrong with
    ivory towers?
    ■ Single responsibilty
    ■ Knowledge silos
    ■ Distance
    ■ Overengineering
    ■ Separating
    planning from
    execution

    View full-size slide

  18. And what's wrong with big up front?
    The unknown unknown!
    Continuous discovery
    Window of
    opportunity

    View full-size slide

  19. Evolving Architecture
    Emergent Design
    An agile approach

    View full-size slide

  20. Evolving &
    Emergent
    evolve:
    To move in regular procession
    through a system.
    [de]: sich entwickeln
    emergent:
    emerging; coming into view or
    into existence; nascent; new.
    [de]: entstehend

    View full-size slide

  21. Architecture and
    design

    View full-size slide

  22. Spectrum of processes
    BDUF Cowboy
    hacking
    Some
    DUF
    EA+ED
    Waterfall Agile

    View full-size slide

  23. What's
    emergent
    design?
    ... is based on:
    ■ Best practice
    ■ High test coverage
    ■ Continuous refactoring
    Implement
    &
    Integrate

    View full-size slide

  24. The fine line between big up front and
    cowboy hacking!
    Complexity
    Time
    Big up
    front
    Cowboy
    hacking
    Emergent
    design
    Essential
    complexity
    Accidental
    complexity

    View full-size slide

  25. How to
    achieve
    "essential
    complexity"
    only? aka
    Evolving
    Architecture
    ■ Distinguish between cross-system
    (marco) and system-internal
    (micro) concerns
    ■ Focus on the objectives that
    currently matters
    ■ Defer decisions to the last
    responsible moment
    ■ Do research (e.g. spikes) to build
    up knowledge

    View full-size slide

  26. Objectives change over time
    Ease of
    development
    Homogeneity
    Modularity
    Simplicity Scalability
    Decoupling
    Cohesion
    (Support for)
    Heterogeneity
    Source: Breaking the Monolith

    View full-size slide

  27. Defer decisions in the future
    When you
    add it
    When you
    need it
    Technical debt

    View full-size slide

  28. The last responsible moment
    Benefits of
    deferring
    the decision
    Cost of
    change

    View full-size slide

  29. Who is
    responsible?
    Team?
    Architect?
    "Schlußendlich sollte es in einem
    agilen Team [...] das Ziel sein, auch
    die Aufgaben (Anm.:
    Architektur-Aspekte) gemeinschaftlich
    im Team umzusetzen."
    – Die Zukunft des Architekten in der
    Software-Entwicklung,
    by Ilker Cetinkaya

    View full-size slide

  30. Do we really
    need
    architects?
    "Es muss keine Position eines
    Software-Architekten geben. Es muss
    auch niemand zwangsläufig fix die
    Rolle eines Software-Architekten
    innehaben. An irgendwem muss das
    Thema jedoch hängen, glaube ich."
    – Architekturbewusstsein verkörpern,
    by Ralf Westphal

    View full-size slide

  31. What's the role of an architect?
    Architectus
    Reloadus
    Architectus
    Oryzus
    Source: Who needs an architect?

    View full-size slide

  32. Best practices
    ■ Decide for micro services/ SCS/ isolated small
    systems
    ■ Community-driven architecture board
    … put responsibility where it can be taken over

    View full-size slide

  33. Take away …

    "No one is arguing against the sense
    of architecture, but the way it's
    implemented!"
    – @devpg

    View full-size slide

  34. Take away …

    "Find the fine line between big upfront
    and cowboy hacking to avoid technical
    debt!"
    – @devpg

    View full-size slide

  35. Take away …

    "Evolving your software architecture is
    an opportunity not all environments
    have. Use it!"
    – @devpg

    View full-size slide

  36. Take away …

    “Move decisions to the last responsible
    moment."
    – @devpg

    View full-size slide

  37. Take away …

    "If you have architects, put them in the
    team."
    – @devpg

    View full-size slide

  38. Architecture And The
    Agile Movement
    A Contradiction?

    View full-size slide