SlideShare a Scribd company logo
@LMcNish14
Onboarding
The 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
installfest.railsbridge.org
@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!

More Related Content

Recently uploaded

Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 

Recently uploaded (20)

Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 

Featured

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Onboarding The Ruby Way

Editor's Notes

  1. Welcome Friends to Onboarding the Ruby Way!
  2. This is my 1st time in Taiwan and I have had such an amazing time
  3. Basically, all I’ve done for the past week is hike and eat and
  4. go shrimp fishing. Check out this shrimp, it’s enormous! Not pictured is when it pinched me right after this photo was taken. Anyways, thank you all for a wonderful time. America has a lot to learn from the hospitality of Taiwan.
  5. Let me introduce myself, my name is Layne McNish and I’m a software engineer and fellow rubyist from Oakland, California. I’m a bit late to the game of software. Before I became an engineer, I’ve worked in many industries from
  6. Publicity to
  7. Chef to
  8. Technical support to
  9. Veterinary Technician to
  10. Professional Cellist
  11. and everything in between. Through these experiences, I have seen many approaches to onboarding and their varying levels of success they achieved.
  12. Now, I work for Omada Health. We’re a digital health company focused on helping and enabling people to live free of chronic disease.
  13. If you’re interested in sustainable engineering practices, pair programming, test-driven development, weekly tech talks, monthly hackdays, mentoring, volunteering and constant collaboration come talk to me afterwards.
  14. So What am I talking about? I want to extend MINASWAN to your on boarding process and team culture as a whole. Matz is nice and so our onboarding process is nice (MINASOOPIN). Sorry, Matz.
  15. By the end of this talk, I would like you to examine your current process with fresh eyes and ask yourself, could this be nicer?
  16. 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.
  17. On my first day of a job, they handed me my shiny new computer, put me in a room and said okay, get your development environment and the project set up and we’ll check back with you in a few hours. After they left, the panic set in as I frantically googled the errors I was getting during the setup process and at least once, I googled “How to set up a computer”. By the end of the day, I did get everything set up for the most part except for Elasticsearch which took me a further three weeks to get fully set up. I left work feeling dumb, defeated and questioning my decision to work there. That’s not a nice feeling to have.
  18. So what is the common current process like?
  19. Yay, it’s your first day! Let’s get you set up.
  20. Clone the project
  21. Start following the installation instructions. So far, so good.
  22. Error. Ugh.
  23. Okay, so try looking it up! Trusty old Google and Stack Overflow should save the day.
  24. Great, you got it working again. Let’s move on
  25. Let’s keep going through the instructions.
  26. Ugh, error again.
  27. Google it.
  28. Nope.
  29. Ask for help.
  30. Ugh.
  31. Ask again and they tell you the magic words: It works on my machine.
  32. Really? Ugh
  33. Pray to the Google gods and do some deep google searching.
  34. Oh thank god. You found a blog post on the 20th page of results that has a comment that mentions a similar problem that leads you to a solution.
  35. Yay, you’re all set up! Hopefully.
  36. Let’s run the tests! You followed all the instructions so this should be easy.
  37. Oh, hm. I wonder why that failed.
  38. Start going down the debugging rabbit hole.
  39. Nope, still not working.
  40. Oh, they forgot to tell you that the project requires you to have the full version of Xcode and python installed. Cool.
  41. Okay, so you fix it again.
  42. Success!
  43. Make your first commit by updating the README with all the things it was missing.
  44. Leave your first day feeling unproductive and wondering if you’ve made a mistake
  45. This didn’t seem like a very nice way to introduce someone to your company.
  46. How can we make it better? Let’s talk about automation. Being able to go from nothing to having green tests in just one or a couple of steps would be a dream come true. However, this can cause it’s own set of headaches so feel free to implement changes one at a time.
  47. Starting from the beginning, how should you have new teammates set up their development environments?
  48. I know that this isn’t an automated solution but I just want to state that there really isn’t anything wrong with following a README or Wiki IF it is kept up to date, all the information is in one place and not spread out all over the place and they’re able to go from nothing to having a green test suite by the end of following the instructions.
  49. If you want an example of a great set up guide, check out RailsBridge’s installfest guide. It works for mac, windows, and linux and provides step by step directions.
  50. Let’s start automating some things:
  51. You can easily create a bash script to get most, if not all, of your projects set up in a single step within just a couple hours.
  52. It’s really tempting to just hack things together but take the time to write some reusable functions to make it easier to maintain and update in the long run.
  53. Make your set up script the one stop shop for setting up new computers and updating current ones. You should be able to run it again and again without any ill effects. If you are using the same script for both installing and updating, your engineers are more likely to use it and keep it up to date.
  54. Take stock of all your dependencies and your dependencies’ dependencies. Don’t leave anything out. This is also a great opportunity to take stock and get rid of some extraneous things that you don’t use anymore.
  55. It’s easy to allow your teammates to make the customizations that they need to be productive. Either add the ability to add their own customization script at the end of your set up script OR
  56. add the ability to ask them what customizations they want on the fly and execute them as you go.
  57. If your whole team is using a certain version of an application, make sure that you add it to the script to use that same version. Not having the same version of GPG caused one of our new developers to have a perpetually hanging test due to a differing security screen.
  58. This is a no-brainer. Add logging to aid in debugging and to let them know what point in the process they’re at.
  59. If you want some ideas on how to set up your bash script: Github has a blog post and repo about their script structure to get their projects set up. Thoughtbot has a really great laptop setup script that I used to get started when creating the one we use at my company.
  60. Another setup option is using Vagrant.
  61. Imagine a world where getting started is as easy as saying Vagrant up
  62. That would be pretty sweet, right? Vagrant has many benefits such as:
  63. You can get vagrant and a virtual box installed and set up in just a couple hours or less
  64. You will get to develop in an environment that should match production. This can help give you confidence that if something works locally, it will work on production too.
  65. It is helpful to have everyone on the team using the exact same tools and versions. It’s such a pain when debugging to find out the problem is that one of you has a slightly different version than another.
  66. That all sounds good but Vagrant is not without it’s shortcomings.
  67. Instead of it works on my machine, you’ll get it works on my Vagrant instance. If anyone tells you it will fix that, they’re lying.
  68. Configuring your project to use Vagrant comes with a high upfront cost in time and effort. Configuring it can be confusing and tricky. If you’re not on friendly terms with your wonderful devops team, you may in for a world of hurt.
  69. I’m going to steal a quote from CHAD OSTROWSKI: Even if you figure out how to link your enormous source code directory with NFS instead of whatever default, you’re still running your app inside a resource-starved VM. Oh, your charmer will tell you, just turn up the RAM on that thing! Just turn up the CPUs! But kid, you know what’s always going to have more RAM and CPUs available than any VM that lives out its miserable life trapped inside your host machine? Do you? Your friggin’ host machine!
  70. For me personally, the benefits did not outweigh the hassle and annoyances that Vagrant caused me BUT that could totally just be from how it was set up. You may have a different experience than me so take this with a grain of salt and evaluate if this might be a good option for your team.
  71. Once you have your new teammate set up, what are some other things you can do to make their transition easier?
  72. Project specific rake tasks are a nice addition to your setup process but may not necessarily replace it.
  73. You’re a Rubyist, not a Bashist so use what you know.
  74. They can offer a quick way to set up projects that have similar dependencies. That way once you’ve gone through the installation instructions for your dev environment, context switching will be easy when you just have to run a bootstrapping rake task.
  75. BUT they’re not great for setting up dependencies. They work best if you already have a base environment set up and you use them as convenience idempotent tools to set up and update your projects.
  76. They also aren’t very flexible when it comes to user customization. I can’t be the only one who forgets to cuddle my commands and arguments when providing options to a task.
  77. Making your db setup into a singular rake task can be an easy thing to start with. Combining all the things you need to setup your database to get going in development or test mode into a single task will make your life much easier. If you need to work with production data in development, one thing I’ve seen work well is to create a trimmed subset of your production db excluding or truncating tables you don’t need to have everything working. This can cut down your setup time significantly and makes the pain of worrying about migration conflicts and data migration strategies a thing of the past.
  78. Shared dotfiles
  79. Allows new team members to learn your team’s version of best practices without being called out when they make a mistake.
  80. You can create hooks to check for styling, running linters, check for the format of your commit messages all before your new team member pushes allowing them to fix things before someone notices and embarrasses them by saying something about it. It stinks to have to be called out for having an incorrectly styled commit message by your teammates when you could have skipped over that to begin with.
  81. Developers are lazy and smart! If they’ve come up with some neat shortcuts to make things easier for themselves, share it across your team so everyone can benefit.
  82. Provides consistency between the development environments across your team. This will make onboarding, debugging and working together easier.
  83. Which makes pairing easier Not saying that you should always pair program but it is pretty fun so you should try it.
  84. I’m not sure if you’ve noticed but developers can have lots of opinions that they will defend to their dying day. So, it can be difficult to get everyone to agree on best practices or rules to implement especially as your team gets bigger.
  85. Do you have a long list of helpful aliases and commands?
  86. Make sure to add a help command to remind newbies of their various options.
  87. Remember, you don’t have to automate everything. We’re people, not machines after all. Let’s talk about some human-friendly things you can do to make your process nicer.
  88. Tell them exactly what you expect of them in the next day, week, month, 3 months. Next, explain what you plan to do to get them there.
  89. Don’t just pair them with your most senior team members. Your interns might be the folks with the most recent knowledge on how to get things set up or might have a list of the top ten things that stumped them when they first started that they’ll be happy to share.
  90. If your office is bigger than one room, make them a map. Don’t make them ask where the bathroom is.
  91. Make a list of all the tools and services you use and how to access them. New teammates will never know to ask for access to tools they don’t even know that you use.
  92. Build in time for them to ask questions. Understand that sometimes it can take a while to learn the words they’ll need to be able to ask the questions they really want.
  93. Pair them with a buddy outside their team to go get coffee or chat with. This is a great way for them to build connections to your company as a whole instead of being isolated just on your team.
  94. This will work best if you let them show off some of the skills you hired them for. E.g. don’t just give them busywork. Let them solve real problems.
  95. When you go back to your own companies, ask yourself… How can you make your onboarding nicer? How can you instill that ‘niceness’ in your culture? What can or should you automate to make it nicer for your team?
  96. Thanks! Does anyone have any questions or want to share an on boarding horror story?