Pro Yearly is on sale from $80 to $50! »

The Practical Guide to Building an Apprenticeship - GORUCO

The Practical Guide to Building an Apprenticeship - GORUCO

Presented at GORUCO on June 16th, 2018

--

Currently, our industry has a surplus of bright junior developers, but a lack of open junior positions. Building a developer apprenticeship in your organization is a great way to provide a haven for these talented devs, while simultaneously making your team more productive and easing the pain of hiring.

In this talk, you'll learn from the mistakes I've made and wins I've had in creating an apprenticeship. From pitching the idea to growing your apprentices, you'll gain a step-by-step guide to successfully building your own apprenticeship program.

817f5f1ada5fdeffcd14668107c08f0a?s=128

Megan Tiu

June 16, 2018
Tweet

Transcript

  1. The Practical Guide to Building an Apprenticeship Megan Tiu GORUCO

    June 16, 2018
  2. Hello there I am: @megantiu on Twitter megantiu on GitHub

  3. 2017

  4. apprenticeship

  5. fulfill a real need

  6. "there’s a widening gap between educational institutions and the companies

    hiring" Lia James @Lia_James http://blog.humanpredictions.io/apprenticeships-the-building-blocks/
  7. unify and engage your team

  8. create more diverse & inclusive organizations

  9. what’s an apprenticeship?

  10. what’s an apprenticeship?

  11. how’s it different from an internship?

  12. Internship Focus on one specific project Implies they’ll do the

    dirty work Short-term
  13. Internship Focus on one specific project Implies they’ll do the

    dirty work Short-term Apprenticeship Focus on sustainable growth Implies they’ll be honing their craft Long-term
  14. laying the ground work

  15. pitching planning preparation

  16. what do you need to get it going?

  17. what do you need to get it going? a plan

    cash buy-in
  18. convince your boss

  19. Material Eliminate onboarding costs Eliminate recruiting costs Easier hiring of

    seniors
  20. Material Eliminate onboarding costs Eliminate recruiting costs Easier hiring of

    seniors Immaterial Increase diversity of background and skill Improve team connectivity Increase developer productivity
  21. key factors to decide program length number of apprentices who’s

    going to do what
  22. key factors to decide what should they know? what should

    they learn? how will they learn it?
  23. you need a game plan

  24. i. goals ii. who to target i. potential places to

    advertise iii.timeline i. month 1 ii. month 2 iii.months 3 and 4 iv. projects i. specific possible projects ii. general qualities iii.examples v. process i. division of work ii. moving between teams iii.supplemental reading iv. mentorship vi.logistics i. interview process ii. involving the team iii.post-apprenticeship hiring iv. work setup vii.items to consider
  25. implementation

  26. hiring onboarding growing

  27. hiring

  28. goal establish an unbiased, even playing field for candidates

  29. how we did it application code challenge final interview

  30. how we did it end-to-end anonymization throughout the entire process

  31. application

  32. None
  33. what does your background bring to the table?

  34. candidates consistently try to "make up" for the fact that

    they don’t have previous technical experience
  35. tell us about a problem that challenged you while learning,

    but you ultimately conquered.
  36. tell us about a problem that challenged you while learning,

    but you ultimately conquered. ✨
  37. application review

  38. None
  39. reviewers rated each application on: eagerness/excitement curiosity drive

  40. how we did it: hiring make data-driven conclusions (including early

    cuts and acceptances)
  41. code challenge

  42. how we did it: code challenge decide what we want

    to know figure out what format we want write the code challenge
  43. how we did it: code challenge each candidate had their

    own GitHub repo
  44. None
  45. None
  46. class Grader end

  47. describe '#score' do # the student forgot to answer a

    question context 'when passed nil for an answer' do let(:answers) { ['A', 'B', nil, 'D'] } it 'counts the nil as incorrect' do expect(grader.score(answers)).to eq(75.0) end end end
  48. how we did it: code challenge code comments are the

    only context your candidates have
  49. how we did it: code challenge a script scrubbed commits’

    author info, then submitted a PR to a separate submissions-only repo
  50. how we did it: code challenge preserved commit history without

    risk of identifying candidates
  51. how we did it: code challenge the pull request format

    allowed reviewers to assess submissions in a familiar environment
  52. code challenge review

  53. None
  54. if you could provide feedback to the candidate on their

    submission, what would you say?
  55. final interview

  56. how we did it: final interview product/company intro technical conversation

    behavioral conversation
  57. how we did it: technical chat what challenged you while

    completing the code challenge?
  58. how we did it: technical chat see how they react

    to feedback using the suggestions from the code challenge review
  59. how we did it: behavioral chat what would you change

    about the school you attended?
  60. ways to improve use an HR platform

  61. ways to improve don’t limit the code challenge to one

    language
  62. ways to improve be more direct with application questions ask

    what you want to know
  63. onboarding

  64. goals set the apprentices up for success teach them essential

    concepts
  65. how we did it give them the same onboarding experience

    as the rest of our developers
  66. how we did it scavenger hunt!

  67. how we did it lessons on foundational concepts like OOP,

    debugging
  68. ways to improve give them earlier exposure to practices like

    sprint planning, point estimation
  69. growing

  70. goals anticipate needs provide an inclusive, friendly environment to grow

    and learn increase apprentice independence
  71. how we did it an initial ramping-up period small changes,

    bug fixes, internal-facing work
  72. how we did it team rotations doing customer- facing work

    exposure to all stack levels
  73. how we did it set early expectations

  74. None
  75. how we did it establish regular communication through 1:1s and

    more
  76. how we did it include them in their team rotation

    decisions
  77. how we did it don’t be afraid to let them

    fail
  78. ways to improve look for early warning signs and be

    proactive about intervening
  79. ways to improve ensure everyone involved is on the same

    page regarding expectations
  80. wrapping up

  81. planning hiring onboarding growing

  82. our results

  83. we hired both of our apprentices!

  84. they’re both productive members of teams

  85. lessons learned

  86. listen to early hunches about candidates

  87. give yourself lots of time for this process

  88. always work with your goals in mind

  89. make a real impact

  90. we provided W2 jobs that pay a living wage and

    include full benefits!!
  91. Big movements are comprised of small shifts.

  92. This is a chance to take action.

  93. Go start an apprenticeship.

  94. Thank you! I am: @megantiu on Twitter megantiu on GitHub

  95. thank you! Loren Crawford @LCrawfish Pamela Vickers @pwnela Kylie Stradley

    @kyfast Robby Ranshous @rranshous Steve Jackson @stevejxsn Elliott Wood @ewoodh20 Rachael Wright @chaelcodes
  96. Thank you! I am: @megantiu on Twitter megantiu on GitHub