Talks

Upcoming talks include links to the conference websites where available.

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.

Upcoming:
  • JAOO 2008 - Brisbane, Australia - with Gregor Hohpe
  • JAOO 2008 - Sydney, Australia - with Gregor Hohpe
History:
  • 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?

Complexity is what makes delivering software hard. Obviously, we cannot avoid the complexity of the problem we are trying to solve but we can make the software itself simple. Dan and Erik argue that simple is not the same as simplistic, and that complex is not the same as complicated. They base their definition of simplicity on intent: Software is simple when the intent could not be any clearer.

Achieving simplicity in software depends on understanding when to make decisions. Too much initial work usually leads to analysis paralysis but strictly applying the YAGNI principle can be equally harmful. The key lies in being aware of the change event horizon for decisions and following the seemingly contradictory idea of putting energy into being lazy.

History:
  • Keynote, OOP 2008 - Munich, Germany - with Dan North
  • Keynote, ExpertZone Developer Summit 2007 - Stockholm, Sweden
  • Keynote, ROOTS 2007 - Bergen, Norway - with Dan North

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

TDD, Take 2

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.

Upcoming:
History:
  • 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.) The developer community is still exploring the use of annotations but we can identify several distinct usage patterns. We have also learned some lessons and have principles that guide our use of annotations.

This session explains different patterns of annotation usage. The key contribution of the session is a detailed discussion of a pattern that we have found 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.

Upcoming:
History:
  • JAOO 2006 - Århus, Denmark - with Mike Royle
  • SPA 2006 - St. Neots, UK - with Mike Royle

[Slides] [Source]

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.

Upcoming:
History:
  • 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]

Automated Web Application Testing with Selenium

Selenium is a test tool that allows you to write automated web application tests in many programming languages. The test use any mainstream browser with JavaScript support and can target arbitrary websites.

This talk starts with a quick demo of creating automated tests using the Selenium IDE and then show how these tests can be integrated with existing Java, C#, or Ruby test suites. We’ll end with a discussion on how to write robust tests, and how to structure tests to make them more reusable.

History:
  • Skills Matter Session (April 2007) - London, UK
  • QCon 2007 - London, UK
  • Øredev 2006 - Malmö, Sweden

[Slides] [Video]

Enterprise Integration Patterns

Repeatable success in delivering complex enterprise systems depends on the ability to leverage experience from past systems. On an architectural level, direct reuse is usually not practical and blueprint architectures are often not flexible enough for complex systems. However, design patterns provide a middle-ground by describing idiomatic use of technologies and capturing the essence of successful designs.

Topics discussed include: An introduction to Enterprise Integration patterns, real world examples, an in-depth look at central patterns and an overview of Enterprise Integration technologies.

Keynote, Microsoft EMEA Architect Forum 2005:
  • Athens, Greece
  • Dublin, Ireland
  • Istanbul, Turkey
  • Lisbon, Portugal
  • Moscow, Russian Federation
  • Prague, Czech Republic
  • Reading, UK
  • Stockholm, Sweden
  • Warsaw, Poland

[Slides]

Older Talks

Older talks are listed on this page.


erik doernenburg is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 License.