Kevlin Henney

About The Trainer

Kevlin Henney is a regular columnist for various industry magazines and a well known and popular speaker on topics such OO Design, Patterns, Agile Development and Software architecture at conferences in Europe and North America.

Kevlin currently works as an independent consultant and trainer based in Bristol. He has developed and delivered training courses, consultancy and software across a number of domains ever since getting involved in professional software development in the late 1980s.

Most of Kevlin’s work focuses on software architecture, patterns, development process and programming languages. His work has appeared in several magazines and online publications, including; The Register, Application Development Advisor, Java Report, C++ Report and CUJ. Along with Frank Buschmann and Doug Schmidt, Kevlin is coauthor of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages. He is also editor of the 97 Things Every Programmer Should Know project.

Overview

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 slice 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.

We will look 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.

Outline

  • What do we mean by software architecture?
  • What is the relationship between development process and software architecture?
  • How do agile and lean thinking relate to software architecture?
  • What are some of the properties of a good software architecture?
  • How does organisational structure affect software architecture?
  • How can software architecture be evolved and grown?
  • How can we handle change and uncertainty?
  • How can we respond to and handle legacy?

Requirements

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