Go to GeeCON.org

Architecture with Agility

2-day training with Kevlin Henney

Coming in April 2024
Warsaw

Kevlin Henney i is an independent consultant, trainer, writer and speaker. His development interests are in patterns, programming, practice and process. He has been a columnist for various magazines and websites, including The Register and Java Report. Kevlin is co–author of two volumes in the Pattern–Oriented Software Architecture series, editor of 97 Things Every Programmer Should Know and co-editor of 97 Things Every Java Programmer Should Know.

Join now!

4199 PLN (949 EUR) + 23% VAT

The first 2 people registered will receive GeeCON 2024 tickets!
The price includes lunch and coffee breaks.


Every system has an architecture, whether accidental or intentional, and regardless of whether it was put in place by a nominated architect or whether it emerged from the decisions and discussions of a team. All too often the focus of what is often described as architecture is centred around a specific set of platform technologies, which forms only one part of the set of concerns an architecture should. And all too often architecture is seen as a separate concern from development process, whereas the two are intertwined — what you build is influenced by how you build it, and vice versa.

The Architecture with Agility course looks at the relationship between Agile processes and good architecture, taking in development process models, architectural styles, requirements techniques, sufficient modelling techniques, design patterns and testing practices. This course includes a number of practical exercises so that attendees can see how the different activities fit together. There is also plenty of opportunity for discussion.

Objectives
  • Outline the relationship between development process and architecture
  • Appreciate the roles and failure modes of testing, modelling and technology platforms
  • Explore different architectural styles and design patterns
  • Try out concepts and practices in a series of exercises
Audience

Software architects and lead developers looking to both broaden and sharpen their skills in the disciplines touched on by software architecture, not just specific technologies.

Lecture content

Software Architecture

  • The scope of architecture
  • Significance of design decisions
  • Architectural knowledge
  • Reactive design

Development Process

  • Value–driven versus risk–driven approaches
  • Sequential versus iterative and incremental
  • Visualising progress
  • Deming's Plan–Do–Study–Act (PDSA) cycle
  • Agility
  • Lean thinking

Architectural Expression

  • Vision and communication
  • Architectural viewpoints and properties
  • Use cases and user stories
  • Documentation, tests and code
  • Models and Modelling
  • System context

Development Practice

  • Feedback
  • Exploration and prototyping
  • Reviews
  • Testing as learning
  • Test-driven development (TDD)
  • Sufficiency versus overdesign
  • Simplicity and usability

Patterns

  • Recurring designs
  • Context dependency
  • Lone patterns
  • Combining patterns
  • Pattern stories and pattern languages
  • Pattern examples and counterexamples
  • Architectural Styles

Execution Architecture

  • Optimisation and pessimisation
  • Cross–cutting concerns and emergent qualities
  • Physical considerations
  • The effect of concurrency and distribution

Dependency Management

  • Partitioning and organisation
  • External dependencies
  • The dependency horizon
  • Partitioning with respect to uncertainty and change

Refactoring and Re-engineering

  • Continuous improvement
  • Kinds of changes
  • Decremental development
  • Smells and technical debt
  • Refactoring, re-engineering and rewriting
Practical content

Exercises

  • Define scope of software architecture
  • Explore interaction of interruption of and progress
  • Identify consequences of intentional and accidental design decisions in attendee projects
  • List risks and challenges in actual and example projects

Language:
English

Place:
TBD

Time: 9 a.m. - 5 p.m.