You've gone through the requirements from the client and you spent the last two weeks working through the sprint. The code has been plenty of testing and you're getting close to the end of the sprint. Now it's time to start preparing for your big moment. Soon you will be showing all of your hard work to the client and you want everything to go as perfectly as it can.
There are a few things you can do to get ready for your demo to ensure that you don't have any (or many) unexpected hiccups.
No client wants to hear, "It works in my local environment…" They want to see it work in the environment you told them it would work in. Always deploy your app to the environment you will be using for your demo well ahead of time. You might need to do a demo in development or staging when you show it to the client and you know different environments have varying configurations.
Small config differences can mess up your connection to the right database or block access to a resource due to CORS policies and those aren't errors anyone wants to see, especially your client. Test the crap out of the specific features you're going to demo and some of the complementary functionality. This is especially critical when you've made big changes to the layout or data model that touches a lot of places in the application.
Go through a list of scenarios that could come up and test them inside out. Leave some time for you to test any functionality that depends on your feature changes as well. It never fails that you need to show a different part of the app and it doesn't work because of some little bug that didn't come up in direct testing.
This doesn't have to be a super detailed document. Just make yourself a brief overview of the points you need to go over in the demo. A few things you want to always include are the features you're demoing, any concerns that came up, and some next steps you see they can take. You don't have to give this agenda to the client. It's a small guide to help you stay on topic during the demo and to make sure you don't forget anything important.
If there are other people on your team that will be included in the demo meeting, make sure they get a copy of the agenda beforehand. This keeps you all on the same page when questions come up. Everyone will know what they are talking about and you have multiple people to help keep the meeting on track. Having this level of organization and coordination also gives your client more confidence in your team.
Do a few dry runs before you show it to a client. You don't have to go through all of your talking points in your practice, but make sure you cover how you're going to demo those new features. If it means you need to setup some new data, then go ahead and do that. There's a lot of small details you'll pick up as you do a few dry runs.
Try to go through your full demo at least twice before you get in front of the client. You'll be better prepared to answer questions because you'll know how the system works and you'll feel more confident about your work. When you know what you're talking about it really shows and practicing your demo will help you with that. Don't be afraid to do it with your team! They will notice things that you may have missed.
Most likely you have a statement of work or you've agreed on sprint tasks with your client. That's what the focus of your demo meeting should be about. It's ok to show a few minor fixes you have made, but don't go through the process of explaining and showing how you refactored the code unless that was one of the specific things you were supposed to be working on. You most definitely should let them know about any other work you've done and how that will impact the application.
Just remember that you are there to show them what they asked you for and they'll probably be excited and anxious about it. Any time you have left over after the main part of the demo can be used to talk about improvements you made while you were working on the core tasks. This is how you will show your clients how much extra value you can add and give them more reasons to keep working with you. It'll be like the icing on the cake.
Getting through a demo without any issues can be a challenge. Anybody that's ever done live coding can tell you that. There's a lot on the line when it comes to client demos though. Your reputation and the relationship with that client are just a few things because you've been paid for this work. That's why it's so important you take the time to practice these demos.
I always get a little nervous before a client demo no matter what. It takes a few practice runs before I can calm down and feel ready to talk to a client. Is there any other advice you'd give to developers giving client demos? There are a lot of people skills involved in demos and a some sales skill for sure.
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding