Teaching Drupal
 Diana Montalion Dupuis
                          8.24.10
                          Acquia
Teaching Drupal
Developers: People who spend (a lot of) time figuring
out Drupal works, writing code for it, designing
themes for it, reading books about it, and traveling
to Drupalcon to talk about it.

Users: People forced by circumstances to interact
with Drupal and its developers.


DrupalCon Cophenhagen 2010
Introduction
Introduction
* Diana Montalion Dupuis
Introduction
* Diana Montalion Dupuis
* mooncougar (diana: moon goddess + montalion:
mountain lion)
Introduction
* Diana Montalion Dupuis
* mooncougar (diana: moon goddess + montalion:
mountain lion)
* Aaron Forsander (pifantastic)
Introduction
* Diana Montalion Dupuis
* mooncougar (diana: moon goddess + montalion:
mountain lion)
* Aaron Forsander (pifantastic)
* #teachingdrupal
You know who he is . . .
You know who he is . . .




Dries Buytaert: Drupal creator
Who is he?
Who is he?




Tom Standage; Digital Editor for Economist.com
Users
 should be famous
too!
They are the people who use the tools we build and
their business goals are the reason we do what we
do.
Before we start: two
assumptions
Before we start: two
assumptions
1. Our “user” did not install and build the website.
Before we start: two
assumptions
1. Our “user” did not install and build the website.
2. You did.
Before we start: two
assumptions
1. Our “user” did not install and build the website.
2. You did.
2a. Or you could have.
Before we start: two
assumptions
1. Our “user” did not install and build the website.
2. You did.
2a. Or you could have.
2b. Or you are part of a team who did and/or could
have.
Drupal’s Infamous Steep
Learning Curve
http://buytaert.net/sites/buytaert.net/files/images/drupal/learning-curve.jpg
The User Learning Curve
The User Learning Curve
“Edit the homepage.”
Teaching Drupal Truth #1
Teaching Drupal Truth #1
The user’s learning curve is steep only if you try to
drag them up every mountain.
users see these concepts differently than we do: modules, for example
We climb mountains
We climb mountains
* Nodes
We climb mountains
* Nodes
* Blocks
We climb mountains
* Nodes
* Blocks
* Views
We climb mountains
*   Nodes
*   Blocks
*   Views
*   Modules
We climb mountains
*   Nodes
*   Blocks
*   Views
*   Modules
*   Content types
We climb mountains
*   Nodes
*   Blocks
*   Views
*   Modules
*   Content types
*   Roles and permissions
We climb mountains
*   Nodes
*   Blocks
*   Views
*   Modules
*   Content types
*   Roles and permissions
*   Taxonomy
Users hike paths
Users hike paths
* Log in
Users hike paths
* Log in
* Edit the About Us page
Users hike paths
* Log in
* Edit the About Us page
* Create a blog post
Users hike paths
*   Log in
*   Edit the About Us page
*   Create a blog post
*   Attach a file to a press release
Users hike paths
*   Log in
*   Edit the About Us page
*   Create a blog post
*   Attach a file to a press release
*   Add a new editor
Users hike paths
*   Log in
*   Edit the About Us page
*   Create a blog post
*   Attach a file to a press release
*   Add a new editor
*   Edit the list of tags
Users hike paths
*   Log in
*   Edit the About Us page
*   Create a blog post
*   Attach a file to a press release
*   Add a new editor
*   Edit the list of tags
*   Effectively report a bug
Teaching Drupal Truth #2




we love mountains (concepts), users hike paths (accomplish tasks)
Teaching Drupal Truth #2
 We don’t teach Drupal. We teach the user how to do
 what they need to do, but don’t already know how to
 do, with the tool we build for them.




we love mountains (concepts), users hike paths (accomplish tasks)
My favorite user




Caitlin Copple: previously of the YWCA of Missoula
Where do I begin?
Where do I begin?
1. Ask, “What do you do on the site?”
Where do I begin?
1. Ask, “What do you do on the site?”
2. Ask, “Have you used Drupal before? Have you
used any other web applications?”
Where do I begin?
1. Ask, “What do you do on the site?”
2. Ask, “Have you used Drupal before? Have you
used any other web applications?”
3. Empathize.
Empathy
 “the action of understanding, being aware of, being
 sensitive to, and vicariously experiencing the
 feelings, thoughts, and experience of another ...”




IOW, walk in the user’s shoes
And remember . . .
 The user has no context.




normal Drupal behavior or a bug?
Four essential steps
Four essential steps
1. Teach.
Four essential steps
1. Teach.
2. Show.
Four essential steps
1. Teach.
2. Show.
3. Do.
Four essential steps
1.   Teach.
2.   Show.
3.   Do.
4.   Document.
Teach.
Teach.
1. Explain the task you are about to demonstrate.
“Let’s edit the About Us page.” “Let’s create a new
blog post.” “Let’s add a new user.”
Teach.
1. Explain the task you are about to demonstrate.
“Let’s edit the About Us page.” “Let’s create a new
blog post.” “Let’s add a new user.”
2. Use normal words (with a sprinkling of Drupalese
when necessary.) “Alan has the role of editor, and
we’re going to give that role permission to edit other
user’s blog posts.”
Show.
Show.
Show the user how to do it. If you can’t be there in
person, use screensharing.
Do.
Do.
1. Ask the user to do it.
Do.
1. Ask the user to do it.
2. Pay attention to where they falter, is there a way to
make the path more clear?
Do.
1. Ask the user to do it.
2. Pay attention to where they falter, is there a way to
make the path more clear?
3. Go at their pace, add more challenge when
necessary, stop and rest when it’s beneficial.
Document.
Document.
1. Prepare “just enough” documentation ahead of
time.
Document.
1. Prepare “just enough” documentation ahead of
time.
2. Encourage the user to take notes. This will help
them remember how to do it or at least, know
where to look it up.
Document.
1. Prepare “just enough” documentation ahead of
time.
2. Encourage the user to take notes. This will help
them remember how to do it or at least, know
where to look it up.
3. Create a space for communal editing of
documentation and a process for asking questions.
Teaching Drupal Truth #3




yes, I made up the word unfrustrate
Teaching Drupal Truth #3
 The less time you spend fixing a broken site while
 unfrustrating the user, the more time you will have
 to do other the things. Like, code. Win win.




yes, I made up the word unfrustrate
Geekitis
Geekitis
1. Going out for a beer is more fun if you discuss
using hook_form_alter vs hook_form_FORM_ID_alter.
Geekitis
1. Going out for a beer is more fun if you discuss
using hook_form_alter vs hook_form_FORM_ID_alter.
2. In conversation, you mention having spoken to
greggles.
Geekitis
1. Going out for a beer is more fun if you discuss
using hook_form_alter vs hook_form_FORM_ID_alter.
2. In conversation, you mention having spoken to
greggles.
3. You hate (or love) camelCase.
Geekitis
1. Going out for a beer is more fun if you discuss
using hook_form_alter vs hook_form_FORM_ID_alter.
2. In conversation, you mention having spoken to
greggles.
3. You hate (or love) camelCase.
4. After work, for fun, you work.
Geekitis
1. Going out for a beer is more fun if you discuss
using hook_form_alter vs hook_form_FORM_ID_alter.
2. In conversation, you mention having spoken to
greggles.
3. You hate (or love) camelCase.
4. After work, for fun, you work.
Teaching Drupal Truth #4
Teaching Drupal Truth #4
If you have geekitis, it isn't contagious.

Users don’t have to love the mountains to effectively
hike the path. And they don’t care that you climbed
Everest unless that solves their immediate problem.
Leave a map
Leave a map
1. Suggest quality resources (books, website links,
tutorials).
Leave a map
1. Suggest quality resources (books, website links,
tutorials).
2. Provide documentation and encourage the user to
collaborate.
Leave a map
1. Suggest quality resources (books, website links,
tutorials).
2. Provide documentation and encourage the user to
collaborate.
3. Make sure the user knows who to contact when
problems arise.
Bring the bug repellent
Bring the bug repellent
1. Take the sting out of bug reporting by training
users to give you what you need to solve the
problem. Ask them specific questions and respond
to drama with empathy.
Bring the bug repellent
1. Take the sting out of bug reporting by training
users to give you what you need to solve the
problem. Ask them specific questions and respond
to drama with empathy.
2. Have them walk you through the process.
Bring the bug repellent
1. Take the sting out of bug reporting by training
users to give you what you need to solve the
problem. Ask them specific questions and respond
to drama with empathy.
2. Have them walk you through the process.
3. Make sure they know how to take a screenshot.
Teaching Drupal Truth #5
Teaching Drupal Truth #5
No users; no Drupal. The people who apply our
tools to real-world problems are the reason we are
all here today.
Teaching Drupal Truths
Teaching Drupal Truths
1. The user’s learning curve is steep only if you try to
drag them up every mountain.
Teaching Drupal Truths
1. The user’s learning curve is steep only if you try to
drag them up every mountain.
2. We don’t teach Drupal. We teach the user how to
do what they need to do, but don’t already know how
to do, with the tool we build for them.
Teaching Drupal Truths
1. The user’s learning curve is steep only if you try to
drag them up every mountain.
2. We don’t teach Drupal. We teach the user how to
do what they need to do, but don’t already know how
to do, with the tool we build for them.
3. The less time you spend fixing a broken site while
unfrustrating the user, the more time you will have
to do other the things. Like, code. Win win.
Teaching Drupal Truths
1. The user’s learning curve is steep only if you try to
drag them up every mountain.
2. We don’t teach Drupal. We teach the user how to
do what they need to do, but don’t already know how
to do, with the tool we build for them.
3. The less time you spend fixing a broken site while
unfrustrating the user, the more time you will have
to do other the things. Like, code. Win win.
4. If you have geekitis, it isn't contagious.
Teaching Drupal Truths
1. The user’s learning curve is steep only if you try to
drag them up every mountain.
2. We don’t teach Drupal. We teach the user how to
do what they need to do, but don’t already know how
to do, with the tool we build for them.
3. The less time you spend fixing a broken site while
unfrustrating the user, the more time you will have
to do other the things. Like, code. Win win.
4. If you have geekitis, it isn't contagious.
5. No users; no Drupal. The people who apply our
tools to real-world problems are the reason we are
http://cph2010.drupal.org/node/7243

Teaching Drupal

  • 1.
    Teaching Drupal DianaMontalion Dupuis 8.24.10 Acquia
  • 2.
    Teaching Drupal Developers: Peoplewho spend (a lot of) time figuring out Drupal works, writing code for it, designing themes for it, reading books about it, and traveling to Drupalcon to talk about it. Users: People forced by circumstances to interact with Drupal and its developers. DrupalCon Cophenhagen 2010
  • 3.
  • 4.
  • 5.
    Introduction * Diana MontalionDupuis * mooncougar (diana: moon goddess + montalion: mountain lion)
  • 6.
    Introduction * Diana MontalionDupuis * mooncougar (diana: moon goddess + montalion: mountain lion) * Aaron Forsander (pifantastic)
  • 7.
    Introduction * Diana MontalionDupuis * mooncougar (diana: moon goddess + montalion: mountain lion) * Aaron Forsander (pifantastic) * #teachingdrupal
  • 8.
    You know whohe is . . .
  • 9.
    You know whohe is . . . Dries Buytaert: Drupal creator
  • 10.
  • 11.
    Who is he? TomStandage; Digital Editor for Economist.com
  • 12.
    Users should befamous too! They are the people who use the tools we build and their business goals are the reason we do what we do.
  • 13.
    Before we start:two assumptions
  • 14.
    Before we start:two assumptions 1. Our “user” did not install and build the website.
  • 15.
    Before we start:two assumptions 1. Our “user” did not install and build the website. 2. You did.
  • 16.
    Before we start:two assumptions 1. Our “user” did not install and build the website. 2. You did. 2a. Or you could have.
  • 17.
    Before we start:two assumptions 1. Our “user” did not install and build the website. 2. You did. 2a. Or you could have. 2b. Or you are part of a team who did and/or could have.
  • 18.
  • 19.
  • 20.
  • 21.
    The User LearningCurve “Edit the homepage.”
  • 23.
  • 24.
    Teaching Drupal Truth#1 The user’s learning curve is steep only if you try to drag them up every mountain.
  • 25.
    users see theseconcepts differently than we do: modules, for example
  • 26.
  • 27.
  • 28.
    We climb mountains *Nodes * Blocks
  • 29.
    We climb mountains *Nodes * Blocks * Views
  • 30.
    We climb mountains * Nodes * Blocks * Views * Modules
  • 31.
    We climb mountains * Nodes * Blocks * Views * Modules * Content types
  • 32.
    We climb mountains * Nodes * Blocks * Views * Modules * Content types * Roles and permissions
  • 33.
    We climb mountains * Nodes * Blocks * Views * Modules * Content types * Roles and permissions * Taxonomy
  • 34.
  • 35.
  • 36.
    Users hike paths *Log in * Edit the About Us page
  • 37.
    Users hike paths *Log in * Edit the About Us page * Create a blog post
  • 38.
    Users hike paths * Log in * Edit the About Us page * Create a blog post * Attach a file to a press release
  • 39.
    Users hike paths * Log in * Edit the About Us page * Create a blog post * Attach a file to a press release * Add a new editor
  • 40.
    Users hike paths * Log in * Edit the About Us page * Create a blog post * Attach a file to a press release * Add a new editor * Edit the list of tags
  • 41.
    Users hike paths * Log in * Edit the About Us page * Create a blog post * Attach a file to a press release * Add a new editor * Edit the list of tags * Effectively report a bug
  • 42.
    Teaching Drupal Truth#2 we love mountains (concepts), users hike paths (accomplish tasks)
  • 43.
    Teaching Drupal Truth#2 We don’t teach Drupal. We teach the user how to do what they need to do, but don’t already know how to do, with the tool we build for them. we love mountains (concepts), users hike paths (accomplish tasks)
  • 44.
    My favorite user CaitlinCopple: previously of the YWCA of Missoula
  • 45.
    Where do Ibegin?
  • 46.
    Where do Ibegin? 1. Ask, “What do you do on the site?”
  • 47.
    Where do Ibegin? 1. Ask, “What do you do on the site?” 2. Ask, “Have you used Drupal before? Have you used any other web applications?”
  • 48.
    Where do Ibegin? 1. Ask, “What do you do on the site?” 2. Ask, “Have you used Drupal before? Have you used any other web applications?” 3. Empathize.
  • 49.
    Empathy “the actionof understanding, being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another ...” IOW, walk in the user’s shoes
  • 50.
    And remember .. . The user has no context. normal Drupal behavior or a bug?
  • 51.
  • 52.
  • 53.
    Four essential steps 1.Teach. 2. Show.
  • 54.
    Four essential steps 1.Teach. 2. Show. 3. Do.
  • 55.
    Four essential steps 1. Teach. 2. Show. 3. Do. 4. Document.
  • 56.
  • 57.
    Teach. 1. Explain thetask you are about to demonstrate. “Let’s edit the About Us page.” “Let’s create a new blog post.” “Let’s add a new user.”
  • 58.
    Teach. 1. Explain thetask you are about to demonstrate. “Let’s edit the About Us page.” “Let’s create a new blog post.” “Let’s add a new user.” 2. Use normal words (with a sprinkling of Drupalese when necessary.) “Alan has the role of editor, and we’re going to give that role permission to edit other user’s blog posts.”
  • 59.
  • 60.
    Show. Show the userhow to do it. If you can’t be there in person, use screensharing.
  • 61.
  • 62.
    Do. 1. Ask theuser to do it.
  • 63.
    Do. 1. Ask theuser to do it. 2. Pay attention to where they falter, is there a way to make the path more clear?
  • 64.
    Do. 1. Ask theuser to do it. 2. Pay attention to where they falter, is there a way to make the path more clear? 3. Go at their pace, add more challenge when necessary, stop and rest when it’s beneficial.
  • 65.
  • 66.
    Document. 1. Prepare “justenough” documentation ahead of time.
  • 67.
    Document. 1. Prepare “justenough” documentation ahead of time. 2. Encourage the user to take notes. This will help them remember how to do it or at least, know where to look it up.
  • 68.
    Document. 1. Prepare “justenough” documentation ahead of time. 2. Encourage the user to take notes. This will help them remember how to do it or at least, know where to look it up. 3. Create a space for communal editing of documentation and a process for asking questions.
  • 69.
    Teaching Drupal Truth#3 yes, I made up the word unfrustrate
  • 70.
    Teaching Drupal Truth#3 The less time you spend fixing a broken site while unfrustrating the user, the more time you will have to do other the things. Like, code. Win win. yes, I made up the word unfrustrate
  • 71.
  • 72.
    Geekitis 1. Going outfor a beer is more fun if you discuss using hook_form_alter vs hook_form_FORM_ID_alter.
  • 73.
    Geekitis 1. Going outfor a beer is more fun if you discuss using hook_form_alter vs hook_form_FORM_ID_alter. 2. In conversation, you mention having spoken to greggles.
  • 74.
    Geekitis 1. Going outfor a beer is more fun if you discuss using hook_form_alter vs hook_form_FORM_ID_alter. 2. In conversation, you mention having spoken to greggles. 3. You hate (or love) camelCase.
  • 75.
    Geekitis 1. Going outfor a beer is more fun if you discuss using hook_form_alter vs hook_form_FORM_ID_alter. 2. In conversation, you mention having spoken to greggles. 3. You hate (or love) camelCase. 4. After work, for fun, you work.
  • 76.
    Geekitis 1. Going outfor a beer is more fun if you discuss using hook_form_alter vs hook_form_FORM_ID_alter. 2. In conversation, you mention having spoken to greggles. 3. You hate (or love) camelCase. 4. After work, for fun, you work.
  • 77.
  • 78.
    Teaching Drupal Truth#4 If you have geekitis, it isn't contagious. Users don’t have to love the mountains to effectively hike the path. And they don’t care that you climbed Everest unless that solves their immediate problem.
  • 79.
  • 80.
    Leave a map 1.Suggest quality resources (books, website links, tutorials).
  • 81.
    Leave a map 1.Suggest quality resources (books, website links, tutorials). 2. Provide documentation and encourage the user to collaborate.
  • 82.
    Leave a map 1.Suggest quality resources (books, website links, tutorials). 2. Provide documentation and encourage the user to collaborate. 3. Make sure the user knows who to contact when problems arise.
  • 83.
    Bring the bugrepellent
  • 84.
    Bring the bugrepellent 1. Take the sting out of bug reporting by training users to give you what you need to solve the problem. Ask them specific questions and respond to drama with empathy.
  • 85.
    Bring the bugrepellent 1. Take the sting out of bug reporting by training users to give you what you need to solve the problem. Ask them specific questions and respond to drama with empathy. 2. Have them walk you through the process.
  • 86.
    Bring the bugrepellent 1. Take the sting out of bug reporting by training users to give you what you need to solve the problem. Ask them specific questions and respond to drama with empathy. 2. Have them walk you through the process. 3. Make sure they know how to take a screenshot.
  • 87.
  • 88.
    Teaching Drupal Truth#5 No users; no Drupal. The people who apply our tools to real-world problems are the reason we are all here today.
  • 89.
  • 90.
    Teaching Drupal Truths 1.The user’s learning curve is steep only if you try to drag them up every mountain.
  • 91.
    Teaching Drupal Truths 1.The user’s learning curve is steep only if you try to drag them up every mountain. 2. We don’t teach Drupal. We teach the user how to do what they need to do, but don’t already know how to do, with the tool we build for them.
  • 92.
    Teaching Drupal Truths 1.The user’s learning curve is steep only if you try to drag them up every mountain. 2. We don’t teach Drupal. We teach the user how to do what they need to do, but don’t already know how to do, with the tool we build for them. 3. The less time you spend fixing a broken site while unfrustrating the user, the more time you will have to do other the things. Like, code. Win win.
  • 93.
    Teaching Drupal Truths 1.The user’s learning curve is steep only if you try to drag them up every mountain. 2. We don’t teach Drupal. We teach the user how to do what they need to do, but don’t already know how to do, with the tool we build for them. 3. The less time you spend fixing a broken site while unfrustrating the user, the more time you will have to do other the things. Like, code. Win win. 4. If you have geekitis, it isn't contagious.
  • 94.
    Teaching Drupal Truths 1.The user’s learning curve is steep only if you try to drag them up every mountain. 2. We don’t teach Drupal. We teach the user how to do what they need to do, but don’t already know how to do, with the tool we build for them. 3. The less time you spend fixing a broken site while unfrustrating the user, the more time you will have to do other the things. Like, code. Win win. 4. If you have geekitis, it isn't contagious. 5. No users; no Drupal. The people who apply our tools to real-world problems are the reason we are
  • 95.