Upgrade to Pro — share decks privately, control downloads, hide ads and more …

beginner friendly docs

beginner friendly docs

Conferences Box

March 09, 2012
Tweet

More Decks by Conferences Box

Other Decks in Technology

Transcript

  1. Documentation's six audiences and purposes: 1.) First contact (new users)

    2.) Education (new & existing users) 3.) Support (experienced users)
  2. Documentation's six audiences and purposes: 1.) First contact (new users)

    2.) Education (new & existing users) 3.) Support (experienced users) 4.) Troubleshooting (pissed-off users)
  3. Documentation's six audiences and purposes: 1.) First contact (new users)

    2.) Education (new & existing users) 3.) Support (experienced users) 4.) Troubleshooting (pissed-off users) 5.) Internals (contributors)
  4. Documentation's six audiences and purposes: 1.) First contact (new users)

    2.) Education (new & existing users) 3.) Support (experienced users) 4.) Troubleshooting (pissed-off users) 5.) Internals (contributors) 6.) Reference (everyone)
  5. Documentation's six audiences and purposes: 1.) First contact (new users)

    2.) Education (new & existing users) 3.) Support (experienced users) 4.) Troubleshooting (pissed-off users) 5.) Internals (contributors) 6.) Reference (everyone)
  6. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long
  7. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed
  8. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own
  9. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own (These goals can conflict!)
  10. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own
  11. Persona #1: Kira • CS undergrad • Familiar with Python,

    various libraries • Completely new to web dev • Has a web app idea she wants to build
  12. Persona #2: Kevin • UX designer • Did a couple

    intro Python tutorials • Starting a new job using Django • Interested in getting more into development
  13. Django tutorial runthrough Debugging Kevin: "My thing doesn't work. What

    do I do?" Kira: "None of my friends are Django developers... how can I get help?"
  14. Django tutorial runthrough Projects v. apps Kevin: "My whole website

    is my web app, so it goes in one Django app, right?"
  15. Django tutorial runthrough Apps pt. 2: Reusing others' apps Kira:

    "Other people write Django apps? That I can *reuse*? Sweet!"
  16. Django tutorial runthrough Apps pt. 2: Reusing others' apps Kira:

    "Other people write Django apps? That I can *reuse*? Sweet!" Newcomers default to reinventing the wheel.
  17. Django tutorial runthrough Apps pt. 2: Reusing others' apps Kira:

    "Other people write Django apps? That I can *reuse*? Sweet!" Newcomers default to reinventing the wheel. Poorly.
  18. Django tutorial runthrough Schema migrations: GOTCHA! Kira: "What do you

    mean, I can't edit my frickin' models anymore? I ran syncdb, just like you said!"
  19. Django tutorial runthrough User-facing CRUD Kira: "I'm not building a

    newspaper application. Why would I care about customizing the admin?"
  20. Django tutorial runthrough User-facing CRUD Kevin: "What kind of web

    app framework can't handle interactions and content from users?"
  21. Django tutorial runthrough User-facing CRUD Kevin: "What kind of web

    app framework can't handle interactions and content from users?" If you don't tell newcomers a feature exists, many will assume it doesn't.
  22. Django tutorial runthrough User-facing CRUD: Forms Kira: "Handling form input

    by hand sounds possibly dangerous and definitely repetitious..."
  23. Django tutorial runthrough User-facing CRUD: Forms Kevin: "Okay, these ModelForms

    are kind of cool, I followed the docs and got one working, but I can't style them at all! I'll just write this form HTML by hand, that's easier."
  24. Django tutorial runthrough User-facing CRUD: AJAX Kevin: "I don't want

    to have a separate URL and reload for every user function... what do I do?"
  25. Django tutorial runthrough Static and media files Kevin: "How do

    I add CSS or images? How do my users add images? These go in different places? Huh?"
  26. Django tutorial runthrough Template inheritance Kira: "What, I shouldn't just

    create a stand- alone template file for every view?"
  27. Django tutorial runthrough Template inheritance Kira: "What, I shouldn't just

    create a stand- alone template file for every view?" Kevin: "Thank *god*. Even PHP can do this."
  28. Django tutorial runthrough Showing off Kira: "I've never heard of

    this WSGI thing and I'd rather not fiddle with IPv6 for this.."
  29. Django tutorial runthrough Showing off Kira: "I've never heard of

    this WSGI thing and I'd rather not fiddle with IPv6 for this.." Kevin: "I don't even know what those are."
  30. "But most of these issues aren't pure *Django*... why should

    they be the Django tutorial's responsibility?"
  31. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own
  32. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own
  33. Target audience: fairly experienced web developers who are already familiar

    with best practices and can cross-compare with other frameworks they've used
  34. What makes a good tutorial good? 1. Advertises what's cool

    or unique 2. Enjoyable -- fun to read, not too long 3. Consistently likely to succeed 4. Prepares reader for using it on their own
  35. Railsbridge (railsbridge.org) • Ruby • Rails • Git (GitHub) •

    Migrations (ActiveRecord) • Test-driven development (Cucumber) • Model-view-controller separation • User-facing CRUD operations • Deployment (Heroku) • Static files
  36. PyStar (pystar.org) • Python • Django • Git (GitHub) •

    Migrations (South) • Test-driven development • MVC/MTV concepts • User-facing CRUD • Deployment (DjangoZoom)
  37. Django for I Schoolers (bit.ly/xM1gmI) • Python • Django •

    Git (GitHub) • Migrations (South) • MVC/MTV concepts • Template inheritance • User-facing CRUD • AJAX • Static files • TDD • Authentication / app reuse
  38. Blind searching doesn't work well, so introduce as much lingo

    and concepts as you can (even just as links).
  39. Common issues in intro docs writing • Assuming familiarity with

    bash or filesystem architecture • Unstated assumptions about platform
  40. Common issues in intro docs writing • Assuming familiarity with

    bash or filesystem architecture • Unstated assumptions about platform • List of directions without the "why"
  41. Common issues in intro docs writing • Assuming familiarity with

    bash or filesystem architecture • Unstated assumptions about platform • List of directions without the "why" • Derelict command/code samples
  42. Common issues in intro docs writing • Assuming familiarity with

    bash or filesystem architecture • Unstated assumptions about platform • List of directions without the "why" • Derelict command/code samples • No obvious place to ask for help
  43. Strategies • We were all newbies once • User test

    your docs! • Test your docs! • Say who you're writing for
  44. Strategies • We were all newbies once • User test

    your docs! • Test your docs! • Say who you're writing for • Different tutorials for different audiences
  45. Strategies • We were all newbies once • User test

    your docs! • Test your docs! • Say who you're writing for • Different tutorials for different audiences
  46. Strategies • We were all newbies once • User test

    your docs! • Test your docs! • Say who you're writing for • Different tutorials for different audiences (or at least file a bug)