Where should a tech lead start?
I was recently talking to a developer who had just been promoted to tech lead. They were asking what they should be doing differently now. I suggested the first things I’d focus on are that their job is now…
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.
Blocked column: always a bad idea?
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.