00:00:12.080
Hi, my name is Bree Thomas, and I'm going to go ahead and get started. I am really happy to be here today. I haven't been to Atlanta in a very long time.
00:00:18.240
I haven't been to Atlanta since I was a kid when my parents sent me away for a summer to work on my grandfather's chicken farm. So standing here on this stage right now with all of you is a lot better than the chicken farm. A lot better!
00:00:36.079
A little bit about my professional background: I am a recovering marketer. I was in marketing and branding for ten years, and I've been clean for almost two years. I'm very proud of that!
00:00:45.680
In making that career switch, I attended a six-month intensive developer training program, and I have been formally employed as a developer for just over a year. I work at a company called Mode, a product consultancy and development firm based in Denver. I am the only one on the team with less than thirteen years of experience, and I'm also the only woman on the team.
00:01:09.680
While that may sound daunting some days, they are an extremely supportive team, and I count myself extraordinarily lucky to be learning from masters of the craft. I also run the Denver chapter for Girl Develop It, helping to bring affordable, judgment-free professional software education to women, which I really enjoy.
00:01:45.680
I swear this is the last logo slide; some habits die hard! I've been in exactly two apprenticeships since I graduated from the training program, and as a newbie, the subject of developer training and growth is very near and dear to my heart.
00:02:01.680
But I find apprenticeships in our industry to be a little on the scary side, quite frankly. Not just for the apprentice! And that's what I want to talk about today: specifically, what is so scary about developer apprenticeships, what's missing from them, and at the end of the day, what's important? What should we value in our apprentices and in our apprenticeship programs?
00:02:24.720
My hope is that you'll leave here today with some fresh perspectives and a few ideas. But first, I want to take it back a little bit and talk about the inspiration for this talk because, also near and dear to my heart, are '80s movies. The title, "Burn Rubber Does Not Mean Warp Speed," was inspired by an '80s cult classic, The Lost Boys.
00:02:49.040
So, I just wanted to take one minute of your time to share that relevant scene with all of you.
00:03:09.599
In the scene, a kid named Sam is trying to save his brother and friends from a gang of vampires. As nightfall approaches, the Frog brothers are screaming at him to hurry up, and he just saw a pack of vampires in real life. In the chaos, he nearly drives them all off a cliff, and in that moment, he screams, "Burn rubber does not mean warp speed!" It's like saying, "Hey dudes, I’m going to get us out of here, but warp speed is not necessarily my tempo and is not in the best interest of saving all our butts right now!
00:03:56.960
I like to apply this cheeky movie line as a mantra and metaphor; working hard, being passionate, and being committed (or being scared shitless, for that matter) do not necessarily add up to an ability to move at a predetermined speed. That speed is not necessarily the prime indicator of progress, success, or in extreme cases, survival.
00:05:04.560
Yet, while I was learning to code in my developer training program, and also through both of my apprenticeships, I found myself supremely focused on how fast I was moving—was I coding fast enough? Was I learning fast enough? Oh my gosh, what happens if I don't know all the things by the deadline? What happens if I don’t know all the things; does that mean I'm not cut out to be a developer?
00:05:55.680
It took about ten months post-graduation from my developer training program to chill out on some of that anxiety. And mind you, this is not because I have become a coding sensei, but because I found comfort in the value I was able to bring outside of my hard coding skills. I have a background in marketing, law, and client management, which enabled me to contribute effectively in various areas, both inside and outside of the code.
00:06:45.520
Additionally, I found peace with myself in the rate at which I was learning and the things I needed to do as an individual to foster that learning. It was a tough road getting to that point, often fraught with doubt and sometimes a crippling fear to even write more code or speak up about my thoughts and feelings.
00:07:07.759
This journey of self-realization over the last year made me want to reflect and talk to my teammates and some other apprentices about how developer apprenticeships are perceived, how they’re structured, and how they’re managed.
00:07:30.080
Whether we as an industry might be missing some key opportunities to improve apprenticeships, so to get that conversation started, I did a little bit of research. An apprenticeship is the system of training a new generation of practitioners of a trade or profession, typically with an on-the-job training approach usually mixed with some kind of formal study.
00:08:30.000
Traditionally, apprenticeships would also lead to the procurement of a license in a regulated profession. It's a system by which many apprentices launch their careers as most of the training is done while working for an employer who invests in the apprentice in exchange for continued labor for an agreed-upon time after the apprentice has achieved competencies defined in the program.
00:09:07.680
The system was first developed in the late Middle Ages and supervised by craft guilds during that time. A typical apprentice spent about seven years in this phase, and they were compensated well enough that they could live reasonably, but their compensation was not extravagant. Following the apprenticeship phase, one would typically advance to the journeyman phase.
00:09:31.440
A journeyman is someone who has completed an apprenticeship and is fully educated in their trade or craft, but not yet a master. Back then, journeymen often had to accomplish a working trip that lasted three years or life, traveling and gaining experience while working with different masters.
00:10:07.440
The final phase of becoming a master was never guaranteed. A journeyman had to submit a masterwork to a guild for evaluation and be admitted into the guild as a master craftsman or tradesman. In the European guild system, only masters and journeymen could be members of the guild.
00:10:44.960
An aspiring master had to pass through the career chain from apprentice to journeyman before they could be elected to become a master craftsman. This process included producing a sum of money and a masterpiece in order to gain membership in the guild. If the masterpiece was not accepted, they might remain a journeyman for the rest of their lives. I chose this picture because I believe that you know you've arrived at being a master when you can drink and smoke while executing your craft.
00:11:33.520
This delving into the history of apprenticeships got me thinking about modern apprenticeships and the length of their training periods. The current Wiki definition cites that modern apprenticeships run somewhere between three to six years on average. We might be familiar with the apprenticeship periods for different professions.
00:12:10.880
For example, how long is the apprenticeship for doctors? (Just shout it out.) Seven years? Three to eight years, depending on their specialization. How about electricians? Four years. Traditional engineers? Three to five years. Tattoo artists? One to five years.
00:12:49.920
The key takeaway for me as I read about apprenticeships is that they take years; a lot of years, and they're methodical. There are specific stages, levels, hour requirements, and an application for master status and licensing. There's a commitment on both sides to that time and process, including committed time even after the formal apprenticeship is complete.
00:13:13.120
If we circle back to developer apprenticeships and what is so scary about them... I think it starts with speed. I believe the apprenticeships in our industry are scary because speed originates in many modern developer training programs, growing at a prolific rate.
00:13:46.560
Everywhere you look today, there are more books, online programs, schools, and bootcamps claiming to turn you into a developer fast — to the tune of 24 hours, ten weeks, three months, or six months. Also frightening is that, unlike doctors, engineers, and electricians, there's no licensing body or standards for the quality of the curriculum or the quality of student these programs produce.
00:14:03.680
Let’s consider formal developer apprenticeships: Post-grad, it's often three to six months, and if you're lucky, you might find one that lasts a year. The vast majority run at three to six months, with very few stretching to a year or longer. Even more terrifying is the limited number of apprenticeships available. Many employers hire graduates as fully qualified developers right out of these programs.
00:14:53.680
What's concerning to me about the speed in this context is that it promotes some dangerous misconceptions about our craft. It gives the false impression that learning to code is fast, and fast is easy—and because it's fast and easy, it's clearly a finite endeavor. Just something you check off the list and go start collecting a paycheck.
00:15:12.320
But as developers, we know that what we do is not trivial. The learning is hard and infinite. Mastery takes years — to the tune of ten years at least. Devoting your life to building great software requires passionate commitment, patience, and conviction.
00:15:52.080
Another scary aspect of developer apprenticeships involves assumptions. David Brin, a scientist and science fiction author, said that throughout history, the worst mistake made by individuals on both sides of every new encounter has been the unfortunate habit of making assumptions. It often proved fatal. I might have a slight flair for the dramatic because I don't think any of the assumptions I’m about to share have been fatal, but they are important and often overlooked.
00:16:58.240
Some assumptions made by employers include: assuming that apprentices will be vocal and open, which is not always true; and that by virtue of being senior developers, they're well equipped to teach junior developers. However, junior apprentices might assume that upon graduating from a modern training program, they are immediately employable, handsomely compensated, and not anything like an apprentice.
00:17:47.080
Additionally, there's the assumption that advancing through levels of developer status—apprentice to junior, and from junior to senior—is well-defined and common throughout the industry, which is not the case. Left untreated, these assumptions can be dangerous, resulting in a pit that one must dig out of.
00:18:45.440
What are some potential consequences in this pit? A young developer making the wrong job choice due to the promise of a higher title or salary, only to end up in an environment set up for failure. Or employer frustration because progress isn't meeting expectations, compounded by a lack of insight into why that might be.
00:19:14.120
There can also be confusion and anxiety about where and how an apprentice fits into the larger team. Another scary thing is measurement. While measurement itself isn't scary, a one-size-fits-all approach to measuring apprentices can be. Creating a standardized plan with specific milestones and skill set bars on a strict timeline, then expecting each apprentice to succeed precisely as it was written, is likely to lead to disappointment.
00:20:32.080
Each apprentice is different and may have their own learning style, strengths, and weaknesses. Therefore, we should be wary of an inflexible one-size-fits-all approach in an apprenticeship program. Hard coding skills are important, but if they're the only criteria by which we evaluate our apprentices, we're failing to consider other significant factors.
00:21:03.680
For example, can they integrate effectively with our team? Do we like them? Do they like us? Are they creative thinkers? Can we relate to them personally? Are they happy when they come into work every day? And how would we even know?
00:21:47.520
Additionally, we should consider the other professional skills that apprentices can offer from their respective backgrounds. Take me, for instance; I bring marketing, client management, and legal expertise, which add value to the team outside of the code base. This has proven critical in our business relationships.
00:22:35.360
When considering the value of an apprentice, it's essential to think beyond hard coding skills. Another scary aspect relating to measurement in developer apprenticeships is follow-through. There are many instances where we set out to measure progress but don't follow through. It's often a case of the best-laid plans going awry.
00:23:34.080
At the start of apprenticeships, there's lots of energy around check-ins and scheduled mentorship, along with individual projects, reading time, and opportunities to learn. Then work happens. The apprentice may begin producing, and both employer and apprentice lose sight of the apprenticeship process.
00:24:36.720
Now they have someone delivering work, and the focus shifts because everyone is so busy. What's the point? An apprenticeship is just on-the-job training, right? But now both employer and apprentice have lost a platform to evaluate progress, contributions, and growth in a meaningful way.
00:25:12.000
So, what's scary about developer apprenticeships? Sending apprentices out the door like fast food, failing to address assumptions on both sides, and neglecting to measure the right things at the right time.
00:25:37.760
What's missing from apprenticeships in our industry is the mindset of learning a profession versus merely learning a skill. Many developer training programs can give people skills, but becoming a successful developer is about learning the profession, which involves more than just bulking up coding skills quickly.
00:26:53.440
It's about taking the time to mentor apprentices around interpersonal skills, cross-functional team dynamics, and understanding the business of building software. We also lack the time to just be apprentices. The pressures of billability are real, whether you're at a product company or a consultancy.
00:28:08.840
Yet, so many apprenticeships are not structured for any long-term commitment. Just like structuring a relocation package, we should seek mutually beneficial long-term commitments between the parties involved.
00:29:19.840
This means promising something longer than six months, allowing both sides to focus on what's vital in the program while providing predictability regarding the employer's return on investment.
00:29:44.000
Another critical missing ingredient is investing in mentors as teachers. Simply having a team of seniors does not mean we have a team of teachers. We need to ensure that our team members have the tools to mentor effectively.
00:30:16.640
Moreover, the ability to structure a curriculum that fits individual needs and achieves requirements is essential. Teaching as a formal skill set is missing from some apprenticeships, so we must invest in our mentors as teachers.
00:30:57.440
What's missing from apprenticeships includes the mindset that programming is more than just writing code, allocating time to be an apprentice, and investing in mentors as formal teachers.
00:31:24.800
What’s important in developer apprenticeships is an agile approach. Similar to how we approach software development, we should employ an agile methodology in our apprenticeship programs.
00:32:13.679
Start with key stakeholders: mentors and apprentices. Discuss the goals and measures of success, understand the risks, and align on all the significant aspects of the program.
00:33:04.560
A mutual and clear commitment to the goals is critical for success, along with diligence in the process. Regularly hold planning meetings to talk about successes and what fell short. This will allow us to adjust our mentoring and expectations as we gain insights into each apprentice.
00:33:47.920
Use retrospectives effectively to be honest about mentor and mentee pairings, and address expectations and issues to protect the apprentice's goals, the employer's goals, and the program's goals.
00:34:16.799
The relationship must be a two-way street. While apprentices should exhibit self-directed study and immerse themselves in learning, the apprenticeship's success cannot solely rest on the apprentice. Apprentices need to understand their significance to the business.
00:34:49.920
When an apprentice feels valued, it positively influences their performance. Sharing an employer's commitment to their development is crucial, equating the learning investment with transitioning into a billable developer role.
00:35:23.839
Measuring the whole apprentice is essential for helping them gain confidence as they develop their coding skills. Personally, I found that being able to contribute outside of coding significantly eased my anxiety around code skills.
00:35:55.680
Remember to consider everything that adds value to an apprentice: coding skills, creative problem-solving, and personality. Lastly, time is an important factor. Burn rubber does not mean warp speed.
00:36:35.840
As I worked on this talk, I asked developers and apprentices if they believed it was possible to reach senior developer status within a year. All of them said an emphatic no. They wouldn't even consider someone a senior until two or three years in, with many stating four to five years or more.
00:37:12.720
Why? Because there is no substitute for experience. If you've read Malcolm Gladwell’s Outliers, you know that all the greatest athletes and musicians have one thing in common: deliberate practice and the sufficient time to master their craft.
00:37:56.080
Consider the medieval apprenticeships lasting seven years, followed by three years as a journeyman before they could even apply to become a master. Modern apprenticeships in coding are often very short, sometimes less than a year.
00:38:32.240
Why is the length of apprenticeship so crucial? As an apprentice, why would I prefer a longer apprenticeship over a short one? Getting the bump in title usually means a bump in salary... so why waste years? Conversely, for employers, why invest in potential years over months?
00:39:20.560
It’s because learning to play the notes on an instrument is not the same as being a musician. Learning the basics is just the first hurdle. Real mastery requires time spent applying those skills and integrating the intangible elements of creativity and communication.
00:40:27.120
The relationship between employer and apprentice should focus on building a better developer—one who can autonomously contribute and seamlessly integrate into any team. This developer should extend beyond mere task execution to exhibit thought leadership and creative problem-solving.
00:41:12.560
A well-rounded developer apprentice is a valuable asset, someone capable of writing their ticket almost anywhere. An employer who fosters this type of apprenticeship is well-positioned to retain that talent for the long term, which is definitely worth the investment.
00:41:53.680
To summarize what I've discussed: what's scary, missing, and important in developer apprenticeships. I hope that some of this provides fresh perspectives, but I also promised you ideas.
00:42:27.360
Here are a few thought starters that I brainstormed with my team. If any strike you as too radical, I hope they'll at least plant a seed for creating or enhancing your apprenticeship programs.
00:43:31.520
First, structure your apprenticeships for two years. Pay the apprentices well, but you don’t have to be excessive. If you want to provide a pay increase after six months or a year, great, but don't change their title. Keep them classified as apprentices for two years, with an option for them to reapply for an extended apprenticeship after completion, or if you feel they're ready, let them start working off their owed labor.
00:44:41.679
Additionally, treating your apprenticeship program like a product is important. Make sure your team knows that mentoring is part of their job. Equip them with the necessary tools and support to succeed as mentors.
00:45:15.920
Consider hiring teachers to assist your senior mentors. Lots of teachers have summers off and would likely be interested in making consultant rates for workshops with your team. They don't need to be developers necessarily but should understand how to effectively engage with various learning styles.
00:45:39.920
Incorporate the concept of a journeyman stage into your apprenticeship program, but focus it internally. For example, have apprentices traverse various teams or departments if applicable, encouraging skill development beyond just coding.
00:46:32.640
If you work for a large product company with multiple development teams, give apprentices time to explore different dynamics and determine where they best fit. If you're in a small consultancy, include them in meetings and areas that don't just center on programming, such as design, research, and testing.
00:47:09.120
A well-rounded apprentice can evolve into a highly valuable developer.
00:47:22.720
Thank you.