Skip to content

Uncertainty, Software and Discovering Deliberately

Last week, Cara Turner gave a talk about Uncertainty, Software and Discovering Deliberately for Cape Town SPIN. Her presentation was about how software development has a dramatic arc, and that the story there is in the uncertainty. Here are my notes from her talk.

Sometimes our thinking can get stuck and we can become locked into a bad script. The cost of change curve makes us want to full spec up front: big changes late in the process take a lot of time, and are very expensive. We need to remember that on agile projects, the curve flattens out quickly. With that in mind, it can help to delay decisions to the last responsible moment.

I think that this logic can be applied to a lot of project structures. On the full cycle of Discover > Plan > Sketch > Iterate on Prototype, Style, Design, Front-end code, it can be useful to get into code earlier rather than later. More on that later.

Learning is a big part of being a developer. In fact, it’s our biggest skill, and the iterative nature of agile feeds into that. Hope is the most dangerous word in software. It’s said when we have no control over, and no investment in, the outcome.


Impact mapping gives us a planning framework to answer some important questions, and focus on the goals, not just the features we need to develop. Why > Who > How > What. (Check out the “Building a great product” talk later this week for a detailed look at this.)

Story mapping can be useful to get the gist of the thing. We can get a feel for the scope, the users, and the team.

Innovation and experiments

Innovation exercises can be great, and energising, but most teams don’t do them regularly. This tends to be because we don’t have experience with it, so we’re not sure how to go about it. We should do these exercises because they can create possibilities: they can lead to experiments, where we can use an inspect and adapt feedback loop to learn a lot.