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

beginner friendly docs

beginner friendly docs

Avatar for Conferences Box

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)