Why Continuous Delivery is so important

Scrum is a (pretty) good framework for managing requirements, how they move into and out of backlogs, and how we inspect and adapt the outcome of those requirements. But one of its weaknesses is it has very little to say about engineering practices. One of those engineering practices is Continuous Delivery, or CD. This discipline […]

Continue reading

Servant Leadership and management by measurement

I was reading a bizarre post on Linkedin Pulse about some wacky new system for story point estimation. The details of it aren’t interesting or important. What is interesting is the motivation behind it. The imaginary problem that many people think needs to be solved is that traditional managers, when moved (kicking and screaming) to an […]

Continue reading

Cloud, the shift from buy to rent, and everything as a service

One of the topics I’m interested in is cloud computing. It’s an often misunderstood concept that fell victim to Gartner’s hype cycle in a pretty spectacular way. But it is a real thing and it is a game changer (it already has changed many games) and it is here to stay. But there are plenty […]

Continue reading

Don’t split people across agile teams

Why do people get split across agile teams? People sometimes get split across teams when working agile (or Waterfall, for that matter, but less often). You might hear things like “this team has two front-end developers, two back-end developers, a UX designer, a tech BA, and 50% of an architect”. Why 50%? There are usually […]

Continue reading

Pricing of technical debt

I talked recently about technical debt and the importance of cleaning it up via regular refactoring. This article will explain the pricing of technical debt and why we should do it. Any information system will probably at some point suffer from large scale or “macro” technical debt. This often happens when a project is implemented […]

Continue reading

Refactoring and technical debt

Importance of refactoring Refactoring and technical debt are important concepts, especially so in agile software development. What are they? Refactoring is modifying the internal structure of code without changing its behaviour. All functional tests should pass with the same results after the code has been refactored. If it behaves the same, why do we need to do it? […]

Continue reading

Scrum-but and Agile anti-patterns

There are many stories and anecdotes about Scrum-but and agile anti-patterns. If you’re wondering about the term,  it comes from the idea “we’re doing scrum, but we” [do something that is completely the opposite of what it says to do in Scrum]. Here are some common ones to look out for. Big up-front design “We […]

Continue reading

Product versus Sprint backlog

.I was reading a long and strange rant against Agile recently. It’s this one, if you’re curious and you have a lot of time to burn. It confirmed my belief that people often don’t understand the difference between the Product Backlog and the Sprint Backlog. This is a really important distinction. If people get it wrong, […]

Continue reading

Misconceptions around Minimum Viable Product

One of the most controversial topics in Agile / Lean thinking at the moment is the Minimum Viable Product, or MVP. This article will try and clear up the misconceptions around Minimum Viable Product. This concept came from Eric Ries’ influential book, The Lean Startup. In that book, Ries suggests that startups should not focus on […]

Continue reading

Theory of constraints in Agile

A concept from Management Theory called “theory of constraints” has become popular in Agile and Lean circles. The theory is quite simple. This article will explain the theory of constraints in Agile, in a micro and macro context. In any given system, there will be one component that is the constraint or bottleneck for the […]

Continue reading