skip to main content

gerg.dev

Blog | About me

Demo things that aren’t done

When I saw this tweet from John Cutler about demos:

I immediately composed this response, without even thinking about it:

I hesitated to say that I wrote it “without thinking” right now because apparently quite a few people agree in a much different sense. This described a natural and desired state of affairs for me, a natural extension of John’s tweet. It wasn’t a new or difficult idea for me. The internet, however, seemed to think I was an idiot.

Responses ranged from by-the-book “that isn’t how Scrum defines it”:

https://twitter.com/GeekTieGuy/status/1042228608872267776

to pure disbelief that I would utter something so ignorant:

You know you’ve made it on Twitter when someone calls you inexperienced and ignorant!

One person even said it felt like a personal attack, though I have no idea why. Perhaps she’s also a Scrum Guide Fundamentalist? (Alas, Twitter makes it quite hard to find quote-tweets after the fact, so I can’t follow up.)

I thought I should take a few minutes to explain a bit more about what I meant.

Demos aren’t just for Scrum

This is the obvious one. As far as I know Scrum doesn’t own a trademark on the word “demo”. A follow up from Oluf Nissen said we shouldn’t be using a word from Scrum if we meant something else. We at least needed to start with The One True Scrum. Well, I did. I did that style of demos when I first started in software development, both before and after adopting Agile, and I’ve been in demos again recently that took that approach: Strictly at the end of the sprint, demo what is “done”. It was a dreadful approach for us because it delayed feedback and hid the progress on everything that wasn’t “done” (whatever that means). I have yet to see a development team where that approach works. We started with it, yes, but then moved on.

Demo as soon as you can use feedback

I think John’s original point touched on half of what I saw as the problem with this kind of demo. As I heard Liz Keogh say recently, knowledge goes stale faster than tickets on a board do. If I finish something small on the 3rd day of a 10 day sprint, I’m likely to not even remember that I did it by the time the official demo comes along. For something bigger, if I finish it on the 7th day and put it aside to work on something else for three days, there’s a much higher cost to go back to it than if I had feedback right away. So we should demo work when the work is done, not when a sprint is done.

The other aspect that I added—demoing stuff that isn’t done—stems from the same reason. If there is a demo meeting scheduled, I want to use that time for getting feedback on as many things as possible. There’s a priority to this, of course: stuff that is actually ready to be deployed probably goes first. But there is a spectrum. If I have a working prototype that isn’t production-ready yet, I can still throw it up on the screen to get feedback on how it works and whether there are any obvious complications that I’ve missed. Even earlier, I can go through the approach I’m planning to get feedback on the design before writing any code. I can demo research results, proposed tools or libraries, or code that someone wrote for something else that might be related.

One response on Twitter did touch on this aspect:

Any work I did this sprint, no matter what state it is in, is something I can demo. It’s something Iย should demo. In my experience there’s very little work that can’t benefit from taking this step, and if it isn’t the right audience to provide feedback then why are they there? The moment something is “done” is actually theย worst time for feedback. Once it makes that transition, even if it’s just a mental re-categorization, there’s more inertia against change. Feedback while something is still in flux is like steering a moving car. Feedback after that car has stopped means starting the engine again and putting it in reverse.

Do this very, very often

Someone else suggested doing this only “very very rarely”, lest you build a reputation for vaporware. If I had to bet, I’d guess we were talking about different contexts. So let’s clear that up. I’m not talking about doing this sort of thing in a sales pitch. I’m not a sales guy, but demonstrating features that don’t actually exist yet to customers in order to sell them on a product does seem like a bad idea.

Rather, this is a demo to help answer the question “are we building the right thing?” That’s a question that should be asked early and often. The difference is both in the audience and in being clear about what you’re demonstrating. Is this the right audience to answer that question? And how are they likely to interpret the information you’re giving them?

In the context of active agile development, the time from a demo to a feature in production should be small, even if the demo happens early in development. The longer that lead time is, the more likely a perception of “vapourware” could become, but the blame for that rests with the long wait time itself. Again this was a quote-tweet so I can’t follow up further, but to me you’d have the same risk just from being transparent about when work on a feature started. Have a long enough cycle time and by the time the feature is deployed people will stop believing it will ever arrive. The solution is to fix (or justify) the long time, not hide it.

Demo things that aren’t done

Demos are for feedback, so don’t limit yourself to work that is “done” and therefore least easily changed. Make sure you have an audience for demos that can provide the feedback you need, and solicit that feedback often. Demo things that aren’t done.

About this article

2 Comments

Add yours →

  1. robertday154

    @ October 24, 2018, 03:33

    Actually, I thought your first response was being sarcastic, but that was probably because I picked up on the word “sprint” in the OP and so automatically locked into the particular Scrum meaning of “demo”. And I have a favourite Dilbert on demos:

    “The software isn’t 100% complete.”
    (Points to a blank screen…)
    “If it had a user interface, you’d be seeing something here – here – and sometimes here.”
    “And then you’d be saying ‘I gotta get me some of that.’ Any questions?”

    But then subsequent posters didn’t seem to get it either, and then what you wrote in the rest of your post made sense. Which perhaps points out the imperfections of Twitter, or more likely why I don’t do Twitter ๐Ÿ™‚

    I think the issue is the actual meaning of the word “demo”. The trouble with any framework, as some posters illustrated all too well, is that people may get themselves locked into the one specific meaning of a term and then can’t see any other. So “demo” was taken to mean “the ceremony at the end of a sprint where the team unveils the shippable product they’ve spent the sprint working on”.

    But as you say, other demos are possible. Of course you can demo things that aren’t done, if your audience are people who are either going to be able to help you refine the product or who need to know the direction you are taking because it will affect the work they are doing. Personally, I wouldn’t call that a “demo”; I’d call it “collaborative working”. But then again, I’ve always thought it was more important to concentrate on what a thing IS rather than what it is called.

    But perhaps that’s something I’ve been doing wrong all these years. ๐Ÿ™‚

  2. Cassandra H. Leung

    @ November 5, 2018, 05:32

    Hi Gregory,

    This post made me laugh, in a good way. Internet people are funny (in a different way) but you make a lot of sense here.

    I enjoy a lot of your posts. Keep up the good work ๐Ÿ™‚

    Thanks,

    Cassandra

Leave a Reply to robertday154Cancel reply