Onboarding The Ruby Way

@LMcNish14
Onboarding
The Ruby Way
Onboarding The Ruby Way
Onboarding The Ruby Way
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!
1 of 96

Recommended

Role Play - Induction Process for new employees by
Role Play - Induction Process for new employeesRole Play - Induction Process for new employees
Role Play - Induction Process for new employeesjessrblake
8.1K views17 slides
Template for new employee induction program - Suitable for all kinds of organ... by
Template for new employee induction program - Suitable for all kinds of organ...Template for new employee induction program - Suitable for all kinds of organ...
Template for new employee induction program - Suitable for all kinds of organ...Anand Mehta
26K views21 slides
Best practice onboarding - trends and examples in managing talent acquisition by
Best practice onboarding - trends and examples in managing talent acquisitionBest practice onboarding - trends and examples in managing talent acquisition
Best practice onboarding - trends and examples in managing talent acquisitionNoLimits
49.7K views43 slides
Employee Orientation Ppt Final by
Employee Orientation Ppt FinalEmployee Orientation Ppt Final
Employee Orientation Ppt FinalShruthi Choudary
200.6K views38 slides
ChatGPT and the Future of Work - Clark Boyd by
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
27.1K views69 slides
Getting into the tech field. what next by
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
6.4K views22 slides

More Related Content

Recently uploaded

Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
210 views15 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
156 views32 slides
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
153 views59 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
90 views46 slides
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
158 views20 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
62 views27 slides

Recently uploaded(20)

Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue210 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson156 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash153 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty62 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu365 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue98 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue103 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue88 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue197 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker50 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue93 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue79 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue117 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li80 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue176 views

Featured

Introduction to Data Science by
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.5K views51 slides
Time Management & Productivity - Best Practices by
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
169.8K views42 slides
The six step guide to practical project management by
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
36.7K views27 slides
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by
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
12.7K views21 slides
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by
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
55.5K views138 slides
12 Ways to Increase Your Influence at Work by
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
401.7K views64 slides

Featured(20)

Time Management & Productivity - Best Practices by Vit Horky
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky169.8K views
The six step guide to practical project management by MindGenius
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius36.7K views
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by RachelPearson36
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...
RachelPearson3612.7K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by Applitools
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...
Applitools55.5K views
12 Ways to Increase Your Influence at Work by GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by DevGAMM Conference
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 Conference3.6K views
Barbie - Brand Strategy Presentation by Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well by Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.3K views
Introduction to C Programming Language by Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... by Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation by Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future by SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -... by AccuraCast
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast3.4K views
Exploring ChatGPT for Effective Teaching and Learning.pptx by Stan Skrabut, Ed.D.
Exploring ChatGPT for Effective Teaching and Learning.pptxExploring ChatGPT for Effective Teaching and Learning.pptx
Exploring ChatGPT for Effective Teaching and Learning.pptx
Stan Skrabut, Ed.D.57.7K views
How to train your robot (with Deep Reinforcement Learning) by Lucas García, PhD
How to train your robot (with Deep Reinforcement Learning)How to train your robot (with Deep Reinforcement Learning)
How to train your robot (with Deep Reinforcement Learning)
Lucas García, PhD42.5K views

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?