Apprenticeship at 8th Light

in How we learn 20 minutes read

Officially it was 2006 that 8th Light says they had started the apprenticeship program. From reading a bit around and searching for related articles online, it seems that there had been ocurrences of it before. Jake Scruggs writes in 2009 about his apprenticeship that he had started 5 years before in 2004 at Object Mentor, kind of the predecessor of 8th Light. But that’s lot to cover, something for another history post :).

Disclaimer

This post is describing the apprenticeship program of 8th Light as seen from the outside. I have not been in it. My colleague Tobias Pflug and me we visited 8th Light in London last week to learn from them. So this post is just a summary of how I understand that 8th Light runs their apprenticeship program, it might contain errors. If you find any, please point them out to us.

Apprenticeship - What is all this about?

Their website states that: “apprenticeships are the path to employment at 8th Light”. This is not about the recruiting process and how to find talent, the “apprenticeship program is designed to prepare all software crafters for the challenges they will face in their day-to-day work”. In other words it might be called a trainee program or an on-boarding program. But those terms are taken and actually also not fitting so well.

The word “apprenticeship” and the program as such has its root in the craftsmanship movement. As per wikipedia in 1992 Jack W. Reeves wrote “software development is more a craft than an engineering discipline”. The book “Pragmatic Programmer” is know to first relate software development to stages like in medieval guild traditions of Europe. And the first of those stages is the apprenticeship followed by journeyman and mastery.

The craftsmanship or workmanship “is a human attribute relating to knowledge and skill at performing a task” (see wikipedia).

Jake’s post shows very well that anyone can do such an apprenticeship. The people guiding the apprentices just have to be good in guiding. He writes: “Most people, when I told them I intended to become a programmer without going to college, thought I was nuts but were nice enough to nod and smile”. Jake (the apprentice) was sure about doing an apprenticeship. So the skill to find the people who really want is what matters. And 8th Light has proven too that this works, we have seen it. I would say the majority of 8th Lighters don’t have a background in computers, and even less in computer science. And the company grows by doing consultant work, running IT projects, including lots of programming, for various companies.

The application, part 1, online

The first contact between an employer and a prospective employee is mostly the employer reads a CV, meets someone at an event, gets a referral or other opportunity that the two get to know about each other. How the process of pre-selecting applicants for setting up a first online session works at 8th Light, I don’t know. What I understood very well is that those people who find 8th Light deliberately and think this can be the right company for me are those that know about craftsmanship, an apprenticeship program and surrounding topics.

One word on wording: lately “craftsmanship” has received quite some critiques for it’s non-inclusive name. Therefore I will try to be careful in wording, but am open to add improvements. There is no intention of offending anyone here.

The other groups of applicants are those that don’t even start the process. Why? As Jake had already done in 2004, the first task you get assigned is writing Tic Tac Toe. This task is assigned to you before you meet face to face. You work on it and get back to 8th Light with a result that you think is good enough. That is the step where some people loose interest. My guess would be they either don’t know what the apprenticeship will look like or they are looking for jobs (or application processes) that are not so “demanding”.

Reading about the first steps in the application process in here sums it all up, and it sumarizes quite well who is the audience:

We enjoy working with people who are empathetic, who are passionate about teaching and learning, and who value the work they do. If this approach to software development resonates with you, we’d love to talk.

The actual online process is a two-step process. First the applicant gets to know someone from 8th Light and gets a task to solve. Normally its Tic Tac Toe. The programming language is not fix. Later the applicant sends in the code and waits for feedback. There will be a code review process going on internally. I assume, if the code is not devastating a second call will be set up where the code is being discussed. The important thing here is to find out how well an applicant takes feedback. 8th Light wants to find out the ability to learn and to incorporate feedback into the applicant’s work. This will trigger a second round of programming for the applicant, where they apply the learnings and sends back the code again. Jim says “We always provide feedback, we figure if you’re going to spend some number of hours solving a problem, we need to reciprocate and provide feedback, even if the process stops at that point (it usually doesn’t)”. If all went well the online part is done and the following step is going to be a face to face invitation. There are some hurdles and many options for both sides to drop out of the process. I assume the people who arrive in the office for the face to face sessions will have invested a considerable amount of time and know why they are doing it all.

And here is the important part, in my opinion. In order to have the applicants know the “why” and invest (so much), 8th Light must have been doing a good job in selling that they can and will deliver the “why”. They must be recognised in the ways that they attract the people with the right mindset. Part of how we learned about them was that they are always active at community events. They talk about their processes, the apprenticeship program and our craft. They are for one promoting these ideas of working in software development for their own good as well as for improving the industry as such. And they have well-known and outstanding people who work for them and do this promotion. It’s the crafters who talk about it, not a marketing department or alike. They work hard to be authentic.

The application, part 2, in person

The applicants who get invited into the office pair with the 8th Lighters all day. They pair with two different people. One in the morning, then its lunch time and the socialising part takes place. Some say this is the most important part. And in the afternoon pairing continues with a different pair. As far as I understood that is the entire application process. After this all the people who had been involved sit together and decide if that person gets invited. And if so, the question is the “position” for which the applicant fits.

Overview

There are two types of apprenticeships at 8th Light 1) student apprentices or 2) resident apprentices. Once graduated from the resident apprenticeship the title is “crafter”. It used to be craftsman or craftswoman, this got simplified to “crafter” to be more inclusive. Crafters don’t get hired as such, they graduate to become crafters. No matter how much experience one has. Everyone starts out as an apprentice.

Types of Apprenticeship

Above I mentioned two types of apprentices. These aim for different skill levels. My impression of those two programs is that they exist to broaden the chances to become a developer to even more people, basically anyone interested. No matter how much experience one has. Might it be someone who has never programmed, has just run through some kind of (programming) bootcamp or an experienced developer. 8th Light is open to everyone and will invest in people to become professional developers.

The student apprenticeship is aimed at those who have never programmed, have little experience or those who are not sure if becoming a developer is the right thing for them. That’s why the student apprenticeship is run less strict. The people don’t get employed (also not payed) and they invest the time they think they want to dedicate to it. The 8th Lighters are still open to spend their time to guide, mentor and teach the students. The student apprenticeships are not necessarily a path to employment. More of an internship, or a free code school. It has happened that student apprentices drop out more often. But I heard the people in the office in London talk about at least a handful that have become resident apprentices. Every student apprentices is asked to write a blog post of at least a hundred words, daily. This requires discipline. It also trains the ability to explain something, which one does most confidently when one understands the topic. And I think it also makes a student apprentice ask oneself two things 1) “Do I want to continuously learn?” and 2) “Can I pick up new topics and reach a good level of understanding, on my own?”. I think in order to go to the “next level”, the resident apprenticeship, every student apprentice must answer the former two questions with a strong “yes”.

The other is the resident apprenticeship.

Resident Apprenticeship

The resident apprentice is a full-time employee, with a reduced salary. The duration of this apprenticeship might vary, depending on the prior knowledge of the apprentice. I heard about durations of 3 to 12 months. Apprentices do not work on client projects. The successful apprenticeship ends with a graduation and the person becomes a crafter.

8th Light doesn’t get tired of stating that they are convinced that investing in people is the right strategy. Their CEO Paul states in a blog post:

We will continue to promote and refine our apprenticeship program, which is a paid learning opportunity open to people without traditional experience but who aspire to be software professionals.

You get paid and you learn full-time. Their careers site underlines that this is an essential part of the 8th Light community.

While they aren’t a billable member of a client project, they’re still part of the 8th Light team and we believe they should be paid in that role.

This is not only an investment and encouragement for the people they hire but also a long-term investment in the company. The people that are treated like this are more likely to be loyal to the company, even though they are not billable yet.

Safe environment

One fundamental thing for making this an encouraging, collaborative and positive experience for everyone is to provide a safe environment. There is much more than the things written here that make a safe environment, but I would like to pick out some things.

Makis, a crafter wrote on his blog that the London office started something called Zagaku, where “every morning a crafter or an apprentice will teach a topic for 20-30 minutes to the apprentices”. And this is not a one-sided learning but “learning happens on both ends (crafter & apprentices)” and by doing that internally a safe environment is created. People know each other, have a good level of communication skills and respect each other. This encourages everyone, not only the apprentices to speak up, to ask questions, to learn and to teach.

I witnessed this being the case. The office was a very collaborative environment. People were patient and calm. Many had been collaborating, for example by pairing.

I think that also the hardware setup on all desks is supporting this. Because every desk was equipped with a big monitor and two keyboards that were ready to use. That means every desk was inviting the people to pair with each other. And there had been many apprentice+crafter pairs in the office. This makes pairing very easy and look like the normal thing.

Inclusiveness

I think no further explaining is needed that a safe environment is a basic thing (to have in every office). Additionally we saw that 8th Light is doing a great job in being more inclusive. The first day we had been in the office Tobias and me had been the only men in the room. When we walk on the street we expect to be surrounded by all kinds of people. In a tech company this is not the case yet, and it was feeling good to work with woman and see that is reality in this office, just as much as on the street. 8th Light has way more women employed than any average tech company, see their team page. Good job! I guess if 8th Lighters look into other IT companies they must feel quite strange when they realise the absence of woman and see just less diverse groups of people work there.

I think that the student apprenticeship is a core thing. And is one factor for the successful inclusivity as 8th Light practises it. The student apprenticeship allows and also encourages anyone (not only men) to try out and learn if becoming a developer can be a fit as their future profession. At some point in the discussions the impostor syndrome came up a couple of times. I believe that either of the apprenticeship programs, but especially the student apprenticeship do a great job of preventing the impostor syndrome to kick in. This means that the openness of the apprenticeship simply makes everybody welcome. No matter of their prior knowledge, experience and skill level. It lowers if not even removes the barrier to apply at a company that looks that inclusive.

The Apprenticeship

The resident apprentice focuses on “programming, client services, collaboration, leadership, and communication skills” as their career site states. Once graduated a crafter has obtained the skills to “learn to lead by example, provide and receive honest feedback, and answer the questions a client doesn’t ask”.

The apprenticeship is run like a real project, like any other client project at 8th Light. That is the first learning: discipline. By running the apprenticeship like a project an apprentice lives and breathes all parts of a project iteration from the beginning and won’t be surprised when working with customers later.

At the beginning the mentor creates a curriculum. (At some point I remember the ThoughtWorks learning path was mentioned too.) The curriculum might be a simple spread sheet that mentor and apprentice have access too. Mentor - that is the person that guides the apprentice through their apprenticeship, more about that later. The curriculum is the high-level plan for the apprenticeship and every week (that’s how long iteration take) more detailed tasks that are derived from the curriculum are put into a Kanban-like board. Theses tasks get estimated by the apprentice and depending on the acceptable load the next iteration’s “to-do” column is being filled. The board that we saw being used at 8th Light was a simple four column board with the (hidden) backlog column, ready, working, and completed.

At the beginning of an apprenticeship, at the end and also while it is running the apprentices are asked to do a self-assessment on all the topics that the apprenticeship will cover.

The Curriculum

As described above the curriculum contains all things about “programming, client services, collaboration, leadership, and communication skills”. The curriculum itself is way more detailed than this and contains the topics in detail, (chapters of) books to read, blog posts, tasks to solve and so on.

One thing I saw that many at 8th Light have as part of their apprenticeship is to learn the editor vi and the terminal manager tmux. We saw also mamny other tools being used. Another topic that appears in the curriculum is Test Driven Development. I remember Mollie saying that the “disciplined TDD” was one of the most important things she had learned in her apprenticeship. On her blog Katerina writes about about testing on the third day of her apprenticeship. This makes obvious that testing is not added into the game at some later stage to validate something that was implemented. It is an essential part, a building block of an apprenticeship. I heard very often that the book TDD by Example was mentioned and is part of an apprenticeship.

Another part of the curriculum is to learn the SOLID principles, open-close principle, the four rules of simple design, refactoring, coupling and cohesion (using the two chapters of the book “Structured Design”) and doing lots of Katas. The most famous kata everyone in 8th Light does is Tic Tac Toe. But besides that I saw the bowling kata, roman numerals and gilded rose. So there is a lot of practicing going on.

We also talked to mentors that said they are using other projects like a contacts app, song list or building an HTTP server from scratch as projects for the apprentices. Also internal tools are often built by apprentices. 8th Light has a slack bot for collecting all food orders from all colleagues, the kanban board app and others have been built by apprentices.

Part of the curriculum is also to learn three programming languages with each a different approach. The one functional: Clojure (lately also Elixir), a statically typed one: Java (or C#) and a dynamic language: Ruby. In each language the apprentices normally write Tic Tac Toe first. Though this seems not to be executed that strictly anymore. The languages might differ and are chosen also depending on the apprentice’s experience.

Giving presentations, running retrospectives and things like non-violent communication are also part of 8th Light’s curriculum. Normally on Fridays there is time to give presentations and for those who need practicing this is a safe place to keep practicing and collect feedback and try again. Why Friday? Well, 8th Light is a consulting company and they normally meet in the office on Fridays, that’s the one day per week they are not in the client’s location.

Before I mentioned that apprentices have to write blog posts daily. This is also a great tool for the mentor to give questions back to the apprentice themselves. Instead of answering questions the answer a mentor gives might be “why don’t you write a blog post about it?” or “why don’t you give a presentation on it?”. This requires the apprentice to first learn the topic and second train the writing or presentation skills. And giving a presentation on a topic that one is not familiar with will soon end as a disaster, same with a blog post. Self-learning is essential. Teaching (smaller) topics to other apprentices is another tool for learning and practice teaching.

Other things on the curriculum are: Domain Driven Design, DevOps, Continuous Deployment, Continuous Integration, git, doing koans, REPLs (MySQL, Ruby, nodejs, …), bash, compiling a programming language, JavaScript, mikado method and using tools like github, issue trackers, etc..

Another thing I heard is a thing at 8th Light, is juggling. Everyone in the company learns juggling with at least 3 balls. This might seem strange but one thing it surely does to most is get them out of their comfort zone. It also gets you away from your desktop and learn something that simply requires practicing. And so does writing good code.

Mentors

Every apprentice has a mentor and a co-mentor. The co-mentor supports the mentor and is also there to remove potential biases. I might refer to both just by using “mentor”, since there seems not to be a big differentiation in what a mentor and co-mentor do. The mentor is not a teacher who stands beside their apprentice all the time, they are more like guides that help the apprentice to steer their learnings. I heard from apprentices that talk about their mentors as one of the most important people during their apprenticeship. Mentoring needs some experience too, the mentor Daniel Irvine writes in his blog “go too fast and they won’t take everything in; go too slow and they’ll be bored”. Mentors must not be too specific, leave room for learning and find the right dose of challenge. “Mentors are training their future team members, so they are personally invested in the success of each apprentice” is written on the 8th Light apprenticeship page.

The time a mentor invests is about half a day a week. There are mentors who take more time to work with their apprentices, but there is no fix rule.

Regular Meetings

As mentioned above there are regular meetings between apprentice, mentor and co-mentor. The one and most important meeting is the IPM, the iteration planning meeting. It takes place once a week for about one hour. During this meeting the apprentice reports the progress of the last iteration and asks questions that might come up. The mentors will help answering those questions and might adjust the plan for the upcoming iterations. Later the next iteration is planned. The tasks are moved from the backlog into the to-do column and the apprentice estimates them. The mentors support doing this as well as possible.

All the mentors meet once a month for the MMM, the monthly mentor meeting. In this meeting the mentors exchange ideas on the mentoring and also on the apprentices. Especially when in doubt about an apprentice’s progress this meeting serves to support each other.

The review board is another meeting where a selected group of people comes together for reviewing a certain apprentice. This board meets at the end of the apprenticeship to evaluate the apprentice. If there is a veto option by this board or not, I don’t know. The important thing I think is that this board comes together to evaluate a certain apprentice. If this takes place more often I don’t remember.
Most apprentices will have at least one mini review board during their apprenticeship where the board will provide feedback on a larger problem that the apprentice has solved.

Because the apprentices have an alike experiences they meet for an apprentice learning group. This group is apprentices only, to learn from each other, exchange ideas and just chat. Apprentices see the things different than their mentors and other crafters, they need the room for their own exchange.

Graduation

Before graduating to become a crafter every apprentice has to go for a set of challenges for two weeks. The review board assesses the challenges as well as the entirety of the apprenticeship to give the recommendation to hire or not. The apprentice also joins some other crafter(s) to follow them around and do a pairing tour with them. The intent is for the apprentice to pair for at least one day with each of the 8 members of their review board. Even though this is before the graduation, normally the mentors and the review board will have figured out until this time if the apprentice will be able to graduate. These last challenges are just to kind of formally finish the apprenticeship and prove all skills in a more compact task.

The Goals

The main goal is to grow yourself. This is done by allowing a strong and fast feedback cycle on all levels. Every apprentice learns to remove their ego from the process, this might also be a big learning for some. Deliberate and continuous learning are also very important goals. This is reality there, we saw crafters doing Stanford courses online after they were done with the client work, because they wanted to.

Further readings

Software crafters at 8th Light all start out in an apprenticeship at the firm, which its leaders say creates a consistent culture of learning. Will it work for other companies?

talenteconomy.io wrote.

I spent a little over three months at 8th Light this summer for a student apprenticeship, and man did I love it. I spent most of the summer learning Ruby & Rpsec under the guidance of my mentor, an 8th Light Craftsman.

Laura writes, who went through the apprenticeship in 2014.

Closing Words

I best end this long article with quotes from Laura, the former apprentice.

Why can’t we have social media apprentices, sales apprentices, data science apprentices, and finance apprentices? It really only takes two people… a mentor and an apprentice.

you know people like where they work when they’re wearing the company logo on their chest.