erik doernenburg


Talks

Upcoming talks include links to the conference websites where available.

Software quality - you know it when you see it

Software quality has an obvious external aspect, the software should be of value to its users, but there is also a more elusive internal aspect to quality, to do with the clarity of the design, the ease with which we as technologists can understand, extend, and maintain the software. When pressed for a definition, this is where we usually end up saying “I know it when I see it.” But how can we see quality? This session explains how visualisation concepts can be applied at the right level to present meaningful information about quality. Different visualizations allow us to spot patterns, trends, and outliers. In short, they allow us to see the quality of our software. The tools and techniques shown are easy to apply on software projects and will guide the development team towards producing higher quality software.

History:
  • JAX Asia 2008 - Singapore / Kuala Lumpur, Malaysia / Jakarta, Indonesia
  • JAOO 2008 Australia - Sydney, Australia
  • JAOO 2008 Australia - Brisbane, Australia

[Slides]

Software Visualization and Model Generation

Models are often viewed as something you create during design time and use to generate code. What if we turn the approach up-side-down and generate models from code? Humans are very good at recognizing patterns in images, making visualizations a valuable tool, for example to recognize dependencies or data flow. This is particularly true for dynamic, loosely coupled systems that are often less explicit and evolve over time. Once you have generated a model you can take things a step further and run checks and validations against it. Visualizations can also be used to plot out source code metrics over various dimensions to detect potential “hot spots” in the application that may require special attention.

This talk applies the concepts of visualization and model generation to a broad range of usage scenarios, such as asynchronous messaging, software components and object-oriented applications.

History:
  • JAOO 2008 Australia - Sydney, Australia - with Gregor Hohpe
  • JAOO 2008 Australia - Brisbane, Australia - with Gregor Hohpe
  • TSS Java Symposium Europe 2007 - Barcelona, Spain - with Gregor Hohpe
  • ExpertZone Developer Summit 2007 - Stockholm, Sweden
  • OOP 2007 - Munich, Germany - with Gregor Hohpe
  • JAOO 2006 - Århus, Denmark
  • JavaZone 2006 - Oslo, Norway - with Gregor Hohpe
  • TheServerSide Java Symposium Europe 2006 - Barcelona, Spain - with Gregor Hohpe
  • TheServerSide Java Symposium 2006 - Las Vegas, USA - with Gregor Hohpe

[Slides]

How Simple is Too Simple? / Simplicity in Design

The problems we are looking to solve with software are becoming increasingly harder and more complex, but how do we best deal with this complexity? Martin and Erik will argue that the answer is simplicity. More than twenty years ago Fred Brooks identified accidential complexity, that is complexity that is not inherent in the problem but is caused by the approach we have chosen, as the only area left where significant gains in productivity could be made. So, if we manage to achieve simplicty in design and approach we can successfully tackle the real complexity of the problem we are solving. What we have seen, though, is that it is anything but easy to achieve simplicity. All too often we end up with designs that are either too simplistic or too complicated. The real skill in designing software lies in finding a good middle ground.

History:
  • Keynote, JAOO 2008 Australia - Sydney, Australia - with Martin Fowler
  • Keynote, JAOO 2008 Australia - Brisbane, Australia - with Martin Fowler
  • Keynote, OOP 2008 - Munich, Germany - with Dan North
  • Keynote, ExpertZone Developer Summit 2007 - Stockholm, Sweden
  • Keynote, ROOTS 2007 - Bergen, Norway - with Dan North

Taking TDD to the Next Level

More and more developers are being drawn to Test Driven Development (TDD). It doesn’t take much time or effort to get going, especially after you have passed that first hurdle of approaching development using the mantra of “red-green-refactor” instead of “code for days and then debug and test”. But after a while you discover that TDD has more to it than just basic state-based testing. In this session Erik will present in-depth discussions of topics such as interaction-based testing, dependency injection, classical vs mockist testing, test doubles, and the object mother pattern.

History:
  • JAOO 2008 - Århus, Denmark
  • NFJS eXchange 2007 - London, UK
  • TheServerSide Java Symposium Europe 2007 - Barcelona, Spain
  • ExpertZone Developer Summit 2006 - Stockholm, Sweden - with Jimmy Nilsson

Domain Annotations

Modern development platforms provide annotations that can be added to various language elements. (We use the Java term annotation as we feel it describes the concept more precisely than the term attribute which is used on the .NET platform.) In this talk we discuss a pattern of annotation use that we discovered during the development of an enterprise application and have used successfully since. We call this pattern Domain Annotations, and the idea is to enhance the domain model with domain specific annotations that can be used for a variety of purposes. This pattern has not played a major role in public debate yet but we have found that it is one of the most powerful usages of annotations.

An essay about domain annotations can be found in the ThoughtWorks Anthology.

History:
  • Great Indian Developer Summit 2008 - Bangalore, India
  • JAOO 2006 - Århus, Denmark - with Mike Royle
  • SPA 2006 - St. Neots, UK - with Mike Royle

[Slides] [Source]

Case Study: The new Guardian.co.uk

The Guardian newspaper has embarked on the next stage in its digital content strategy with the launch of its new website, one of the largest news sites in Europe.

From a technical perspective the development team faced several challenges: Advanced capabilities to organise and relate content require complex logic, which in turn means producing very dynamic pages at the highest levels of performance. The brief also called for a complete separation of page design and content logic, integration with user-generated content, and a strategy for the migration of over 1 million URLs.

In this case study, Mat and Erik present the overall solution, which uses practices and technologies such as Domain-Driven Design, the Spring framework, Ajax, AOP, Continuous Integration and automated web testing. They also discuss some innovative technical approaches in detail.

History:
  • OOP 2008 - Munich, Germany - with Mat Wall
  • JAOO 2007 - Århus, Denmark - with Mat Wall
  • TheServerSide Java Symposium Europe 2007 - Barcelona, Spain - with Mat Wall

[Slides]

Developer Productivity

Many traditional assumptions about software development have been challenged in recent years. Agile processes and service oriented architectures are two examples of this. An area that has seen little real scrutiny is developer productivity. Almost by convention, every new tool, framework or approach promises huge gains in productivity but a coherent view of all factors involved is usually missing. In this talk I examine several common myths about developer productivity and show that productivity improvements often require a trade-off with other desirable goals. I also discuss the relative impact of some tools and approaches.

History:
  • Great Indian Developer Summit 2008 - Bangalore, India
  • Keynote, ExpertZone Developer Summit 2006 - Stockholm, Sweden

[Slides]

Ten reasons why Agile teams fail

Agile methodologies such as eXtreme Programming and SCRUM are hot topics today — and they are also hot targets. When things go wrong on an agile project, it’s far too convenient to blame the methodology, and not thepeople charged with implementing it correctly.

In this talk Erik will discuss the most common reasons a team may fail when trying to execute a project using an agile methodology. He will cover how to learn from the mistakes of others, and avoid repeating new mistakes of your own.

This talk is based on experiences Clinton Begin and I have made on projects at ThoughtWorks.

History:
  • Agile China 2007 - Beijing, China
  • Skills Matter Session (June 2007) - London, UK
  • Øredev 2006 - Malmö, Sweden
  • TheServerSide Java Symposium Europe 2006 - Barcelona, Spain

[Slides]

Older Talks

Older talks are listed on this page.