[Sprint Inter(e)view] Alistair Cockburn – Part 3
Do you have a favorite value? If yes, which on and why?
Individuals and Interactions. I live from this.
Today, we talk a lot about hexagonal architecture in France, but this concept exists since 2005, and you have your share of responsibility. Can you tell us more about hexagonal architecture and why is still relevant today?
I first drew the hexagon for a design class in 1994. I solidified the ideas when helping a friend with his design problem around 2000. I finally understood the concept of « ports » and « adapters », and got sample code, in 2005. That’s when I published the pattern.
Kevin Rutherford picked it up and wrote about it for years, mostly without much uptake. Then the Domain-Driven Design community found it useful – because it clears all the non-domain element out of the way – and started popularizing it.
Quite strangely, I’m still learning what this pattern is, myself. Only in 2022 did I realize it was an example of a UML « Component » combined with the Strategy pattern. That is so perfect that this is how I prefer to describe it these days. The pattern stays the same, but my way of describing it changes with the years.
The pattern is important today for two reasons. The first is that technologies are changing so fast that we need an easy way to plug in new technologies as they show up. The other is that microservices are becoming common, and well-designed microservices implement the hexagonal architecture directly.
Can you tell us about Crystal, its creation, and its purpose?
I was working for the Central Bank of Norway in 1997. I already knew that methodologies had to be different and tailored, but hadn’t reached the full conclusion yet: As I looked around the Central Bank, I saw that there was absolutely no way that any one methodology could fit all the projects they had, from mainframe COBOL and assembler to workstation object-oriented to data warehousing. All I had to do to break any theory I had was to turn my head and look around: One of the projects around me had to work differently than whatever I thought up.
I concluded that there can be no such things as The One Best Methodology, that we need dozens of them. But how to organize and describe the desirable ones?
I chose two dimensions: how many people need to be coordinated on the project (the project’s size), and how much damage and death results from an uncaught mistake (the project’s criticality). There are other dimensions and factors, but those two seemed major.
In fact, two is too many, people can’t handle a two-dimensional selection. So I selected project size as the main index. Project size changes the communication and coordination structures the most. Then I coded them by color, indicating how heavy (dark) the methodology would be. « Clear » for teams of under ten people, Yellow for perhaps two dozen, Orange for up to 50, then Red, Purple, Blue and so on.
All of them shared only three main elements:
- Close communication.
- Frequent delivery.
- Reflective improvement.
Everything else could be tailored to the team, but those were essential.
« Crystal Clear » I wrote up in its own book. Crystal Yellow and Orange were described as chapters in other books (Surviving Object-Oriented Projects and Agile Software Development).
I have pretty much given up on methodology design in the last 15 years, focusing just on the question: How do we become more effective? without making the methodology the central question.
That gets us to the Heart of Agile 🙂
Let’s talk about passion, the heart, simplicity, and humans now. What is Heart of Agile? When and why was heart of Agile born?
In 2014, I was talking about how agile had become too complicated, we needed to get back to its essence. Craig Brown, a friend and currently CEO of Everest Engineering, challenged me to package that. At the next Advanced Agile workshop I taught, I played with that diamond shape and wrote the four words: Collaborate. Deliver. Reflect. Improve.
I ran the four words in various workshops for the next six months to see if they were sufficient, and found they were, so I went public with it.
Since then, we have found a few important and powerful things about these four words:
- They apply outside of software. Once we replace any reference to work products with the word « decisions », we can apply all of the agile ideas to any industry and any initiative. It is even suited to social impact projects, where people don’t know any of the usual agile or Scrum vocabulary.
- These four words don’t change anyone’s job description or title. They are only behaviors. Thus, they can be incorporated into any but the most hard-core waterfall-style project.
- They are simple, and easy to introduce. They are not scary. Everyone already knows how to collaborate, we just have to make it more meaningful and easier for them to do that. Collaboration is technical, but there are appropriately technical people on every project, in every industry. And so on.
You might notice the similarity to the three core elements of Crystal. That’s probably not an accident. 🙂
The big surprise to me was that I chose the word « heart » specifically to match « kokoro », which means « essence » and « heart ». But everyone is happy to see an actual heart in our work. The heart almost has taken precedence over the four words. It took me a while to adjust to, but I like that, although I still keep focus on delivering results.
What is Shu-Ha-Ri?
Shu-Ha-Ri are three Japanese words that I first encountered during my first draft of the Agile Software Development book, around 2000. They are used in Japanese martial arts to describe the path of learning:
- In the first stage, Shu (follow) the student doesn’t ask any questions, but only copies the instructor.
- In the next stage, Ha (break), the person starts branching out with different techniques, different weapons, different variations.
- In the final stage, Ri (leave, as in, leave the dojo), the person operates at the level of intuition and reflex, inventing, combining differently per situation in a full-body response.
The surprise is that these levels apply to all skills development, not just martial arts. Children go through them in learning, as do adults.
Understanding that this sequence is normal helps us understand why less knowledgeable people ask for recipes to follow, while the deep experts shy away from recipes. Exactly the problem with canned methodologies and frameworks: they are recipes suited for beginners, but not the best for every situation
You can read a longer version of this description at
You have Kokoro engraved in your skin? What is Kokoro?
Good eye. I was looking for a way to stay with the small Japanese tradition of shu-ha-ri that I had constructed, and at the same time find a way around the level shu, which I find is a block to learning and causes most of the arguments in our field.
Kokoro is Japanese and means essence, or heart, as in the heart of being something. The Japanese samurai Musashi used the word kokoro to describe the essence or heart of being a samurai, so it has a good history. For this reason, I use the word « heart » of agile, and not « essence of agile » or « center of agile ».
It turns out, happily, that in the heart of agile, we use words that are not mysterious: Collaborate, deliver, reflect, improve. My hope is that we can make learning so simple, using words and ideas everyone already known, that we can avoid the fight over recipes that comes when we propose shu-level technique.
And finally, to address your question: Why the tattoo? Because I got the tattoo for Ri in 2012. When I came up with Kokoro, it was inevitable that this tattoo had to show up, too. It matches my life journey, too. In 2012, I left home, left the dojo, to become a nomad – very Ri of me! By 2016, I had simplified my life to the basics. Kokoro or « heart of » can also be seen as « radical simplification ». Indeed, my life had become radically simpler, as had my consulting advice, and by extension, the way I approach learning. So it all fits together.
There are many Japanese terms and concepts in agility like Kanban, Kaizen, Shu-Ha-Ri and Kokoro. Do you think Japanese culture is a real source of inspiration for agility?
There is a bit of salesmanship in choosing words. The western market these days love things oriental, Italian and sufi-mystic. Hence shu-ha-ri, kaizen, kanban, all the Toyota Production words. Not just ordinary numbers or binary numbers for estimating, but Fibonacci numbers – how cool is that?. And if you can inject something by the mystic poet Rumi in there, extra points.
In my case the three levels, shu-ha-ri, were existing terms for something I was already talking about, so I decided to use known, existing words rather than try to create my own ladder of learning.
Kokoro I added just to try to stay in the same tradition.
Do you provide training for “Heart of Agile”? Does it exist a Heart of Agile community?
Yes, to both. What is interesting is that both my training and my personality have changed since teaching the Heart of Agile classes. Having to live with the word Collaborate every day just shifts a person’s behaviors. It has been interesting to watch.
For the communities, we let people set one up wherever they like, or just have a heart-of-agile themed session in whatever other agile meetup group they have. In Heart of Agile meetups, what people discuss is how they have improved collaboration, delivery, reflection and improvement.
Since there are no shu-level technique in the Heart of Agile, there is no specific one thing to teach. There is only dialog and exchange of ideas about how to improve at each of the four words.
There are meetups in person in Paris, in Edinburgh and in Tampa, Florida. Interestingly, thanks to the Covid lockdowns, all of the Latin American continent came together and merged the different local communities into one big community. Buenos Aires, Mendoza, Santiago, Medellin, Quito, Mexico City, Panama, Costa Rica – they all help each other organize very interesting joint events. Now, post Covid, some in-person local meetups are happening again.
Do you have support (video, site) to advise us to discover heart of agile?
At the Heart of Agile site, there is a Library, which has blogs, presentations and articles in English, French, Spanish and Portuguese. it is laborious to search through, we haven’t found good search plug-in, but there are articles and presentations.
Additionally, there are some number of videos of my presentations of mine online, a web search will turn them up.
When are you coming to France?
Tuesday next :). Watch out!