<<< Previous speaker Next speaker >>>

Kevlin Henney, Independent Consultant

 Kevlin  Henney

Kevlin Henney is an independent consultant and trainer based in Bristol, UK. He has variously 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.

Kevlin's work focuses on software architecture, patterns, development process and programming languages.

He has been a columnist for various magazines and online publications, including The Register, Java Report and C++ Report. With Frank Buschmann and Doug Schmidt, he is coauthor of two volumes in the Pattern-Oriented Software Architecture series.

Presentation: "With Economy and Elegance"

Time: Wednesday 09:30 - 10:30

Location: Conference Hall 3

Abstract:

Those involved in software often seek to relate the often abstract activity of software development to other more concrete and familiar disciplines, such as physical forms of engineering and traditional crafts. However, rather than providing software development with a clear sense of identity, these perspectives often caricature other disciplines and teach us little about our own. For example, the imagery of craft is often associated with cottage industries free of corporate concerns and a gentle idyllic non-process process. By contrast, to invoke engineering the appeal is often to exclude the notion of craft and concern for aesthetics but to include a rigid idea of process.

The truth is inevitably richer, more complex and offers more insight. For example, the Institution of Structural Engineers states that "Structural engineering is the science and art of designing and making, with economy and elegance, buildings, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected." All of which makes quite clear that the profession of structural engineering is perceived by that profession as a more rounded and well-balanced discipline than the two-dimensional perception software developers and others might project onto it.

Interestingly, looking at the phrasing used to characterise structural engineering, there are only a couple of words that have to be replaced to arrive at a description that applies usefully and insightfully to software development. Significantly, although software development is ultimately concerned with the development of software (the clue is in the name), it should do so with economy and elegance.

Password protected Download slides

Presentation: "Performance Art"

Time: Wednesday 13:00 - 14:00

Location: Conference Hall

Abstract:

Some systems really need to care about performance, some systems need to care less. Some developers spend a lot of time focusing on performance, whereas others do not perceive it as an issue. So, what is performance? Why and when should we care about it? And how do we go about getting it?

This talk takes a look at the concepts and challenges involved in the quality of performance, some design techniques that help to improve performance and the contexts in which they apply, along with addressing issues of development process approaches that help to determine when and what to do about performance.

Password protected Download slides

Presentation: "Panel: Does Architecture Quality Matter?"

Time: Wednesday 16:00 - 17:00

Location: Conference Hall

Abstract:

Experts never become tired to emphasize that software architectures should meet appropriate qualities to be successful and sustainable, such as flexibility, performance, robustness, and so on. Also, a lot of design tactics, patterns, and practices are known to meet such architecture qualities.

On the other hand, experience shows that most "real" software architectures follow another pattern: the "Big Ball of Mud" (see http://en.wikipedia.org/wiki/Big_ball_of_mud -- Joseph Yoder and Brian Foote), a casually, even haphazardly, structured system, whose organization is dictated more by expediency than design. Such a system works, somehow and for some time, but its maintenance and evolution is a costly nightmare.

How can it be that theory obviously deviates so much from practice? From a pessimistic perspective we can even ask: Do we actually need architecture quality? Isn't architecture quality simply a marketing term, or something a project can try to achieve, but if it does not work out, does not really matter?

On this panel, world-class software architects discuss, whether or not architecture quality is really needed in practice, and based on their position explore the fine balance between too little and too much architecture quality -- to define systems that are good enough!

Tutorial: "Pattern-Oriented Software Architecture"

Track:   Tutorial

Time: Thursday 09:00 - 16:00

Location: SAS Dania

Abstract:

Patterns have found a place in the toolbox of modern software developers. From their origins in building architecture to their recognition in frameworks, they have proven to be an effective means of capturing design knowledge. They provide a vocabulary for communicating and a platform for reasoning about design. In one sense they are nothing new, but in another there is still a great deal that many in software development can learn. Many developers find themselves constrained by a view of patterns that is anchored in the seminal but early work of the Gang of Four. There are many valuable perspectives on patterns, as well as many patterns. Appreciation and immersion in such perspectives is likely to improve not only understanding of patterns, but also architectural knowledge and design instinct.

This session takes both a broad and detailed look at patterns, embracing a perspective that spans over a decade of the POSA series. Concrete examples of individual patterns, pattern compounds, pattern complements, pattern stories and pattern languages are given, drawn from the various POSA volumes and beyond. This view is complemented with discussion of the concepts and theory behind patterns, a view that has evolved and matured over two decades of pattern usage in software.