Be More Productive

Get the most from your processes now!

Pipeline Protocols

rules, roles and heuristics governing releases


A pipeline is a metaphor for getting things done, and it’s easy to understand why when you think about an actual pipeline.

If you think of a water pipe: a big tube with a fluid getting pushed through. Open the faucet, out comes the water. Turn the faucet off, and the water just sits there, waiting till you need some more. Simple. That’s what I thought before I worked on software for oil pipelines.

Continue Reading


Operational Definitions

puts communicable meaning into a concept


The goal of an IT organization is to help the business show a profit through the delivery of valuable software. As we consider our process, instead of thinking in terms of projects, think in terms of capabilities needed to complete the work. The concept of capability implies measurability. Measurements taken from a stable process establishes a baseline for predictability. Predictability is needed to support planning, including budgeting. Yet we find that accurate communication about what is meant by capability is a significant problem.

Continue Reading


Sprint Commitments

your exit criteria is my intake criteria


Unless commitment is made, there are only promises and hopes… but no plans.

— Peter Drucker

Commitment is a good thing, but we should choose wisely what we commit to. An unfortunate anti-pattern is to treat the concept of Sprint Commitment as asking the development team to make a commitment to complete all the stories that get started in a Sprint: to “live up to their estimate”. A better choice would be a commitment to the full rigor of done and delivered.

Continue Reading


Story Splitting

optionality is everything


If Agile is about anything, it’s about preserving options. Incremental progress is what we do, but what we purposely refrain from doing goes a long way toward safeguarding our ability to make choices in the future. When splitting software stories, our chances of fostering successful outcomes are improved to the extent that we keep our options open!

A commitment to delivering at the end of an iteration, implies a commitment to the elimination of certain options. What we don’t commit to is our inventory of unexercised options.

Continue Reading


A Taxonomy of Waste

naming things is half the battle


Lean gives us a vocabulary to refine our understanding different kinds of wasteful activity, effectively a taxonomy for waste, which we can use to classify our observations, to use as a basis for selecting practice improvements. A proper lexicon helps us to understand and communicate the nature of the value stream we’re trying to model.

Continue Reading


Muda

non-value adding activities


Probably when I mention non-value adding activities, you’re thinking of that last meeting which was a total waste of time. Fair enough, we should talk about that too, but I want to focus on non-value adding activities in another sense. In software development, familiar ways of wasting time are building features that are never used and everyone’s favorite: unnecessary complexity.

Continue Reading


Muri

overburdening activities


Organizations that don’t understand their value stream typically don’t get overburdening either. Gas pipeline operators want to maximize throughput too, but they also know the physical constraints of their pipeline. Because the flow rate can’t be controlled absolutely, the line is operated under capacity, so that when there is a surge, the line doesn’t burst somewhere. The abstractions of software development make the consequences of operating over capacity less dramatic than a gas pipeline explosion, but the principles are the same.

Continue Reading


Mura

inconsistency and unevenness


The English concepts of unevenness, irregularity, inconsistency, inequality and lack of uniformity all somehow fit in the Japanese concept of Mura. Fostering a cross-functional team is an aspirational practice intended to mitigate the kind of Mura that results when work is siloed by skill specialty. The ability to more evenly distribute the work improves throughput and team cohesion.

Continue Reading


Process Debugging

the delta between observed and expected behaviors


Lean gives us the vocabulary of Muda, Muri, and Mura to classify our process bugs as a guide in tracking down the root cause. Practices for debugging software are well established; breakpoints in code can be a powerful means of dispelling ambiguity. Applying equivalent practices to process debugging helps us identify which process improvements are indicated.

Continue Reading


Scheduling Work

thinking past the timebox


Work scheduling is the set of protocols we use to commit stories to work and manage progression through to getting them done. Release management is often so closely bound up with work scheduling that they seem like the same thing, and when things are running smoothly, it hardly matters. However, when there are problems, separation of concerns is what keeps us from getting tangled up. A lot rides on our choice of Scrum, Kanban or bespoke scheduling system.

Continue Reading