The Demo Effect
The Demo Effect happens whenever you need to present your (supposedly finished, or almost) work to a client, an N+1 or any other kind of spectator. You will, with pride, show the features you've been working on for [weeks|months|years]. You feel very confident, you tested it all before, and all of a sudden, the application crashes in front of your audience. This is the Demo Effect.
Why is it happening? We developers tend to be biased and use data that will fit our best case scenarios. Once we start fiddling with more realistic data for the sake of our presentation, that's where the cracks in our programs begin to appear.
DDD: Demo Driven Development
My company recently adopted a new habit, which is the "Friday demo". The format is quite simple: each department has someone on their team doing a little, 5 minutes presentation. This is a good idea as the short format reduces the pressure (it's not like you're doing a one hour talk).
Our team was asked to present something, and I thought that I could demo one of our most advanced, but still in development feature.
I tested many things beforehand and thought that the feature was ready to go to QA. So naturally I thought this would be a piece of cake. And of course I was very wrong.
I started inserting records with real names of real people. With extended latin characters. That's where I noticed there were collation problems with the database.
I started having more than 10 records in my test DB, which showed problems with the pagination system.
I started using the application a lot, instead of testing it, which showed me there were some async problems, and some other bugs.
I later explained that to my colleagues and, as a joke, said we could now do DDD: Demo Driven Development. But it might be a really good thing to keep doing that once in a while, as it helps us get into the users shoes.
I might start doing Demo Driven Development from now on, and overcome my fear of the Demo Effect.