Hinweis: Die aktuelle OOP-Konferenz finden Sie hier!
SIGS DATACOM Fachinformationen für IT-Professionals

SOFTWARE MEETS BUSINESS:

The Conference for Software Architectures

Munich, 01 - 05 February 2016

Conference

Talk: Mo 1
Date: Mon, 01.02.2016
Time: 10:00 - 17:00
cart

Steering Agile Architecture

Time: 10:00 - 17:00
Talk: Mo 1

 

“Emerge your architecture” goes the agile mantra. That’s great. Developers get empowered and fluffy papers make room for real code structure. But, how do you ensure the cohesiveness of the result? The architecture of the system is important and it deserves special attention because it is too easy for it to go wrong in the long run, and it is too expensive when that happens. Yet, despite common belief, architecture cannot be commanded and controlled because architecture is a commons. In this tutorial we detail a method of approaching architecture by steering it on a daily basis through:

  • making architectural concerns explicit,
  • crafting automated checkers,
  • agreeing on findings, and
  • distilling corrective actions.

Target Audience: Engineers, Managers
Prerequisites: Have experience with at least one project involving
more than 5 engineers
Level: Introductory

You will learn:

  • Understand the emergent nature of software architecture.
  • Understand the need for contextual checkers.
  • Learn about a concrete method for steering architecture involving the whole team.

Extended Abstract
"Emerge your architecture" goes the agile mantra. That’s great. Developers get empowered and fluffy papers make room for real code structure. But, how do you ensure the cohesiveness of the result?
Testing, pair programming and code reviewing are the proposed means to approach this problem. However, testing is only concerned with the functional side of a system, and thus, it is not able to capture structural contracts. Pair programming and reviewing work well in the small, but they do not scale when you need to handle the millions of details entailed in modern systems.
Another way of approaching the structure of the system is through standard checkers, such as FindBugs or Checkstyle. These are fine tools, but when they are left to only check standard idioms, the specifics of your architecture remain unverified.
The architecture of the system is important and it deserves special attention because it is too easy for it to go wrong in the long run, and it is too expensive when that happens. In this tutorial we detail a method of approaching this challenge by steering the architecture on a daily basis through:

  • making architectural concerns explicit,
  • crafting automated checkers,
  • agreeing on findings, and
  • distilling corrective actions.

One challenging aspect is that of constructing custom analysis tools during development. This process requires a new kind of infrastructure and associated skills that enable you to craft such checkers fast and cheaply. However, this is a technical detail. The critical benefit comes from making architectural decisions explicit, and from the daily actions of cleaning the state of the system.
This tutorial is targeted to both engineers and managers. We cover the basics of the process, and we accompany the conceptual descriptions with real life examples.