David Bain - From Zero to Plone: Towards Faster Developer Onboarding
Talk by David Bain at the Plone Conference 2016 in Boston.
I am from Jamaica and am enjoying the weather here!
We are going to talk about the pain, the background, and the goal of developer onboarding.
Being approachable is a good thing. Plone can be hard to approach. For end-users it is fine, but programming it can be tough. It's more like learning to operate a helicopter than like learning to ride a bike.
Can we make getting started with Plone easier for new developers? If we do this, it is going to add a lot of value for a lot of persons. To be fair, the barrier is getting lower.
I had someone who knew how to theme Wordpress sites. She needed to learn how to theme Plone. The documentation was lacking. I started thinking about what she needed, and started creating documentation.
Funny experience: I searched for 'Plone newbie' and the top results were from my own website.
MIT has an onboarding program for new employees, all kinds of things for the first day, first week, first month. This is very different to sink-or-swim. It requires understanding to some extend, looking at your blind spots.
So what is developer onboarding? Turning an outsider into an insider. Preparing developers to be effective with the stack by equipping them with an understanding of our culture, tools, skills and processes. Are you an insider or an outsider? Even after a few years you can be hesitant to say you are an insider.
There is a gang of four people who do research on developer onboarding: Fagerholm, Sanchez Guinea, Borenstein, Münch. They researched at Facebook. Some findings:
- Mentors are less productive during mentoring.
- Mentored employees became productive much quicker than employees who were not mentored.
- Recommended: get core developers to mentor. They can communicate the model of development, give overview.
What can you do?
- provide checklists, for example steps in a readme
- simplify the setup, automate things
- have lists of ready-made blocks of code, snippets, conventions
Make the development cycle clear:
- setup development environment
- customize/code/test
- deploy to production
People don't want to work or think more than they have to. If a hello-world exercise takes three hours, you don't get motivated. Have good examples instead of descriptions. Progressive disclosure: tell new users only what they need to know, and tell more later, so they don't get overloaded in the beginning.
My newbie-friendly picks:
- Plock, for quickly getting a Plone Site up and running
- mr.bob for creating an add-on skeleton
- training.plone.org for quick-start tutorials
- Gloss as layer on top of Diazo
- Diazo snippets library
What is the least amount of vocabulary for newbies to get things done? Do they really need to know what buildout is, and Diazo, or can they be productive without it.
Getting the model wrong can cost a lot of time. Let's help newbies.
Rapido can help for newbies too, fairly maintainable, I like that.