Saturday, February 23, 2013

Glass Half Empty: Understanding Cloud Computing SLAs

Let's talk about Cloud SLAs - a subject that is very important, but nevertheless is frequently  misunderstood,  over-simplified, or even outright ignored.


As I write this, Windows Azure has had an "up and down" week: on Tuesday 2/19/13, Windows Azure Storage was declared the leader in Cloud Storage by an independent report. A few days later on Friday 2/22/13, Windows Azure Storage suffered a worldwide outage - which shows you what a difference a couple of days can make to cloud vendor reputations. 

Given the events of this week, it seems timely to say some things about Cloud SLAs and correct some faulty reasoning that seems prevalent.

Service Level Agreements and High Availability
A service-level agreement is a contract between IT and a business to provide a certain level of service. In an enterprise an SLA could cover many things, including availability, response time, maintenance windows, and recovery time. In today's cloud computing environments, SLAs are largely about availability (uptime). So, let's talk about high availability.

Non-technical people say they want things up "all the time". Of course they do - but that's not reality. The chart below shows the "9s" categories for availability and what that means in terms of uptime.

Availability % Downtime/year Downtime/month
90% ("one 9") 36.5 days 72 hours
99% ("two 9's") 3.65 days 7.20 hours
99.9% ("three 9's") 8.76 hours 43.8 minutes
99.95% ("three and a half 9's") 4.38 hours 21.56 minutes
99.99% ("four 9's") 52.56 minutes 4.32 minutes
99.999% ("five 9's") 5.26 minutes 25.9 seconds

The key thing to understand is that as you increase the number of 9's the expense of meeting the SLA increases dramatically. Except for very simple systems or individual components, 4 9's is extremely expensive, and not available today in the public cloud. 5 9's or better is prohibitively expensive and quite rare.

Typical Availability Provided in the Cloud is 99.9% to 99.95%
Cloud platforms have individual SLAs for each service. The majority of cloud services have an SLA of 3 9's (99.9%), and some computing services offer 3.5 9's (99.95%). That means, a cloud service could be down 43 minutes a month and still be within its SLA. Is that an acceptable level of service? It depends. It could be a step up for you or a step down for you depending on what SLA you're used to - what does your local enterprise deliver? Interestingly, when I ask this question of clients the answer I receive most often is, "We don't know what our current SLA is"!

Availability Interruptions Don't Play Nice
The table above might lead you to believe that outage time is somehow evenly distributed but there's no guarantee of when an outage will occur or that outages will politely schedule themselves in small pockets of time over the course of the year. A service with a 99.9% SLA could be down 10 minutes a week, but it could also be down 43 minutes a month or even 8 hours straight once a year. You should assume the worst: an outage will occur during business hours on the day you can least afford it. Most cloud SLAs measure the SLA at a monthly level and provide some recompense if it is not met.

SLAs are not guarantees. Every cloud provider has missed meeting its SLA at times.

The Subtlety of SLAs by Service: Your Cloud Service SLA is not your Solution's SLA
Nearly all solutions in the cloud use multiple cloud services (for example, a web site might use Compute, Storage, and Database services). Note that the cloud providers do not provide an SLA for your solution, only for the individual services you consume.

An easy trap to fall into is assuming the minimum SLA for the cloud services you are using translates into an overall SLA for your solution. Let's demonstrate the fallacy of that thinking. Let's say your solution makes use of three cloud services, each with a monthly SLA of 99.9%. On the first day of the month, the first cloud service has a 40-minute outage but is otherwise up the remainder of the month - its still within its SLA. Now let's say the exact thing happens on the second day of the month to the second cloud service. And then, the same thing happens on the third day with your third cloud service. None of those services has violated its SLA, but your solution has been down 120 minutes that month.

The more services you use, the less uptime you can count on. Unless you're feeling lucky.


Using Multiple Data Centers Does Not Magically Increase 9's
I'm often asked if a 4 9's arrangement can be had by leveraging multiple data centers for failover. The answer is NO: while using multiple data centers and having good failover mechanisms in place does increase your likelihood of uptime, it is not a guarantee. Let's consider the best case and worst case scenario where you are using a primary cloud data center and have a failover mechanism in place for a secondary data center that is ready to take over at a moment's  notice. In the best case scenario, you experience no downtime at all in the primary data center, never need that second data center, and life is good. It could go that way. In the worst case scenario, you experience downtime in your primary data center and failover to the second data center -- but then that second data center fails too soon thereafter. If you don't think that could happen, consider that some of the cloud outages have been worldwide ones where all data centers are unavailable simultaneously.

Leveraging multiple data centers is a good idea - but don't represent that as adding more 9's to your availabiility. It's not a supportable claim.

How to Approach Cloud SLAs: Pessimistically
The only sane way to approach cloud computing SLAs (or any SLA for that matter) is to be extremely pessimistic and assume the worst possible case. If you can design mitigations and contingency plans for the worst case, you are well-prepared for any eventuality. If on the other hand you are "hoping for the best", your plans are extremely shaky. Murphy's Law should dominate your thinking when it comes to designing for failure.

Do not forget that Cloud SLAs are not a promise, they are a target. There may be some consequences such as refunds if your cloud vendor fails to meet their SLA, but that is usually little consolation for the costs of your business being down.


Cloud SLA Planning Best Practices
1. Become fully familiar with the SLA details of each cloud service you consume.
2. Keep in mind many cloud services are in preview/beta and may not be backed by any SLA.
3. Don't think of an SLA as a guarantee; your cloud provider will not always meet their SLA.
4. Do not confuse the availability SLA for individual cloud services with the overall uptime for your solution. There is no SLA for your solution, and the more services you use, the less uptime you are likely to have.
5. Do not plan on being lucky.
6. Build in contingency planning for a data center failure that allows you to fail-over to another data center. Yes, this will be extra work and increase your costs. Yes, it is worth it.
7. Remember that worldwide outages can occur, and you need a contingency plan for that scenario as well.

To Cloud, or Not to Cloud?
Does all of this mean the cloud is a bad place to run your applications? Not at all - it could well be an improvement over what your local experience is. And, there are significant benefits to running in the cloud that may more than offset the inconvenience of occasional downtime. The important thing is that you approach the cloud eyes-open and with realistic expectations.

Monday, February 11, 2013

Microsoft Certification Exam 70-481: Essentials of Developing Windows Store Apps using HTML5 and JavaScript

I am working toward the MCSD Windows Store Apps (Windows 8) certification, which is available in two flavors (JavaScript and XAML). Today I took and passed the second of three exams on the JavaScript track, 70-481: Essentials of Developing Windows Store Apps using HTML5 and JavaScript.

I'm not allowed to share details about the exam, of course, but I can share how I prepared for it. The first thing I'll say is that it is not an easy exam. I took it and narrowly missed passing a week ago, and on my re-take today I passed. So the first bit of advice is, be sure to get a Second Shot voucher from Prometric when you're signing up to take the exam - you might need it.

I chose the WinJS exam track because I've been deep on HTML5, CSS, and JavaScript for the last two years - my JavaScript skills are fresh and my XAML is a bit rusty. The first exam in the MCSD Windows Store Apps WinJS track is the same first exam of the MCSD Web Applications track, 70-480, which I'd already taken and blogged about. That's a convenient arrangement if you want to go for a "double major": a dual MCSD in Web Apps and Windows Store Apps. Here are the three exams in the MCSD Windows Store Apps WinJS track:

70-480: Programming in HTML5 with JavaScript and CSS
70-481: Essentials of Developing Windows Store Apps using HTML5 and JavaScript
70-482: Advanced Windows Store App Development using HTML5 and JavaScript

I think the main reason I found the exam difficult is that it was so comprehensive: there's an awful lot going on in Windows 8 and the exam covered a lot of territory. You can see the list of what's covered here in the Skills Measured section. Secondly, I think I faltered a bit the first time around on namespaces - I memorized them more solidly for the second time and I think that helped me better discern right answers from wrong ones.

Here's what I did to prepare for the exam:

Develop Windows 8 Apps
I've authored about 5 "real" Windows 8 apps, several of which have gone through the Windows Store process successfully. I think you need this hands-on experience in order to be prepared for the exam.

WinJS Samples
The WinJS samples are really valuable. There are many of them, - most of them short and to the point -- and they are a tremendous learning aid.

Documentatio
Read the documentation. Sure, some of the doc pages are dry or just list class details without much of an explanation - but there are also great conceptual pages.

Blogs
I also found a lot of good information in blogs when I searched on various topics.


Walk the Skills Measured List
I went through the Skills Measured checklist and ensured I knew the basics about each skill listed.

Microsoft Virtual Academy
There are 8 hours or so of videos on Microsoft Virtual Academy to prep for this exam by Jeremy Foster and Michael Palermo - watch them. It's called the Developing Windows 8 Apps with HTML5 Jump Start (note: there's also a jump start course available for the first exam, 70-480).



• CodeShow
Jeremy Foster's CodeShow solution contains lots of great samples, all in one Visual Studio solution.



Well, there you have it. Next month I hope to summon the nerve to go for the Advanced exam and obtain my MCSD for Windows Store Apps.

Tuesday, January 22, 2013

The Mobility Iceberg

Doing Mobility well requires first of all that you build a fantastic app, and that needs to include designing a great user experience, making the app useful and productive, and a smooth deployment system such as an App Store or enterprise distribution. But those are just the visible, tangible parts of an app. There's a lot more that goes on behind the scenes, as the iceberg diagram below shows. Let's take a look at the ingredients of a superior mobile app.

There's more than meets the eye to mobile app development

User Experience
A compelling user experience is an absolute requirement: a high bar has been set for apps, and apps that don't meet expectations rarely get invoked a second time. A compelling experience, in contrast, will instill user loyalty. User experience design, as any UX designer will tell you, involves more than graphic and visual design and layout: there's also the user research that goes into ensuring the user audience and their objectives are well-understood.

The rest doesn't matter if the experience is not compelling
 
Good user experience design can turn a mundane app into an exciting one. One technique for this is gamification, in which a fun factor and element of competition is injected into the experience. For example, an app for field salespeople might include a leaderboard to show who is on top and encourage others to vie for the top spot. Or, your app might award badges based on achieving objectives.

Functionality
A beautiful app that doesn't perform useful work isn't much good: you need both form and functionality.

Good mobile apps require deliberate design: a mobile app that is merely a bolt-on to your web presence may not be very usable if screens are hard to make out, controls are too small for touch, data entry is overly-complex, or forms have to be filled out in a single sitting. Mobile First by Luke Wroblewski is suggested reading.

Although many apps are consumer-oriented or about entertainment, mobile apps can serve business well. Below is a sales battlecard app we equip our sales staff with, which describes the service lines, showcase gallery, and leadership team for each of our consulting practices.

     
Mobile apps are for business, too

The above app is useful, but even more useful are apps that let you get work done.

The app shown below is used for talent acquisition, namely interviewing and evaluation of candidates. This process involves multiple interviews of a candidate (by phone or in-person), then integrating and considering everyone's feedback. Sometimes this takes longer than it should because people are busy or traveling--an opportunity for a mobile app to shave time off the process. By focusing on just this part of the talent acquisition process, the UI can use a simple approach: thumbs up/down and comments from each interviewer. By being able to register evaluations immediately even when not near a computer, the evaluation process advances more rapidly.

Great business mobile apps let you get work done
 
Distribution
Your app needs to be distributed in a way that makes it easily discoverable, and it needs lifecycle management.

You'll typically use an App Store or enterprise method of mobile distribution on the deployment side. You'll want to ensure there are mechanisms for feedback and support for your app and that someone is servicing them.


Application Lifecycle Management (ALM) involves putting in place a process for handling updates that includes build automation, testing, deployment, and the store acceptance process. From revising the code to getting vetted app updates in the hands of users should be a well-defined process.

Back-end Services
It takes back-end services to properly support the digital lifestyle. With users expecting to get at their apps and data anytime and anywhere, on any convenient device, back-end services and data provide the highly-available backbone that makes it all possible. They need to be written for scale and reliability.

Global Infrastructure
There's no better place for your mobile back-end than in the cloud. The cloud gives you high-availability, redundancy of app servers and storage, and affordable global presence. It's the nature of mobile/social apps that usage can suddenly burst or just as suddenly deflate, and often the user audience is geographically dispersed. The cloud is perfect for fluctuating load and global reach because of its easy scale, consumption-based pricing, and worldwide collection of data centers.

Business Intelligence
Capturing and analyzing the activity of a mobile app across its user base can provide great insights for a business. For example, if you released an app and saw it being more frequently used in a particular geography or demographic, that would tell you something. If some of your app's features are used much more than others, that would likewise inform you. With sufficient tracking and analysis, you may realize great insights about your market, customers or employees.

Mobile apps are hot, but don't forget the mobility iceberg: a successful mobile app requires work and attention to detail in many areas. The outcome of all that work is worth it, but you shouldn't underestimate what's involved.

Monday, January 14, 2013

Adventures in Windows 8: Task Board, Part 2: An HTML5-JavaScript Windows Store App

I've been learning Windows 8 for the last year, and I blogged about the first serious app I developed last April: Adventures in Windows 8: Task Board, Part 1: An HTML5-JavaScript Metro App. Here finally is Part 2, where I'll describe what I did to bring the app from a prototype created during the preview days of Windows 8 to a functional app now listed in the Windows Store.

Project Task Board app in Windows Store Today

Original Version
You have to walk before you can run, and this app was never meant to be more than a simple one: if you have a project with tasks, being able to show them as "cards on a wall" is often useful to project teams. Implementing this would give me a good start on Windows 8 app development, as I'd need to learn app basics like the App Bar, handling different screen sizes and orientations, touch interaction, and styling. And, of course, there's that process of getting into the Windows Store. My goal was to have my app in before the end of 2012. I made it, but not without a certain amount of work.

I had to choose a development language: WinJS/HTML5, C#/XAML, or C++/XAML. I had equally good backgrounds in the first two, but as I've been immersed in HTML5 and JavaScript for the last year it made sense to go the WinJS route. I'm glad I did, because I eventually ran into a problem I don't think I would have been able to resolve in a XAML approach.

The first incarnation of this app was ready a full year ago in January 2012, and I showed it at various venues including a Windows 8 developer event in downtown LA. When Windows 8 went to release and the Windows Store became active, it was time to revisit Task Board and bring it home. I ran into a few hurdles, let's look at them and how they were addressed.

Original Task Board App during Windows 8 Preview Period

Breaking Changes
First, my project would no longer build under the Windows 8 release. That's kind of the chance you take when you jump into pre-release development. My acquaintances at Microsoft did offer to take a look at my project, but I ultimately decided to start with a fresh code base, for a number of reasons beyond API changes: I was better equipped to structure the solution properly now, and I had a problem in that drag-and-drop of cards no longer worked.

Drag and Drop
Drag and drop is an essential aspect of this app: being able to drag cards around is the whole point of its existence. The method I used for drag-and-drop in the original pre-release app simply no longer responded to touch in the release version of Windows 8. I would have to figure something else out.

I started experimenting with other ways to handle drag and drop, also asking Microsoft for suggestions, and ultimately found two promising avenues: jQuery UI, or the IE10 API for touch events. I chose to try jQuery UI first, and that worked just fine. This is where I think you have an advantage in WinJS over the XAML approach: there are a lot of great JavaScript libraries you can leverage, and it's possible to "get under the hood" when you need to.

jQuery UI drag-and-drop is quite simple and does not require a lot of code once you come to understand it, and it's well-documented. Here's what my code looks like to set up and handle drag-and-drop of cards:

function wireupCardsForDragging() {
    $(".draggable").draggable({
        drag: function (event) {
            makeTopMost(this.id);
        }
    });

    $(".draggable").click(function (event) {
        editCard(this.id);
    });

    $(".droppable").droppable({
        drop: function (event, ui) {
            $(this);

            var tileId = ui.draggable[0].id;

            if (tileId.substr(0, 4) === "card") {
                var cardNumber = parseInt(tileId.substr(4), 10);
                cards[cardNumber].left = ui.draggable[0].style.left;
                cards[cardNumber].top = ui.draggable[0].style.top;
            }
        }
    });
}

A "card" is a simple entity. In HTML, this small markup renders a card:

<div class="card yellow draggable" id="card1" style="left: 50px; top: 140px;">
    <div class="heading">
        <span class="taskNumber">1</span>
     <span class="title">Ramp-up</span>
        <span class="priority">P1</span>
    </div>
    <div class="desc">Wire up user interface.</div>
</div>


Internally, cards are represented by card objects, indexed by task number:

card = {
    top: '120px',
    left: '50px',
    number: 1,
    color: 'yellow',
    title: 'Requirements Gathering',
    description: 'Analyze requirenents and capture user stories.',
    owner: 'dp',
    priority: 1,
    hours: 80,
    status: 'in progress'
};

Arranging, Tiling, and Stacking
In the final edition of the app, I wanted the user to be able to drag cards around, but I also wanted an "arrange" command that would nicely glide the cards into an orderly arrangement. I'd implemented this in the prototype as tiling, where each card was fully visible. In the final app, I also added a choice for stacking, where each card is closely overlaid and all you can see are the titles.

 
Cards Stacked

Tiling or stacking are App Bar commands. To provide the glide effect during arranging the cards, I used jQuery animation.

Preparing for Store Submission
Now to tackle Windows Store submission for the first time.

One area I felt I should address was content: I'd used a green blackboard image as a background in my prototyping, purchased from a stock photo side. It wasn't clear to me if the terms would allow me to use that in app submitted to an app store, so I removed it. This gave Task Board a rather dull look with just a plain green background. Mindful of the approaching end of year and my goal of getting an app in the store before that, I decided to worry about fancier background another time. That meant the app as I submitted it looked like this:

Project Task Board in Windows Store, Release 1

Cloud storage was another area I wanted to address. The original app could save and load a "project file" of tasks from the local file system, but I wanted people to be able to share projects collaboratively. It turns out I didn't need to do anything special, as the file open and save picker dialogs include SkyDrive support. The user can browse to their SkyDrive folders just as easily as to local folders when opening or saving a project.


Store Submission, Release 1
The store submission process for a company first requires you to establish an account and have your corporate identify verified. This takes a bit of time and you need to ensure someone in authority is available to be contacted by Microsoft.

With verification out of the way, you're ready to try submitting an app. The Windows Store dashboard takes you through a nice guided experience where you register a name for your app (I couldn't get Task Board, but Project Task Board was accepted), describe it, upload packages, provide notes to testers, and so on. Here's what some of the application detail looks like, summarized.






Store submission passed on the first try, and my app was in the store!

Release 2
A few weeks later, I decided to upgrade the app. I wanted a more sophisticated background, and I also wanted to give the user a choice of background colors and solid vs .patterned background.

I found a good CSS background to use for a background pattern at the CSS3 Patterns Gallery site. This gave the app the appearance you see at the top of this post.

To allow the user to change the background color and style,  I added a flyout to the settings pane. Now, the user can get to an options flyout pane by selecting Windows+C and Settings, then Options.

Options Settings Flyout

My second app submission was accepted, a few hours ago as of this writing, and you can see its Windows Store listing here
.
Summary
Windows 8 has come a long way in the last year, and it doesn't take more than a simple app or two to get your "sea legs" with it. Creating Project Task Board and bringing it to the point where it was accepted in the Windows Store was educational, a bit challenging, and fun. I'm now working on much more sophisticated apps, but this first app was a very necessary exercise in getting started.

Tuesday, December 4, 2012

How to be a Consultant, Part 6: Effective Presentation Content

This is Part 6 of a series on what it takes to be an effective computer consultant. In this post we’ll be discussing the creation of presentation content.



Whether you’re presenting to a small group of stakeholders in a board room or addressing a large audience at a conference, you’ll need to know some things in order to be an effective presenter. We’ve already covered verbal communication skills in our last installment; today we’ll consider the content you will likely be creating to accompany your presentation.
A presentation could be nothing more than you speaking, but it’s much more common to have some accompanying visual aids. In the older days, that might have been a chart or concept diagram. Today, it means slide content, which is most frequently created and rendered with Microsoft PowerPoint (or a similar tool like Keynote). Slide content can include text and/or media (images, video, audio). This is a subject full of strong opinions, so prepare yourself for some controversy!

Pervasive PowerPoint
PowerPoint is pervasive: just as Kleenex is synonymous with tissue, PowerPoint is synonymous with slide content. If you hear someone say they “hate PowerPoint”, they most likely mean they hate slide presentations in general rather than the tool itself (which is quite powerful).

Obviously, slide content can vary in quality depending on the author: blaming PowerPoint for a bad presentation is like blaming a kitchen for a poorly-prepared meal. With that said, we’ll be stuck with using “PowerPoint” interchangeably with “ presentation content” because that’s the common usage.

To PowerPoint or Not to PowerPoint: That is the Question
As we mentioned earlier, presentation content is an extremely controversial subject. While PowerPoint is very popular overall, make no mistake: some people absolutely hate it—or more accurately, they are opposed to electronic presentation content. If you do an online search for “you should never use PowerPoint” you’ll get something on the order of 15,000 results!

Why do some people hate PowerPoint presentations so much? If you peruse the results you’ll see reasons like these offered:
• You might have nothing to go with if there’s an equipment mishap.
• Overly long slide content bores the audience unlike conversation which can take turns in direction.
• PowerPoint is just a way for poor speakers to remember what to say instead of memorizing it.
• Some people relate much better to your narrative than to your visuals (different learning styles).
• Poor presentation content is rampant, and results in an excruciating experience for audiences.
In my  opinion, it’s the last point—not using PowerPoint effectively—that’s at the heart of the “don’t use PowerPoint” movement (humorously illustrated here). That doesn’t make tools like PowerPoint bad, any more than bad font and layout choices make word processors bad.

 
Bad Presentations: What to Avoid
Here are some things to avoid in your presentation content:

1.  “Slideuments”
2. Typos and Grammatical Errors
3. Poor Layout, Color, and Font Choices
4. Overdoing it
5. Lack of Consistency
6. Matching visual content and spoken content word for word
7. Not accommodating different learning styles
8. Failing to realize what you don't do well

Bad #1: Slideuments
A “slideument” is an overloaded presentation where the slides are stuffed with so much content that it resembles a document more than a presentation. Cramming all the information you can into your slides will render them incomprehensibly dense. It’s too much for the audience to absorb and usually results in small-size text with little white space. Remember, you can always provide a link to a follow-up resource such as a document or web site that provides more detail. Here’s a slideument slide example:

Example of a Slideument

DON’T turn your content into a “slideument” by overloading it.
DO think about the highlights or take-aways you want your audience to remember.

Bad #2: Typos and Grammatical Errors
There’s no easier way to cast doubt on yourself than to have sloppy slides that you haven’t checked for typographical and grammatical errors. Also check for repeated words or omitted words, and incomplete sentences.


Example of Typos and Grammatical Errors
DON’T use content publicly you haven’t screened for proper grammar and spelling.
DO pay attention to PowerPoint warnings and have someone else proofread your content.


Bad #3: Horrendous Layout, Color and Styling
Poor layout and style choices will paint you as an amateur. Good layout and strategic use of white space can set a presentation apart, but that cuts both ways. Odd choices of typefaces and font size are rarely gong to work in your favor.

For a presentation in a meeting room, font sizes under 14pt should be avoided: smaller text is hard for many people with older eyes to read. In a conference setting you don’t’ even want to go that small as some people are likely a sizeable distance from the display.
It’s amazing how many otherwise good presentations are defeated solely due to the choice of color, killing any chance of the audience making out the content. Avoid light on light (such as yellow text on a white background) or dark on dark (such as dark grey on a black background): go for contrast.

If you don’t have strong sensibilities in this area, find a good-looking template and stick to it like glue.

Example of Poor Layout and Font Choices
 
DON’T use sloppy or abnormal layout, fonts, or colors.
DO use a template or content author with sensible layout, fonts, and color choices.

 

Bad #4: Overdoing It
There are oodles of perfectly good features you can use in a PowerPoint presentation that are fine as long as you don’t over-use them or intermix too many different kinds. This applies to text effects, image effects, and animations. Be especially careful not to over-use transition animations: a little goes a long way! You’ve probably seen home videos made on a computer where the person doing the editing decided to use a different transition method between every scene (fading, wiping, closing circle, etc.): was the result an enhancement to the content or a distraction? ‘nuff said. Restraint and subtlety are the watchwords of every good content author.


Example of Using Overly-Fancy Transition "Vortex"

DON’T over-use effects that distract from your content rather than enhancing it.
DO exercise restraint and subtlety in your animations, transitions, and other effects.



Bad #5 Lack of Consistency

Consistency is a necessary ingredient in a successful presentation content: not using a consistent style for titles, bullet points, and so on throws people off and distracts from your content. In a consistent presentation, the audience quickly locks on to the style and looks past it to focus on the message.

Example of Inconsistent Use of Typeface and Size 
 
 
Bad #6: Matching Visual Content to Spoken Content Word for Word
Let’s be candid: depending on the speaker and the subject matter and the volume of information to be shared, you may or may not be able to remember everything you’re supposed to say. Go to a large audience setting like a conference and you’re doubly likely to become absent-minded right when it counts.

For this reason, a great many people put everything they need to say in their PowerPoint deck. The result is a word-for-word match between what’s on the screen and what’s being said. This is a very bad move: you need to convey more with less visually. The purpose of your slide content is to serve the audience, not the speaker.
Focus on key concepts and take-aways in your visuals, including important phrases, photos, or diagrams. Let a picture speak a thousand words. As long as you have the high-level reminders you should be able to recall the details; you can put the full content in the speaker notes, and then practice presenting until you have the details memorized.

Example of Word-for-Word Slide Content
 
DON’T use visual content as a teleprompter for the speaker.
DO design visual content to assist the audience in comprehension.

Bad #7: Not Accommodating Different Learning Styles
One reason some people object to slide content is, not everyone has the same learning style: some people are visually-oriented, some auditory, and some tactile in nature (whether they know it or not). Auditory learners would rather listen than watch, and if you can’t convey your message verbally they’re turned off by your reliance on something visual.

If you’re meeting with one person, you might tailor your means of communication to their preference (if you know it); when addressing a group, you should assume a mix of learning styles. When you have both visual and auditory people in the audience (the majority of the population), it’s vital that your presentation and narration work equally well so that you are simultaneously satisfying the visual people as well as the auditory people. Moreover, your visual and verbal content should not be identical: reading your slides word for word is likely to turn off the entire audience. Give the visual and verbal take-aways in the way most natural for each medium: for example, an engaging story you might tell verbally might need nothing more than a picture in its visual counterpart.

Make sure you are communicating with all kinds of people
 
DON’T rely on visual-only or verbal-only presentations.
DO communicate effectively to both the visual and auditory members of your audience.
 
Bad #8: Failing to Realize What You Don't Do Well
It's tempting to want to emulate techniques of other successful speakers, such as telling jokes or including great graphics. However, you should not do this if you don't do it well.

Everyone loves humor in a presentation. How much should you do? It depends on how well you do comedy. If you're a rock star, throw humor throughout your presentation. If you're okay in small doses, dole out an ice-breaker. If you're terrible at humor, stay away from it completely--or rely on purchased content such as a cartoon or humorous photo.

Likewise, graphics matter but don't create your own graphics if the result is amateurish-looking. Instead get help from a person or tool or online service. Seriously, it's better to leave it out if it isn't pristinely done.

The content author who knows their strengths and limitations gives the more effective presentation.


 
“The One True Path” to Effective PowerPoint Presentations: (multiple choice!)

Now that we know what not to do, what’s the right way to do an effective PowerPoint presentation? The good news is, there’s plenty of adivce online from people who have the answer; the bad news is, they don’t agree with each other! Depending on who you listen to, a perfect PowerPoint presentation uses one of these approaches (note the lack of agreement):

The Takahashi Method: slides contain a handful of words with very large text or an image, total number of slides is often 10 or less. The audience is forced to listen to the speaker since much of the content is not in the visuals.
The Lessig Method: slides contain just a short phrase, quotation, or image, delivered rapid-fire in sync with the speaking. The total number of slides may be quite large. The fast pace keeps the audience from becoming bored.
The Godin Method: slides complement the message with complementary visuals with striking images, bold text, contrasting colors.
The Monta Method: slides frequently contain questions that are posed to the audience, then answers are revealed after hearing audience guesses. The audience is kept engaged as participants.
The 10/20/30 Rule (Kawasaki Method): the 10/20/30 rule of PowerPoint is, 10 Slides, Delivered in 20 minutes, with on fonts smaller than 30-point type. It comes from a venture capitalist and has those kinds of presentations in mind.
Which is the right answer? There is no single best way, for the simple reason that venues, speakers, and audience are not all cut from the same mold. It should be obvious that one size does not fit all. What works best for one speaker isn’t necessary good for all speakers. Even the same speaker might use varying approaches depending on the subject matter, length of time, and type of audience.
 

Tips for a Superior PowerPoint Presentation
We’ve looked at mistakes to avoid and we’ve heard some different views on the best presentation techniques. Here are some PowerPoint crafting tips that help grab viewer attention, clearly communicate your information, and keep you in control. The list below is an aggregation of tips from several online sources (including Stephanie Krieger, Damon Brown) and myself.

1. Select or create a great theme
2. Use audio or video to convey your message more effectively

3. Use graphics to emphasize key points
4. Use animations and transitions wisely

5. Start by outlining your presentation
6. Use masters and layouts to save time and help get better results

7. If you’re doing hand-outs, consider differences between print and on-screen presentations
8. Use notes pages and handouts to help deliver the story

9. Keep file size manageable
10. Use the tools available to get it right the first time

11. Turn off (or manage) AutoCorrect layout options
12. Know exactly what your views will see.

13. Choose colors wisely, and remember that part of the population is color-blind.
14. Bullet points are easier to read than paragraphs

15. Pictures (and charts and diagrams) speak 1,000 words (if they’re good)
16. Practice giving your presentation (ideally to colleagues so you can get feedback)

17. Borrow from the best, and make it your own.
 

Examples of Great Presentations
Microsoft’s Scott Hanselman is a great presenter with effective slide content and lots of humor. You can view one of his conference session talks here. Notice how well he and his content work together.
TED presenters are often credited for presentation innovation and great effectiveness. Here are some examples of their presentation content. Though these may not be in the style that works best for you, you can still learn much from them.
Thirst
Here are a few slides from the Thirst presentation to give you an idea of what effective presentation content looks like (no infringement intended, just paying homage).
 
 
 
 
Example Slides from an Effective Presentation
 

In Conclusion
If you’re a consultant, expect to be presenting in front of an audience at some point. It’s not difficult to develop good presentation content if you stay away from the common mistakes, emulate or develop a successful style, and work to gain some sensibilities. Your content needs to look good and it needs to be good.

Remember that your content is not the presentation: you are the presentation.