Portrait of a software ethnographer
Dan North: keen observer of software developer behaviour
Dan North has been carefully observing productive software development teams that have quite exceptional – and rather surprising – habits. Based on his observations, he has created a set of unique patterns that allow others to mimic these innovative practices and optimise their technical development and business processes.
Who is Dan North?
Dan is the originator of “Behaviour-Driven Development“, an agile approach to software development that encourages teams to deliver the software that matters by emphasising the interactions between stakeholders. Dan also proposed “Deliberate Discovery“, which challenges assumptions around software planning and estimation.
Dan argues that there are no best practices per se, and that everything we do is subject to opportunity cost.
A systemiser and an empathiser
Dan is a software developer by training, but is not your typical introverted coder and logician. He’s a self-confessed extrovert, with charm and charisma, and an inveterate systemiser. His pioneering ideas about software development and processes are directly applicable to a technical audience, but also address the ‘softer’ side of the work, like stakeholder buy-in and team work.
“Tech guru” and engaging speaker
During Dan’s visit to EMBL-EBI he gave a seminar and detailed Q&A to a packed auditorium. The audience included technical staff from EMBL-EBI and the Wellcome Trust Sanger Institute as well as people who traveled to campus for the occasion. The seminar was followed by a full-day workshop, with 40 participants from technical teams at EMBL-EBI and ELIXIR.
The “Software Faster” Seminar
Working in software development for the financial services sector, Dan observed that some teams were operating more effectively than others, by several orders of magnitude. The high-pressure working environments were focused on producing ‘real-time critical’ systems, so there was a huge incentive – and opportunities – for teams to develop effective software faster.
Dan wanted to find out what made these teams so effective, even though they work faster than most development teams. He sought to determine whether their practices could be captured in a generalised scheme, so they could be reproduced. Dan also looked to developers such as Kent Beck, the American so-called “hoodie” software engineer and creator of extreme programming, who famously described himself as:
“not a great programmer, but a good programmer with great habits”
These sources inspired him to create a collection of novel habits that describe (and prescribe) effective behaviour of technical delivery teams. The result is “Software Faster”: patterns of effective delivery.
…but patterns aren’t for beginners anyway
Dan showcased some patterns, and stressed that this material isn’t designed with early-stage career developer in mind, rather it is for more experienced coders.
Plotting patterns on a pirate-style treasure map
Dan plotted his patterns on a vintage-style map with two dimensions: effectiveness versus difficulty. This grid gives you a comprehensible overview of the whole scheme, which (I am told) includes over 40 individual patterns.
The patterns are applicable across diverse types of technical delivery. Some are more relevant in domains such as real-time or high-security systems; others are more relevant to general software development, processes and management.
Jazzy names for patterns
Each pattern in the library has a funky name and backstory to go along with it, which helps it stick in your memory. Some memorable ones: #BurnTheShip, #BorderGuard, #Ginger Cake, #HairTrigger, #ShallowSilos, #Spike, and #StranglerVine. These names are a dream for a sketchnoter like me – the ready-made visual cues make it simple to draw each one.
A nice example, which spoke squarely to the EMBL-EBI audience, was #LightingTheForest: the pattern to handle legacy code systems. It describes how you can explore the dark scary forest that is a legacy system by lighting little fires to expose its inner workings, bit by bit, and only as far as you need to.
Using narratives, like ‘delving into a dark wood’, gives Dan an interesting way to teach a diverse audience about useful patterns. The ‘schoolchildren’ (figuratively) lean forward to hear storytime – this was one of several recognisable school-room techniques Dan used during the seminar, and it made the content stick.
Primary school teaching tricks made for a memorable workshop
You might expect a workshop on software development to be pretty dry, but Dan’s approach made sure that didn’t happen at all – even a few hours in. He achieved this by using four tricks familiar to primary school teachers the world over…
- Hands-up: when he wanted everyone to be quiet after group break-out work, he raised his hand in the air. Everyone in the room had to copy by being silent and putting their hand in the air too. This meant the quietness swept like a wave across the room until everyone was silent. It was awesome.
- Pomodoro: Dan ran the workshop in 20-minute blocks, because he believes that you can only concentrate for a maximum or 20 minutes or so at any one time. So he used a little tomato-shaped stopwatch timer called a ‘Pomodoro’ – which he set and left ticking at the front of the room
- Stand up: Dan asked everyone to stand up at random times during the workshop. His rationale was that it increases the blood flow to the brain by 20% – with short-lived effect. So when we needed to think about something, or do something, he said “Stand up!”
- Mobile teacher: Dan changed the place where he stood to talk to us during the day, rather than just ‘lecturing’ with a flip chart at the front lectern. So he would be at the front for a while, then move to the back of the room to talk, then to the side, etc. This mixed things up and helped to keep the participants’ attention.
I produced 2 sketchnotes of the workshop material as mementos of the day:
Thank you Dan – and come back soon!
We hope to host Dan North again at EMBL-EBI. Until then, I’ll be looking for the Software Faster book Dan is writing.
Thanks to the Genome Campus Software Craftsmanship Community – meetup group, who advertised the event.
Mary Todd Bergman of EMBL-EBI proofread this post – thanks, Mary.