The talks on this page fall into two broad categories, reflecting my interests in software visualisation and hands-on developer practices that help us write better software faster. I also very much enjoy running a full-day tutorial on test-driven development, sometimes with Martin Fowler, and sometimes with Dan North.

Upcoming talks include links with event details where available.

Architecture without Architects

The title software architect comes with many connotations, and often these are not good. Developers think of hand-waivers who inhabit ivory towers and have forgotten how to write code. Project managers think of technologists who are chasing perfection in initiatives that are serving obscure technical purposes. Yet, for the success of any software project architecture is crucial. In this talk Erik will present his experience on how to address this issue, introducing techniques that help teams come up with good designs and sustainable architectures without the need for a superstar architect. Topics include evolutionary architecture, the seductive power of abstractions, vertical slicing, software visualisations, and the need to experience the consequences of decisions.

  • iSAQB Architekturtage – Frankfurt and Munich, Germany
  • Lean, Agile & Scrum Konferenz 2013 – Zurich, Switzerland
  • 33rd Degree 2013 – Warsaw, Poland
  • YOW! 2012 Australia – Melbourne and Brisbane, Australia [Video] [Slides]

Questions for an Enterprise Architect

Following the success of agile and lean principles for individual projects we are now seeing interest in applying the same principles across the entire enterprise. This brings agile and lean thinking to architecture groups, and raises questions around enterprise architecture and governance.

In this session Erik introduces the concept of evolutionary architecture and then discusses questions such as: How can an architecture strategy be executed in a lean context? What about conformance? And: where do the architects sit in a lean enterprise?

  • Java Forum Stuttgart 2012 – Stuttgart, Germany
  • GOTO Conference 2011 – Århus, Denmark [Video] [Slides]
  • Keynote, JAX 2011 – Mainz, Germany [Video (German)]
  • Agile, Lean, and Kanban eXchange 2010 – London UK

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.

  • 33rd Degree 2013 – Warsaw, Poland
  • Developer Conference Hamburg 2012 – Hamburg, Germany
  • GOTO Geek Night 2012 – Hamburg, Germany
  • GOTO Conference Copenhagen 2012 – Copenhagen, Denmark – tutorial
  • QCon San Francisco 2011 – San Francisco, USA [Video]
  • GOTO Conference 2011 – Århus, Denmark – tutorial
  • SEACON 2011 – Hamburg, Germany – tutorial
  • QCon London 2011 – London, UK [Video]
  • Agile, Lean, and Kanban eXchange 2010 – London UK
  • JAX London 2010 – London, UK
  • Australian Computer Society (Nov 2009) – Sydney, Australia [Slides]
  • JAX Asia 2008 – Singapore / Kuala Lumpur, Malaysia / Jakarta, Indonesia
  • JAOO Australia 2008 – Brisbane and Sydney, Australia

Builds: from Good to Great

Fully scripted builds and continuous integration have become more mainstream in the past years. In this talk I want to share some of the great ideas and good practices for builds I’ve seen on projects that take continuous integration a step further. I will examine build pipelines, fully automated acceptance test suites, information radiators, virtualised test environments, and software quality reports. In addition I will discuss a few do’s and dont’s that can make the difference between a good build and a great build.

  • DevOps Days 2010 Europe – Hamburg, Germany – Ignite format [Slides]
  • YOW! Nights 2010 – Sydney, Melbourne, and Brisbane, Australia [Slides]
  • JAOO Australia 2009 – Sydney and Brisbane, Australia

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, builders, and Hamcrest matchers.

  • JAOO Nights Australia 2009 – Brisbane, Sydney, and Melbourne, Australia [Slides and Source]
  • 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

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.

  • Keynote, JAOO Australia 2008 – Brisbane and Sydney, 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

Older Talks

Older talks are listed on this page.