My girlfriend, a Peace and Justice major at Wellesley, knows the basics of coding and piloting an aircraft, though her course of study does not teach the procedural skills for either.
Not only did she pick up coding and flying quickly, she was captivated by them. This was thanks to the great First Run Experiences of Codecademy.com and Microsoft Flight, which both serve the purpose of teaching regular people very technical skills.
Great First Run Experiences help users get started and engaged in software by following several fundamental principles:
1. Give users a clear path forward
2. Instill confidence
3. Delight the user
4. Less thinking, more doing
5. Teach users how to learn
Codecademy.com is a site where anybody can learn how to code. Their designers nailed the First Run Experience. It captivates the user for a short while, then shows them the path forward. To get users started quickly, the designer put a console right on the homepage that allows users to follow some easy instructions and immediately start coding. When the short 30-second lesson is over, the user is shown a new page with a breadcrumb navigation of lessons to complete. There is no ambiguity; the path forward is clear. The user can guess what is to come, and there is less hesitation to continue using the website.
Microsoft Flight is a free game that brings the experience of flying to everybody. Their First Run Experience is a great example of instilling confidence: it puts the user before a line of hot air balloons over Hawaii. Without any prior instruction, the flight instructor shows how weave left and right around the balloons with a controlled ascent, descent, and finally a sharp turn directly over Hilo International for your first landing.
Although the flight instructor walks you through everything, this first lesson stretches a new user beyond their comfort levels. In the subsequent lesson teaching how to land more precisely, the user already has confidence from the first lesson.
Keeping a user’s interest isn’t easy if they’re not enjoying themselves. Microsoft Flight nails this with gorgeous visuals in the First Run—it’s almost magical to watch your surroundings pass by. Throughout the lesson, the instructor encourages the user even when they do poorly, and successful runs are awarded with points and a badge.
The first lesson on Codecademy is easy; the console gives step-by-step instructions on what to type. There is very little thinking involved, which is good. The user is already preoccupied with how fascinating (or not fascinating) the act of talking to a computer is, so overload them? The user isn’t challenged until later lessons, where they are presented with problems that require the collective learning of the previous tasks.
After the user’s first lesson in Flight, they are finally brought to the main menu for the first time. Here, the instructor walks you through the different game modes and activities. Lessons teach the core concepts of flying (even aerobatics). Free Flight is great for experimenting with different maneuvers. Hunting for Aerocaches (like geocaches) throughout the islands of Hawaii is a great way to learn how to navigate.
The principles I described are by no means the final word on what a First Run Experience should look like, but they embody many of the considerations that are made. If you’re interested, I suggest that you try out Highlight, Twitter, Chrome, or Zune as examples of products with excellent First Run Experiences.
Whether it’s for UOCD or for your internship/job, always be sure to have a list of criteria with which to evaluate your software’s First Run Experience. And feel free to take my list for a spin.
Have any thoughts on this? Let me know! chris at students.olin.edu