Onboarding new coworkers with Craft CMS
This is the blogpost version of the presentation I gave at last week’s Craft CMS meetup in Ghent.
At the office, the team I’m on consists of a project manager, backend developers and frontend developers. The number of developers has grown and shrunk over the past year, from 4 to 6 back to 4 to 3 and back to 4. Each addition is someone new to the company and someone new to Craft CMS.
So we’ve had to run through the “getting started with Craft CMS” thing a bunch of time. Here’s a summary of our experiences, the resources we used and a bunch of things that aren’t specific to Craft but that can apply to any new developer joining your team.
The first very important thing to take stock of is the level of experience (and/or formal development/CS eduction) the new team member has.
- Is it their first job out of college?
- Have they been building React apps for the past 4 years?
- Do they have a background in Drupal/Expression Engine/another CMS
We also have a couple of interns every year, which mostly fall into the “fresh out of college” group, but for interns we do things a bit differently, more on that later.
Before we get to Craft CMS
The first must-have dealbreaker basic skill that we need (if not require) is knowledge of git and version control. Literally every line of code we write ends up in git, and it is how a manage and deploy any of our projects so if there is 1 prerequisite, this is it.
The first resource we turn to for specific Craft CMS is CraftQuest. Ryan is a great teacher and has a massive amount of content available on Craft.
So we start off new co-workers with his “The Craft mindset” course. This covers the Craft specific idioms like section types, assets, field, users, elements, matrix fields, etc. There’s also a demo site they can build along with the course, to get a feel for the CP and twig templating.
Give them something real to build
Having to come up with and idea or a subject to build a site around isn’t always easy, and it probably wouldn’t be very representative of the types of projects that the team is build.
So the next “task” we tend to give a new team member is is to build (part of) a project that the team recently completed. Something small and simple, but a real project. That means it has clear requirements, it was wireframes and a design and someone on the has actually built it already. We start them off with a fresh Craft install with nothing in it and give them a week (or 2, depending on the scope) to try and build the project.
This gives a way to feel out a couple of things, but most importantly: are they ok with asking for help when they inevitably get stuck on something.
Another important note here is that whatever they end up building is ok. This is not a test and there are no wrong answers. We’ll do code review every other day, but more the steer them in the right direction to the explain things than to point out errors.
Up next is building a project or a bigger feature along side another team-member. Their code won’t be used but it’s a good exercise to go through the entire project flow: project kickoff, wireframes, requirements, testing, client training…
We’ll repeat these last 2 steps as often as is needed. And they could take anywhere from 2 weeks to 3 months, depending and the person and their experience.
Next is of course a real client project. With that comes doing estimates, building it on time and on budget, launching it, the works.
Maintenance & support
Aside from building new projects, we also like to a roll new hires into doing support for existing projects. These could be recent projects in Craft, older projects in Craft 2 or even Expression Engine sites, custom PHP stuff, email templates, ….
Working on these projects brings along a whole new set of constraints and requirements and being able to adapt to this is very useful.
After the new hire is integrated into to the team and in the project rotation, it can be easy to quickly forget how new they still are, even after 4 or 6 months on the job. To keep tabs with how things are going we like to do 1-on-1 meetings:
- With the project manager / team lead. Honestly, everyone should be doing these, not just new people.
- With a fellow team-member, rotating which one and every 2 weeks. This is a time where they can ask questions about projects, issues, something they didn’t understand very well, something they’d like the know more about, etc… These can definitely tail off when both parties feel they aren’t needed anymore.
All this depends on the person you have joining your team. This could take 2 weeks and they could be working on an actual client project in week 3 on the job. But it could just as well take 2 months, depending on their level of experience, with Craft, web development work in general and overal work experience.
Thoughts, remarks or want to share your own experience with this? Find me on twitter