Exceptional Software Ships from Great Teams
Fill Your Shop with Great Programmers
The quality of your development team is your biggest indicator of success. Processes and technologies are not enough.
Don't relay on luck of the draw in the hiring market. Your shop can develop awesome programmers.
Industry Norms vs
What We Know Works
Luck, Trial, and Error
We take a person with some kind of start and some basic knowledge. They might be self-taught or have done college lab work or a bootcamp. If they get in the door,they fight to keep their heads above water for the next couple of years.
Then, tada! They have arrived. From here, they have Google, StackOverflow, trial and error, and maybe just maybe the occasional conference seminar.
Learning by trial and error is very expensive for businesses.
If they are very, very luck, they might have someone on their team they can bother occasionally.
Just about every professional field and skilled trade, from doctors and lawyers, architects and engineer, electricians and welders have some form of apprenticeship training on the job in addition to academic work.
On average, it takes four years of supervised professional practice to be eligible to apply for certification or licensure. That begins a "journeyman" period of professional level practice with years of learning from craft masters before becoming one.
This results in a surprisingly large gap between the standard practice in the field and the state of the art and discussions of things like the "10x" difference in productivity of the best programmers and the average.
What Defines An Apprenticeship?
It cannot be about knowledge gained and repeated on a test, nor can it be about having 'put in the time' in a program or course. It has to be based on necessary skills put into practice solving professional problems.
This is not about classrooms or books, but about a growing programmer working side by side with someone who has the skills they are developing. That is the way they get the details and nuances that are not on StackOverflow, the feeling of how things go right and go wrong, and get the feedback they need to correct and improve.
Learning by Doing
Classroom and lab projects and hobby projects do not bring the necessary complexities and challenges that professional practice does. Real learning must be done in working environments and real projects. The only way to get sufficient, meaningful practice is to be on the job doing the work full time.
A Defined, Structured Path
What skills must be learned, where are is a programmer in their skill development, and what do they need next? An effective apprenticeship program should have a well-defined path so that everyone involved knows where the programmer is at and what they need to move forward.
A Community of Practice
Professional excellence is more than just skills. It is also values that are lived out in practice. That flourishes best surrounded and supported by a community that shares, demonstrates, and reinforces those values.
If we put all those things in place, what would the impact be on a company? In our experience, it results in faster, more robust, more sustainable and more innovative software delivery. Of course, delivering software is why we are here.
However, we also see it improve communication, build staff loyalty, reduce turnover, and create sought after cultures in programming shops which makes it easier to hire great people.
Economically, it aids staffing expense because you can bring in less experienced talent cheaper with the support in place to grow them quickly.
How Would My Shop Do This?
What About My Current Developers?
Most practicing developers, unless they have been very lucky, have never received the support to achieve their potential skill and effectiveness. All experience levels of your existing team will reap huge benefits from an apprenticeship shop model.
Can We Just Do This On Our Own?
Moving your team's culture in this direction can give you significant gains and is absolutely worth your time and effort. We very much encourage internal efforts to put these pieces in place in your shop.
How does RMPG make this successful for us?
Your primary business is to deliver great software. Ours is to deliver great programmers. RMPG brings experience making these kinds of programs effective and successful to work for you.
Rather than sidelining your best and most expensive developers as mentors, we bring with us outstanding, proven developers as mentors with decades of experience to share. Clients also report that their internal mentors soon suffer from "mentor fatigue" that reduces their effectiveness both as mentors and developers.
Most importantly, though, we bring the comprehensive path mentioned earlier with well defined, measurable skill development going beyond the purely technical to thinking and problem solving, communicating and collaborating, planning and executing and more.