The Practical Guide to Building an Apprenticeship - We Rise

The Practical Guide to Building an Apprenticeship - We Rise

Presented at We Rise on June 21st, 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 21, 2018
Tweet

Transcript

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

    Rise June 21, 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? 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. None
  34. None
  35. None
  36. what does your background bring to the table?

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

    they don’t have previous technical experience
  38. what parts of programming excite you the most?

  39. what parts of programming excite you the most?

  40. what makes you unique?

  41. what makes you unique?

  42. tell us about a problem that challenged you while learning,

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

    but you ultimately conquered. ✨
  44. application review

  45. None
  46. reviewers rated each application on: eagerness/excitement curiosity drive

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

    cuts and acceptances)
  48. code challenge

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

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

    own GitHub repo
  51. None
  52. None
  53. class Grader end

  54. 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
  55. how we did it: code challenge code comments are the

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

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

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

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

  60. None
  61. if you could provide feedback to the candidate on their

    submission, what would you say?
  62. final interview

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

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

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

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

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

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

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

    what you want to know
  70. onboarding

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

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

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

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

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

    sprint planning, point estimation
  76. growing

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

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

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

    to all stack levels
  80. shallow self-contained high-level provides value low barrier to entry

  81. how we did it set early expectations

  82. None
  83. None
  84. how we did it establish regular communication through 1:1s and

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

    decisions
  86. how we did it give them unstructured time to learn

    freely
  87. how we did it don’t be afraid to let them

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

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

    page regarding expectations
  90. wrapping up

  91. planning hiring onboarding growing

  92. our results

  93. we hired both of our apprentices!

  94. they’re both productive members of teams

  95. lessons learned

  96. listen to early hunches about candidates

  97. give yourself lots of time for this process

  98. always work with your goals in mind

  99. make a real impact

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

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

  102. This is a chance to take action.

  103. Go start an apprenticeship.

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

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

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