Are your presentations as good as they can be?

Let’s face it, we can’t all have amazing, dynamic speeches like you find with TED Talks but we should strive for it. And this is especially true in a business setting. You aren’t Steve Jobs commanding a room. And hopefully you aren’t Ben Stein, in Ferris Bueller’s Day Off:

You lost me at “Hello”

You must have a strong opening. This will set the tone for the rest of your presentation. It is extremely important. If you don’t get your audience on board, your job becomes harder as you now have to capture their attention back. And this is especially important on web presentations, as you are competing with everything else they have going on.

There are many ways to start

Story telling is a way to engage the audience. In many cases the best presentations include a story. And the story is the sticky part. The details and facts matter much less as over time I still remember the stories told during presentations, even years later but I couldn’t tell you all the facts of the presentation.

Saying something personal makes you more “real” in a business setting. While we all recognize that people are in the room, especially in a sales setting… you are the enemy. So saying something personal helps avoid that.

Tell a joke. This is always hard, as the joke has to be on target and germane to the topic at hand.

Videos. See above and don’t be Ben Stein. (Speaking of storytelling, this scene was improvised. For those of you who don’t know, Ben is an economist. John Hughes asked him to improvise and so he started talking about the Laffer Curve.)

Engaging the audience is the very first step to keeping their other distractions at bay, so plan this well.

Flat… flat… flat

Delivering your message, no matter how compelling, needs to be dynamic. Ben Stein is flat, monotone. And let’s face facts, if you are presenting like that, people will fall asleep. Especially after lunch. In fact, he had people falling asleep at the beginning of class… I would have too.

You do not need yell or shout, but your voice should change pitch and be dynamic.

And, if at all possible, add humor so long as it doesn’t distract from your presentation.

Weak messaging

How tight is your messaging? Does it meander? Are you still talking about how much money your company makes? Hint: No one wants to hear how much their vendor makes each year, especially customers. Imagine walking into your local grocery story or car dealership and the dealer was bragging about how profitable it was to you, their customer.

You should have a primary goal and secondary goal for each presentation. Is it to educate your customer? Do you want your customer to look at their problem from a new direction? Is it simply to pique their interest for another, bigger meeting? If you don’t know, neither will your customer.


People hate PowerPoint. It’s not about the tool, except when it is. PowerPoint can be hard to use, it takes time to learn how to create dynamic presentations and, let’s face it, we aren’t all great artists. It does help.

The number one problem with PowerPoint, though, is what people do with it. Why put a lot of text on the screen then read the screen? The presented material should help enforce and visualize your message. If you are reading text off the screen, you are killing your audience.

PowerPoint isn’t truly dynamic. If you have to take tangents, it means throwing up multiple decks, changing slides, searching for content, etc. This takes time and can be very distracting.

So, how do you give great content and be dynamic? The whiteboard. I’ve yet to see a meeting room without a flip chart or whiteboard. You can add facts quickly, engage your customers, bring them into presentation and make them think deeper on the problem at hand. And isn’t that what you want?

Here’s one of my favorite “whiteboard” presentations:

There’s an Easter Egg in this commercial. The background song is called “Such Great Heights” by a band called “The Postal Service”.

Look what he does. He has pre-drawn visual items then begins to talk about a problem. With the USPS, or FedEx (at the time?), you couldn’t reroute an item once it was en route. And to finish it off, it creates this nice visual with the UPS logo. Its simple, crisp and memorable.

How does this compare with the typical PowerPoint delivered in a monotone voice?

Verbal Diarrhea

You’ve heard it. “Umm,” “like,” “Uhh” and any of the other verbal filler. I think of it as more as diarrhea. It’s annoying. And more importantly, it distracts from your message. As you are filling the air with senseless noise, you are training your audience that you are not confident in your message.

I have no proof of this, but people may use verbal filler because their mouth is moving faster than their brain. They lose their train of thought and need time to catch up. Rather than being silent, they must fill the vacuum of silence with noise.

Try this… Just be silent. In many cases, it captures people’s attention due to the change in noise dynamic in the room. Hint: This is especially powerful on phone calls. People who tune out will wonder why the noise has suddenly changed. And it will force their attention back to you.

If you use verbal filler in your daily conversations, you will use them in your presentations. So try to eliminate all that filler.

What conclusion?

Every good story has a beginning, middle and end. Having a presentation close abruptly is startling. Was that the end?

Movies and television are the medium of today’s master storytellers. And think about some of the biggest movies with the best stories. If you pay attention, you’ll notice that a lot of movies begin and end in the same place. The story is a circle and connects you to someplace familiar.

If you tell a story at the beginning, when you close your presentation make sure you touch back on your story.

Continue to learn

If you found this information helpful, you may want to look into some other content. There’s PUNCH and SHARP presentation methods. There are tons of methods out there, but there’s nothing like hands on training.

One of my favorite trainers for presentation skills is The Henderson Group. If you aren’t familiar with them, they offer a good blog at Speak Fearlessly. You can also check out a local Toastmasters chapter.

Disclaimer: I have been a customer of The Henderson Group (paid for by a previous employer). I have not yet attended any Toastmaster sessions but I hear fantastic things about them.

Top 9 reasons why Microsoft Project fails for software development

If you use MS Project for managing software projects, you should reconsider its use immediately. You are using the wrong tool. It’s like using a shovel when you need a backhoe. Sure, you can do the work, but it’s going to be harder, less efficient and more work than using proper tool.

Here are the top reasons to reconsider it’s use:

1. It gives a false sense of progress.
Most waterfall projects are completely out of date from the first day the plan is set. There’s so much unknown, how can you track progress against it? At best, it is simply a guess. And while there’s value in thinking through the process, saying you are 75% complete is meaningless. This leads to the next problem…

Continue reading Top 9 reasons why Microsoft Project fails for software development

Raspberry Pi and Ansible Part 2

Installing Ansible

Now, we need to install Ansible on our server. My primary host machine is a Mac Mini. So, to install on my Mac you will likely need XCode installed.

To install Ansible, use Pthyon:

  • sudo easy_install pip
  • sudo pip install ansible —quiet

Later, if you want to upgrade Ansible, simply run:

  • sudo pip install ansible —upgrade

Configure Ansible

Finally, you need an inventory file. It’s similar to a hosts file, but can contain multiple options to handle connecting to the server. These can include login name, password, ports, etc.


A hosts file might look like:
rpi.local ansible_user=”pi” ansible_ssh_pass=”password” ansible_user=”pi” ansible_ssh_pass=“password” ansible_user=pi ansible_ssh_pass=“password”

omega-90a2.local ansible_user=pi ansible_ssh_pass=”onioneer”
omega-8082.local ansible_user=pi ansible_ssh_pass=”onioneer”

This is a text file, so any editor will work (nano, vi, emacs, etc.)

The [xx] represents a grouping of devices. By grouping, you can act on all hosts, the groups or individual hosts. But, most importantly, the other options allow you to specify connection options.
For the record, it is not a best practice to include the password in the hosts file, but it is available for testing. The best method is to use public keys.

First Operation

The first operation you should before is a ping. This will ensure everything is wokring as expected.

I placed my hosts file in ~/ansible. So, to execute the ping against all the hosts, the following command is used:

ansible all -m ping -i ~/ansible/hosts



Ansible is the name of the application. All says to run the command against all the systems. -m ping is the “run command” and “ping” is the command. -i ~/ansible/hosts contains the inventory files. In my case, four systems, two Raspberry Pis and two Onion Omega2+ systems.

If all goes well, you should get a message simiar to this:
rpi.local | SUCCESS => {
“changed”: false,
“ping”: “pong”

You might get a message regarding authenticity. If you do, type yes and press enter. If you get a failure, it could be due to the system being unavailable, such as this:
omega-90a1.local | UNREACHABLE! => {
“changed”: false,
“msg”: “[Errno 8] nodename nor servname provided, or not known”,
“unreachable”: true

In this case, the system was offline so the ping couldn’t connect. Next lesson, let’s do something useful!

Dog Gate Design Flaws

We have a dog and while he is quite friendly, he’s also loud and solid and fast. He tends to scare people and he loves to chase the rabbits that scour the neighborhood.

So we have placed a gate in the house. Unfortunately, it is held to the wall with friction using a bolt that expands and presses into the wall. This is all fine and good, but with 7 people running around the house, plus guests and the dog jumping up on it, the friction tends to break loose every once in a while.

This has put a hole in the wall and scraped up the paint on the wall due to it moving. Enter a design to help with that. I created two parts. The first part is meant to spread out the surace area of the pucks. While the small pads might do fine with a lightly used door, it does not do well with a fully functioning house with multiple kids opening and closing the dog door.

The second part is to keep the walls from being marred and adding more friction to the wall so they don’t move as much. To provide more grip and prevent damage to the walls, it is printed using a flexible filament.

Here’s a picture of the parts, up close, assembled and in service.

Since installing, I have had far much less movement on the dog door.

The parts are available on Thingiverse.

Raspberry Pi and Ansible Part 1

I have been looking for a way to manage my growing collection of Raspberry Pis. I have a collection, including a Pi 2, Pi 3 and a handful of Zeros.

The challenge with managing a collection of devices is making sure they are all up-to-date. Sure, I could spend the time to log into each one, setting up the wifi-information, updating the OS, installing the common packages. I could create a disk image and copy it from SD card to a new install, but what about maintaining packages? What if I want to add an application to one or more of them? Or I could simply manage ssh into each and every one of them and do as I need. But, the question is… Do I want to manage these devices or use them?


If you aren’t familar, Ansible is an open source package for managing your machines. It is agentless. It connects to systems using services typically installed by default (ssh). Using this automation technique, you can use the system to access software on your machine(s).

Installing software on the RPi typically involves accessing the package manager APT-GET. If you aren’t familar with it, you may simply being using the UI version. But, using the command line version is fast and efficient, if you know what you want to install.

Apt-get must be kept up to date. So before any installation, an administrator or user issues the following command:

sudo apt-get update

This will update the repositories. Then after that, you typically install software by running a command like:

sudo apt-get install motion

This would install the motion package on the Raspberry Pi. In order to not sit around and wait for the machine to finish the update process, some users might combine the two actions:

sudo apt-get update && sudo apt-get install motion

This works great if you want to install the package on one machine, but what if you want to install it on 5? That means going to 5 machines (manually or using SSH) and running those commands. Then you hae to verify the output of each of those machines to ensure they installed correctly.

Or what if you wanted to set up a series of applications on a set of machines? This quickly becomes a problem. Enter Ansible. Using a hosts file, called an inventory file, you can automate the actions into Playbooks.

These playbooks can be set up to execute the actions on any host in the inventory file or against certain hosts. For example, if you have Redhat and Raspberry Pis, the package managers are different. Yum versus apt-get. You can selectively execute different commands on each machine using the same inventory file.