Increasing potential as a specific output of flow

In Projects to Products, Mik Kersten divides flow items in software products in four: features, defects, risks, and debt. If you only count features added and bugs fixed – changes visible externally – then you neglect the other outcome of our work: the next version of the team+software. I prefer to think of “technical debt” …

Read moreIncreasing potential as a specific output of flow

Every action has two results (Erlang edition)

Every action has two results: a set of side effects on the world, and the next version of ourselves. I learned this from Erlang, a purely functional yet stateful programming language. Erlang uses actor-based concurrency. The language is fully immutable, yet the programs are not: every time an actor receives a message, it can send …

Read moreEvery action has two results (Erlang edition)

Principles of Collaborative Automation

(this is a transcription of the talk by the same name. Here is a video.) Collaboration is crucial in software teams – and not only among people. We need our software, our tools, and our automations to collaborate as well. But what does that mean? I have four prerequisites for you here, and then four precautions …

Read morePrinciples of Collaborative Automation

The Imperial Yaks

(continued from Attack Yak; series begins with Taxonomy of Yak Shaving) Sometimes you’re coding along, writing tests as little experiments “this should fail because I haven’t implemented the parser for it yet” — and it fails in a way you didn’t expect. And then you start digging and the parsing library isn’t working how you expected. And …

Read moreThe Imperial Yaks