onboarding the ruby way
TRANSCRIPT
@LMcNish14
OnboardingThe Ruby Way
@LMcNish14
Layne McNish
Software Engineer
@LMcNish14
Layne McNish
Publicist
Professional Thesaurus User
@LMcNish14
Layne McNish
Chef
Yummy Noms
@LMcNish14
Layne McNish
Technical Support
Have you tried turning it off and back on again?
@LMcNish14
Layne McNish
Veterinary Technician
Kitties & Puppies
@LMcNish14
Layne McNish
Classical Cellist
♩♫♪♩♫♪
@LMcNish14
Layne McNish
Jill of All Trades
¯\_(ツ )_/¯
@LMcNish14
Omada Health
Omada Health is on a mission to inspire and enable people everywhere to live free of chronic disease.
@LMcNish14
Omada Health
We’re hiring!Chat with me afterwards if you’re interested!
@LMcNish14
MINASOOPIN(Catchy, I know)
@LMcNish14
I want you to examine your current process with fresh eyes and ask yourself, could this be nicer?
@LMcNish14
I want your new engineers to walk away from their first day feeling useful, productive and confident in their choice to work on your team.
@LMcNish14
Story Time
@LMcNish14
Current State of Things
README Driven Onboarding
@LMcNish14
Get your shiny new computer
@LMcNish14
Clone project
@LMcNish14
Follow the README
@LMcNish14
ERROR
@LMcNish14
Google it
@LMcNish14
Fix it
@LMcNish14
Follow the README
@LMcNish14
ERROR
@LMcNish14
Google it
@LMcNish14
ERROR
@LMcNish14
Ask the team
@LMcNish14
ERROR
@LMcNish14
Works on My Machine
Team says:
@LMcNish14
@LMcNish14
Google it
@LMcNish14
Fix it
@LMcNish14
SUCCESS
@LMcNish14
Run your tests
@LMcNish14
@LMcNish14
Debug
@LMcNish14
@LMcNish14
Ask the team
@LMcNish14
Fix it
@LMcNish14
@LMcNish14
Make your 1st commit
@LMcNish14
@LMcNish14
Did this seem nice to you?
@LMcNish14
@LMcNish14
Setting up your dev
environment
@LMcNish14
Follow a README or Wiki
@LMcNish14
Bash Script
@LMcNish14 Source: XKCD
The failures usually don't hurt anything, and if it installs several versions, it increases the chance that one of them is right. (Note: The 'yes' command and '2>/dev/null' are recommended additions.)
@LMcNish14
Define your functions
@LMcNish14
Make it idempotent
@LMcNish14
Be mindful of dependencies
@LMcNish14
Allow for customizations
@LMcNish14
Allow for customizations
@LMcNish14
Pin versions
@LMcNish14
Add logging
@LMcNish14
Examples
github/scripts-to-rule-them-all
thoughtbot/laptop
@LMcNish14
Vagrant
@LMcNish14
Imagine a world where getting started is as easy
as
@LMcNish14
@LMcNish14
Minimizes set up time
@LMcNish14
Development == Production
@LMcNish14
Consistent Versions Across The Team
@LMcNish14
@LMcNish14
Works on my Vagrant instance
@LMcNish14
High Upfront Cost
@LMcNish14
SLOW
@LMcNish14
@LMcNish14
Other Niceties
@LMcNish14
Project specific rake tasks
@LMcNish14
Uses Ruby
@LMcNish14
Easy way to set up similar projects
@LMcNish14
Dependency Management
@LMcNish14
Customization
@LMcNish14
Database Setup
@LMcNish14
Shared Dotfiles
@LMcNish14
Declares Best Practices
@LMcNish14
Pre-push Hooks
@LMcNish14
Crowdsource Cool Shortcuts
@LMcNish14
Consistent Dev Environments
@LMcNish14
Makes Pairing Easier
@LMcNish14
Rules are hard to agree on
@LMcNish14
@LMcNish14
Provide Help
@LMcNish14
When to go manual
@LMcNish14
Set expectations
@LMcNish14
Mix it up
@LMcNish14
Map it out
@LMcNish14
Make a list
@LMcNish14
Allow time for questions
Optional
@LMcNish14
Buddy System
@LMcNish14
Give them a few quick wins
@LMcNish14
What can you do to make your on-boarding process nicer?
@LMcNish14
Thanks!