gratipay / inside.gratipay.com

Here lieth a pioneer in open source sustainability. RIP
https://gratipay.news/the-end-cbfba8f50981
58 stars 38 forks source link

howto teach people #442

Closed chadwhitacre closed 8 years ago

chadwhitacre commented 8 years ago

I think we've got a great thing going with our onboarding tickets (#253, #424, etc.). I think we can do even better if we can get on the same page about how we're approaching onboarding, especially for junior- and intern-level folks.

As I've started working with COS, I'm getting first-hand experience with the fantastic internship program @JeffSpies has established there. One of the keys to their success is a focus on "how to fish" pedagogy: giving people enough help so that they're not spinning their wheels, but not so much that we do all the work for them. We want to help people become problem solvers by giving them a term to Google for, or a documentation link to read. We don't want to feed them the answers, because we want them to learn to find the answers for themselves. That said, we don't want them to spin their wheels, either. A good rule of thumb at COS is, "You can't ask me another question for an hour, but you have to ask me another question in an hour."

Thoughts @rohitpaulk et al.?

chadwhitacre commented 8 years ago

@rohitpaulk @kzisme I don't want to derail you two too much because I love that you're working together. At the same time, I want to make sure we get into good habits of onboarding and training people. Basically, I think we want a little more RTFM, without the rudeness traditionally associated with that term. Read the fun manual! :blue_book: :dancer:

For example, looking at https://github.com/gratipay/inside.gratipay.com/issues/253#issuecomment-166515010:

SELECT * FROM participants WHERE username = kzisme;

You'll need single quotes around kzisme

I think a preferable approach would've been to provide @kzisme with a clue, without answering the question directly for him. Something like:

gratipay=# SELECT * FROM participants WHERE username = kzisme; ERROR: column "kzisme" does not exist

Go read up on the lexical structure of SQL in Postgres, paying particular attention to the difference between identifiers and string constants.

That gives @kzisme something to Google for ("lexical structure of SQL in Postgres"), and a hint about how to navigate the complex documentation page he's going to find when he does so. But it still makes @kzisme do work, which is important: we want @kzisme to learn how to solve problems on his own. This takes more work up front on our part, @rohitpaulk, but I think it's the best thing overall because then @kzisme becomes an independent and productive member of the team more quickly. If @kzisme learns to be dependent on us for answers to easy questions, then we make ourselves a bottleneck, which leads to burnout for us and helplessness for @kzisme when we're not around.

chadwhitacre commented 8 years ago

Basically, I think we want a little more RTFM, without the rudeness traditionally associated with that term. Read the fun manual!

I've started a howto to give us something to link to that says what we want without being rude.

RTFM :blue_book::dancer:

rohitpaulk commented 8 years ago

:+1: :)

chadwhitacre commented 8 years ago

!m @rohitpaulk :-)

chadwhitacre commented 8 years ago

I guess that's enough to close this ticket. :-)

chadwhitacre commented 8 years ago

Reopen if you think we need to discuss further ...