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

Mike McNeil: Developers, From Scratch

Avatar for Luke Heath Luke Heath
February 21, 2019

Mike McNeil: Developers, From Scratch

Avatar for Luke Heath

Luke Heath

February 21, 2019

More Decks by Luke Heath

Other Decks in Programming

Transcript

  1. The Company Managing apprentices (These guidelines work well for my

    team -- but every team is a little different.)
  2. The Company - Celebrate when apprentices catch bugs and gaps

    in requirements, even if they seem insignificant. - Decide on a process that apprentices will follow when they run out of stuff to do, and encourage active communication any time they're unsure what to work on next - You might be able to afford to send apprentices to planning meetings that would be too expensive for other developers Managing apprentices
  3. The Company - Set clear expectations about code ownership (which

    files apprentices can change without doing a pull request) - Set clear expectations about when it is appropriate to interrupt senior developers with work questions (e.g. only in the morning before or during the standup meeting) - Empower senior developers to delegate tasks to apprentices Managing apprentices
  4. The Company Managing apprentices - Never assign a business-critical task

    unless you're 99% sure you'll get to say "Nice work!" afterward. - Set an informal time window for "graduation" (e.g. 2 years) - Don't skimp on ahead-of-time training hours-- as long as those skills are sufficiently valuable to your team to be worth your $$$ and time. And only after the apprentice has already been initially exposed to the concepts you're showing them, in practice.
  5. Kinds of training - Ad hoc (scattered, on-the-job training when

    you realize you assigned a task that is too hard) - "I'll set this up while you watch" (setting up your dev environment) - Drills (contrived exercises or low priority tasks) - Theory (interactive lecture / live coding)
  6. Things worth teaching ahead of time - Essential tools &

    expectations (editor, what is the filesystem really?, terminal, GitHub app, node, npm install sails, Heroku, customer service, communication etiquette) - Thinking like an engineer (incognito mode and Chrome profiles, screenshot hotkeys, giphy, Chrome dev tools, the REPL, the terminal, the importance of thoroughness, how to think about edge cases, collaboration) - The DOM (HTML+CSS, and how the browser works) - Logic (&&, ||, v-if, v-else, v-for, etc) - HTTP and the internet (how to read API docs, how to use Postman, <ajax-form>, loading spinners, cloud errors vs. client-side form errors)
  7. So... does it work? - Yes. But start with just

    one apprentice - And try to only train one apprentice at a time (for us, that means staggering hires by at least 4 weeks, even if your backlog or budget might make it feel like you have to hire more quickly)
  8. So... does it work? - Since going "all in" with

    this model two years ago, hiring first-time programmers as apprentices, it took a little while to warm back up. - But today, we ship most features just as fast as we did with a larger and more experienced traditional team 5 years ago.