1/3/2014— Kelsey Breseman
I’m designing the first run experience for Tessel, and I want it to be excellent.
It needs to do well with:
Highly varied audience: Most of the people purchasing Tessel are used to writing code– but not all of them. This presents an immediate challenge: I don’t want to bore our main audience by including too many basics (“what’s the command line? How do I use it?”). People will skim, skip, roll their eyes, and probably miss important information.
At the same time, I don’t want to alienate our beginning users; I’m all too familiar with technical sites that assume you have a lot more knowledge than you actually do, resulting in anger and frustration.
Variation in product: Every user will have a Tessel and at least one module. That’s on purpose: we didn’t want people to get their Tessel, push the blinky example, then wonder what to do next. Instead, we want people to immediately plug in the modules they chose and try out their functionality. You’ll plug in your accelerometer module, wave it around, and see values changing on the screen. And then you’ll think, “What if I taped it to a ping-pong paddle?” “Can I use it to make my servo module move?” “How hard would it be to implement gesture control?”
That’s all very good, but people have different modules or sets of modules, and it would be best if the instructions on the screen matched what you had in your hands. What’s more, the first run in my head ends with you on a page full of projects which use the modules you have.
Other considerations: The first-run experience, first and foremost, needs to get a user from unboxing to up-and-running as seamlessly as possible– providing all necessary setup and orientation instructions. Users should also be introduced, via the first run experience, to the site’s project and community features, if these can be integrated into the setup.
Here are some ideas on the subject:
- Eric style, I could add in links every few sentences to (e.g.) a tutorial page for working with the command line.
- Choose your own adventure: users select what modules they have, leading them on a customized first-run featuring their new abilities. This could also be extended to a customized-by-experience.
- Adventure pre-chosen: since we have information on everyone’s orders, we could in theory give you a login or special key which would serve a first run tutorial based on your modules. This has the added benefit of logging you in to our site, which might make it easier to join the community.
- Have login involving GitHub accounts. This would be useful generally, as we’d like to have GitHub integration with Tessel projects we’ll display on the site generally (more on that in another post perhaps; I’m also working on Tessel’s community aspects, including a way for the community to share their Tessel projects on the site). The other benefit of GitHub login could be to separate out experienced web programmers from people who might need a more detailed introduction to using node modules on Tessel– slyly serving up a customized first run.
What would you like to see? Do you have any examples of particularly stellar first run experiences?