The power of the screencast

We’ve been building an app recently for a client based in Paris. There’s a natural communication issue here: meeting in person is tough. I’ve been recording screencasts every couple of days to keep him up to date on the progress of his project. I’ve found that delivering screencasts has been an effective way not only of being able to demonstrate where we’re at, but it has actually helped me to improve the quality of my work.
Getting the message across
The number one goal of my screencasts is communication. I have a set of requirements. I’m building a set of features. I want to show how the features that I’m building match the requirements. I could just upload a crusty version of the app to a staging server, but that wouldn’t show any intent behind any of the design decisions that we’ve made. Not only do I want to show off the app, but I want to show off how the app should be used.
Getting to know the product
Having screencasts from such an early stage helps everyone. Des gets to see his wireframes come alive. Eoghan gets a progress report that’s actually fun to watch. Dave hasn’t been involved in the code for this project and a screencast is far more accessible than a source code repo. Perhaps crucially though, is that our client gets a very crude, but very valuable sense of their app as a piece of living software, jumping from paper requirements to an interactive application on the screen, even before the project is finished.
Fixing mistakes
Another area in which the screencasts help is in quality control. I record a screencast each time I finish a list of tasks. The first take is almost always a disaster. There’s a bug here, there’s a bit of text out of line there. Some are important issues that need to be fixed right away: issues that might have slipped through if the ‘record’ button wasn’t on. But the very fact that I am recording helps me distinguish what’s important for what’s not. After all, this is a deliverable; our client will be watching this.
‘Outro’-spection
Michael Feathers recently wrote a very interesting piece about code testing. He concludes:
Quality is a function of thought and reflection – precise thought and reflection. That’s the magic. Techniques which reinforce that discipline invariably increase quality.
This is exactly what’s going on with my screencasts. By recording my work to show to our client, I’m forcing myself to think and reflect on what I’m actually delivering. It’s like having someone over my shoulder making sure that everything’s cool. But the magic here is that there is no-one over my shoulder. The someone is me, and while I’m recording I get the chance to make mistakes, to fix any little niggles that might otherwise be quite embarrasing.
The screencast is an excellent promotional tool and educational tool for use in marketing a product, but I’ve learned that it’s an invaluable tool during development too.