Johannes Thönes

Software-Developer, ThoughtWorker, Permanent Journeyman, Ruby Enthusiast, Java and Devils Advocate.

Crucial Conversations (Book Review)

I recently finished “Crucial Conversations. Tools for Talking When Stakes Are High” (Amazon) from Patterson et al, which describes how to productively hold emotionally challenging conversations. The book had been recommended to me by several colleagues.

What is the book about?


According to the book, crucial conversations are define as those conversations were:

  • there are high stakes

  • there are opposing opinions

  • there are strong emotions

The aim is, to hold these crucial conversations as a dialog.  A dialog is a conversation where everyone can freely contribute to a growing pool of opinion. In non-dialog conversations people tend to make accusations or don’t contribute their views. In other words: they get violent or silent.

ACE! Conference 2013 - My Impressions

I had the opportunity to spend the last two days at the ACE! Conference in Krakow, Poland. ACE! is a nice conference about Agile and Lean practices - this year the guiding theme was Kanban.



The conference is one track and every speaker has 30 minutes or an hour to present his topic. At the end, there is no opportunity for questions - that is were the open spaces are for.

There are open spaces for two hours on both days. You can and should use this time to talk directly with the speaker about their ideas or your questions and suggestions. This allows you to really dive into the topics - rather than only getting the answer to one question. And of course, you can discuss any other topic you like.


I’m not going to cover all topics - you can find them here. And there should be videos out soon. But I will summarise a bit.

My Personal Retrospective Plan for 2012

It is time for a personal retrospective, as the year 2012 comes to an end. I took some time on the train to plan my retrospective.


So I’m sharing what I plan to do at the 2nd or 10th of January:

  • Intro Music: Listen to my retrospective song, to start the retrospective ritual.

  • Read Retrospective Letter: I write a letter to myself at the end of every longer retrospective. This time I’ll read the letters from 2011, Q1 2012 and the letter from the TWU retrospective.

  • Social Interaction Analysis

    • Queries: I’ll search in Facebook, Xing, LinkedIn, Twitter, E-Mail, Call-Log for some interesting patterns. I will prepare some statistics before the retrospective. In this step I’ll analyse those data.

    • Social MindMap: Integrate the insights gained from the queries into the a MindMap which should includes also the feedback I received directly from my peers.

When to Do a Personal Retrospective?

What is the right time to do a personal retrospective? As always, the answer is: “it depends”.


I have done personal retrospectives at different times, using different schemes.

There are two basic schemes I separate the timing of a personal retrospective into:

  • regular retrospectives
  • event triggered and topic oriented retrospectives

Hunting a Random Bug - a True Story

A few weeks ago, I finished a bug hunt for the RapidFTR open source project, which took me three evenings. I thought it might be worth sharing the story of the hunt.


This article will describe what I did. I will give an overview of my journey to actually find the root cause of what was going on. My goal with this article is to highlight examples of techniques you can use, to actually track down strange and random bug.

In the end, I found a pretty clear explanation what and why the problem happened.  And it is not a coincidence, that there is a ‘random’ in the title of this article.

How to Do Your Own Personal Retrospective?

In previous articles I wrote, that when doing your very own Personal Retrospective, it has to be in your personal way. But you may have asked yourself how it can work for you. To give you some ideas, I’ll share the approaches of three different people: Linda Rising, Ilias Bartolini and myself.


A retrospective has to be “tailor made” as Derby and Larsen [1] point out. This is in my opinion even more important for personal retrospectives. They need to fit to your thinking, your needs and your timetable. However, it is good to start with something - and over time adapt it to your own needs. I have done this, and probably everyone doing personal retrospectives is doing it.

So here are three approaches you can derive and mix and match from.

Testing Google Analytics Custom Events With Capybara and Poltergeist

In our current client project, we are using Google Analytics to track custom events of what users are doing on our website.


To make sure, this is working in the way we expect, we want to write functional tests to check if the events are send to Google Analytics when we expect them.

In this article, I will describe how we created a solution were the events sent are made visible on the website in a ‘debug mode’. They are captured and tested against in our Cucumber Test suite using Capybara and Poltergeist.

Testing Google Analytics Custom Events

Custom Events in Google Anayltics are a great way to enhance your usage statistics by tracking events specific to your website. However, as they are specific to your web page, they require you to write custom logic and call ga.js when done: gaq.push(‘trackEvent’, ‘Contract’, ‘scrollToEnd’, ‘landLine’).

Java 8: Testing the Lambda Water

Java 8 is about a year away and comes with a language feature I really look forward to: Lambda Expression.


Sadly the other big feature, Modules for the Java Platform, has been delayed to Java 9. But nevertheless, bringing lambda expressions (or closures if you like) into the language will make programming in Java much better.

So nearly one year to go - but as Java is developed open source now, we can have a look and try to use it right now. So let’s go!

Download and Install Lambda enabled Java 8

First, I expected that I have to compile Java 8 myself, as it has not yet been release. But I was pleasantly surprised to see, that there are binary build available for all platforms at So I just downloaded the latest developer preview build and installed it on my computer.

Creating a Ritual for a Personal Retrospective


Creating a ritual is a core part of planning your personal retrospective. In this article I will share briefly some thoughts on how make them a ritual.

This article is part of my Personal Retrospective Series – so read the other articles, if you want to learn more about personal retrospectives.

Why creating a ritual?

You might have noticed that it is fairly easy to notice mistakes of other people. But it is very hard to notice mistakes you made yourself. After all, you probably would have avoided the mistake in the first place if you knew, right?

Detecting own mistakes requires reflection. And as such, reflection is not something which is natural to human kind. So if you want to do reflection to learn from yourself, you can give yourself some support by creating a ritual: your personal retrospective.

Prime Directive of a Personal Retrospective


In this article, I will write about the directives or rules you should put in place for yourself while doing a personal retrospective. This article is part of my Personal Retrospective Series - so read the other articles, if you want to learn more about personal retrospectives.

Norman Kerth Prime Directive

Norman Kerth - the author of “Project Retrospectives: A Handbook for Team Reviews” - formulated the following prime directive for retrospectives:

Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.

This is true for team retrospectives. But it is true for your personal retrospective as well. I did adapt this directive a little bit for my personal retrospective. You can and should adapt it, too. A personal retrospective is your personal thing.