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

.NET Day 19 - Software Architecture in the Agil...

.NET Day 19 - Software Architecture in the Agile World by Urs Enzler

Software architecture stands for stability and far-reaching decisions. How should that be possible in flexible and agile software development? I’ll show you in this presentation how a software architecture can be evolved iteratively and incrementally ,how decisions can be deferred to the right moment and some agile architecture patterns. You’ll learn how agile architectures enable quick changes, simple architecture validation and always deployable running systems.

dotnetday

May 28, 2019
Tweet

More Decks by dotnetday

Other Decks in Technology

Transcript

  1. KNOW-HOW PORTFOLIO .Net: WPF, EF UX: Usability Testing Testing: Exploratory

    Testing Emma Max Software Architecture: ATAM RE: agile RE TEAM NEEDS .Net: EF Software Architecture RE: agile RE MATCH
  2. PERSISTENCE 1. DOM only in-memory 2. File (serialized DOM) 3.

    Database here you know about - size of data - load - throughput SIMPLIFICATION WILLFULL IGNORANCE ABSTRACTION
  3. USER INTERFACE 1. build business logic independent of UI 2.

    design and implement UI, and call business logic here you know about - needed data - workflows - business needs DECISION DELEGATION
  4. The state or quality of being simple - easy to

    understand or explain. SIMPLICITY
  5. Use Cases Interface Adapters Frameworks & Drivers Entities Direction of

    Dependencies UI External Interfaces DB Web Program Flow CLEAN ARCHITECTURE replaceable details testable Tests
  6. MULTI-TENANCY OPTIMIZE INFRASTRUCTURE COSTS SCALING SECURITY VALIDATION EMPLOYEE DATA (JSON)

    TEAM DATA (JSON) ALGORITHM NICE UI ALGORITHM Simplification: json is human writable Simplification: no parametrization no simplification anymore Assumption: no errors A POSSIBLE EVOLUTION PATH DB
  7. VISION INITIAL REQUIREMENTS WORKSHOP WHERE TO START? INCREMENTAL / ITERATIVE

    DECOMPOSITION / COMPOSITION SIMPLIFICATION DECISIONS SPLIT AND DEFER CHANGE WITHOUT BREAKING EXECUTABLE SPECS SIMPLICITY CLEAN ARCHITECTURE FAST FEEDBACK AND ADAPT CONTINUOUS DELIVERY ARCHITECTURE WORKSHOP ASSESSMENTS CHANGE NO TIME FLEXIBILITY: MENTAL MODEL, SEPARATION OF CONCERNS EVOLVABILITY: EVOLUTION PATHS PRODUCT PRIORITISATION QUADRANTS PROBLEM DOMAIN DECOMPOSE ADAPT TRACER-BULLET FEEDBACK RELEASE COMPOSE
  8. URS ENZLER [email protected] twitter: @ursenzler blog: www.planetgeek.ch www.bbv.ch/blog OSS lead:

    Appccelerate user group: www.dotnet-zentral.ch Architektur in agilen Projekten bbv Academy: http://www.bbv.ch/de/bbv-academy.html