All of this content used to be spread over three different blogs at three different domains and it's now been merged into one. Why was it ever three? Because at the time it seemed reasonable that each of them was for a different audiences, and yet over time I've found that the lines between topic areas got blurrier and tended to overlap. So now they're all together in one place.
If you encounter things that seem broken, please let me know and I'll get them fixed.
Browse by topic area:
- Psychology & Behaviour (Formerly UnconsciousAgile.com)
- Flow, Kanban, Scrum (Formerly ImprovingFlow.com)
- Technical Practices (Formerly AgileTechnicalExcellence.com)
There's a lot here and if you're not sure where to start, here are some popular starting points. From these, you'll find crosslinks to even more topics. Enjoy!
- Psychological Safety: An overview. For the science, see the SAFETY model. For Google's research into why it's important for high performing teams, see Project Aristotle. What happens when we don't have that safety?
- Anxiety and Stress: For the science, see Polyvagal Theory or a description of some neuroscience, illustrated with a bear encounter. To let go of that anxiety, see the Anti-Anxiety toolkit.
- Recommended reading: I'm often asked for book recommendations.
- Generally more about the brain: Cognitive bias, motivation, default mode network, systems 1 & 2 and neurotransmitters (chemicals) that drive behaviour.
- Language patterns: Why language is so important, and Clean Language, a specific language pattern that has excellent application for coaching.
- Improving your meetings: Specifically retrospectives (my video course), and standups. What if your people won't participate?
- Improving learning: with neuroscience and LEGO.
- Flow & Kanban: Flow metrics, probabilistic forecasting, and understanding waste.
- Technical practices: Continuous integration, TDD as design, and ensemble programming.
- Something fun: The millennial whoop, and inattentional blindness.
Technical vs Architectural Debt
I was first introduced to the idea of splitting technical debt into two distinct parts during a conference talk given by Rebecca Wirfs-Brock. She talked about there being a real difference between simple cleanup such as renaming or adding clarity and architectural restructuring.
Optimizing collaboration
A manager at a past client of mine once had a new request come in. The new request would impact multiple different teams, that would all have to make changes to their individual pieces and then integrated. Because it was potentially a large change, he asked all the teams involved to come up with an estimate and they came back with a total estimate of ten to twelve weeks.
Ensemble Programming
Ensemble programming (aka “Mob Programming” or “Software Teaming”) is a technique where the entire team works together on a single story at the same time, on the same computer. It takes pair programming to the next level by including everyone.
Defects / Bugs
Surprisingly, there isn’t much agreement on what a defect is or how they should be addressed. This page explains our position on defects and how we feel they should be dealt with.
Neurotransmitters that drive behaviour
While science has identified hundreds of different neurotransmitters in our brains, there are a number that are most commonly identified with behaviour. Each of these are part of our survival mechanism and will encourage or discourage specific behaviours with the goal of keeping us safe.
Is a blocked column on your board always a poor practice?
You’ve probably heard that a blocked column on a board is a bad practice and most of the time that’s true. Let’s see why it’s usually bad and when it might actually be ok.
Technical Debt
The term “technical debt” is widely used in the industry even if there isn’t a clear definition of it and almost nobody uses the term in the way Ward Cunningham meant when he first coined it. It’s most commonly used to describe things in our environment, usually but not always code, that slow us down. These are things that are working - not bugs - but that are implemented in a poor way that makes them more difficult to understand or modify.
Pre-requisites for Continuous Improvement
Continuous improvement is a process of constantly seeking out ways to improve and optimize performance, processes, and overall organizational success. An agile environment hinges on this notion of continuous improvement. We don’t expect to be perfect today but we do expect to be improving over time.
Multiple boards for a single team
Many teams assume that they have to fit all their work on to one board and that’s not true. Kanban boards are there to help you visualize and manage the system. If one board can do that well then one board is fine. If it would be easier or better to visualize and manage across multiple boards then that’s what you should do.
Who should define the workflow?
We regularly talk about optimizing the workflow but we don’t talk as often about who should be doing that optimization. Should it be the manager, or some dedicated process specialist, or should we be leaving it up to the team to figure out their own workflow?