Home > Articles > Programming

An Academy for Software Craftsmen? An Interview with Founder Ken Auer

  • Print
  • + Share This
For all the talk of craftsmanship and apprentices, there is only one commercial school in the world offering a journeyman rating: The RoleModel Software Craftsmanship Academy in Holly Springs, North Carolina. We interviewed Ken Auer to find out where the idea came from, how the program works, and why it's necessary today.
Like this article? We recommend

Apprentice. Journeyman. Master. This is the language of the software craftsmanship movement--a movement that, at least in language, bears more resemblance to the building trade school programs than to any academic computer science program.

This is a movement with books, conferences,  speeches, and even a few small organizations with apprenticeship programs.

Yet, those programs are almost exclusively for employees, and most lack any kind of classroom training component.

Where are the actual schools for craftsmen?

Enter Ken Auer, president and founder of RoleModel Software and lead instructor at RoleModel Craftsmanship Academy.  RoleModel's program, the first of its kind, will begin in the spring of 2012.  Craftsmanship Academy combines a six-month, intense, in-residence education experience with a one-year follow-up internship at any sponsoring employer.  After the year is up, the student can take an interactive exam to complete the apprenticeship and become a certified journeyman.  

This approach is designed to qualify the candidate to take employment as a software developer at a studio as a staff programmer in eighteen months, less than half that of a bachelor's degree in Computer Science--and during the last twelve months, the intern is earning a living wage.

In this interview, Matt Heusser talks to Ken Auer about the software craftsmanship movement and the academy.

Matt Heusser:  Where did you get the idea for Craftsmanship Academy?

Ken Auer: Well, it has been an idea that was about 15 years in the making--or 30, depending on how you count.  In 1981, I went to a top engineering school, Rensselaer Polytechnic Institute, to get a BS in computer science.  Though I certainly learned something about programming there, I found that the thing that helped me learn the most were the full-time co-op jobs I had at two different places for a semester each. The size of the problems and the fact that I had people around me that had been programming a lot longer than me in the real world was far more valuable to me than the small projects I did in college courses. I also liked getting paid for the work rather than paying the school. When I realized I could graduate a semester early, I jumped at the chance for a lot of reasons.

Through the next twelve years of my professional life, I found that the best way to get better at the practice was to practice and learn from the best reflective practitioners.  I learned, and I taught others what I had learned in many contexts.  I speak about this a lot more in the history section of the academy website.

By the time I started my own company, RoleModel Software, in 1997, I had learned enough about what college computer science looked like.  They were teaching the same stuff that they taught me in 1981-84.  Nothing had significantly changed.  Object-oriented programming was, at most, touched upon in senior or graduate classes in all but a few colleges.  I decided that I couldn't afford to hire a college graduate who was expecting to get paid $45-60K and have to teach them almost from scratch.  Then I found a homeschooled graduate who already, as he said, "knew the mechanics of programming," but wanted to learn from someone how to really practice it in developing significant systems.  That was Nathaniel Talbott.  We were both committed to making it work.  I figured that if he was in a better position in four years than he would have been if he went to college, I didn't screw up.  The reality was, in about 1.5 years, he was running circles around some of the more experienced developers, and certainly the recent college graduates, at one of my clients.

I began talking to other craftsmen, journeyman, young people, and parents about the value of apprenticeship as an alternative to college. I basically got two reactions: disbelief or "yes, but it doesn't scale... how could you take this model into colleges?"  When I explained that colleges are a completely different model, some would say, "Why don't you start a school?"  My answer was that if I only worked with apprentices and stopped practicing my craft, I would soon be irrelevant and turn into more of an academic.

Only a few people had caught the vision of having some of their own apprentices, and as I talked to them, they all had the same problem--the first few months of training were intense and expensive and none had a model to handle the early parts of the apprenticeship that they liked. They all just grinned and bore it because they realized the fruit on the other side of the pain.

Then earlier this year, I met Chris Gregory, who runs one of the top farrier schools in the world.  He had apprenticed his own son in the established craft in addition to running the school.  As we talked and he learned about how I had been apprenticing young people, he asked me the same question.  "So, why haven't you started a school?"  When I gave him my answer about not wanting to become an academic he said, "of course, that's why my school is only open half the year."

I munched on that over the next few months, and came up with a model based on my previous apprenticeship experiences.  I vetted it with others, figured out what I'd need to do before I could devote so much of my time to it without shutting down the rest of my business, and here we are.

Matt Heusser: Who is your potential audience?  How much does the program cost?

Ken Auer:  Anyone who wants to be good at the craft of software development and has learned the basic mechanics of programming.  It could be homeschooled students who have already learned enough of the basics (and have already challenged the traditional schooling model).  Or it could be someone like myself who has gone through the regular schooling model through high school or college and realizes there is a better model to learn the craft.  I have had inquiries from people who are making a living doing something else (like a network support engineer) and want to switch careers to software development and can't imagine going through several more years of college to do it, but realize they don't know enough yet to be paid as a professional.

The program costs $17,000 gross, but actually generates a net revenue to the participant of $7-30K over 1.5 years.  It's $8,000 for each of the first two 12-week immersion sessions, and then an internship that starts paying $2,000/month or more, and could go up before they finish their first year.  The final $1,000 is for the interactive certification test to validate that the participant has not only made it through the first two sessions and a one-year internship, but also has become competent at a wide range of abilities necessary to practice the craft well.

Matt Heusser:  What will the students learn in the six month training portion?  What will student life be like?

Ken Auer: It will not be anything like a traditional school. They are not just going to submit an assignment and get a grade.  There will only be 8 students at a maximum and their access to the instructor will be high and interactive.

The first three months will be putting together a progressively harder series of problems/projects that will build on each other.  They will be doing test-driven development on the first day.  I'm going to write the first test, and they are going to learn to write tests from there. They will be part of a learning environment where every task they are given will not necessarily be graded, but be reflected on and discussed with the other students and the instructor(s).  It's like real work, where the goal is to do a job that meets or exceeds expectations, and do what it takes to get there. They are going to work a 7-8 hour day Monday through Friday, broken into 4-5 timeboxes with checkpoints at the end of each.  Early on they will all be working on the same problems, but they will eventually grow into a team learning how to collaborate, share divisions of labor, and keep projects moving forward.

They will be expected to do some additional self-learning outside of the class sessions.  The amount will change based on the individual.  What they have to do to keep up or what they may be interested in doing to get ahead.  Some of it will be specifically assigned based on what I think they need to learn, others will be self-assigned given looser goals.

At the beginning of the second 12-week session, they will be split into two teams.  Each team will work on a different project from a real client that they will work on with me playing whatever role I need to (bringing in others at RoleModel as needed) in order to help them go from vague goals and requirements to working software.  They will see the reality of software development done in a craftsmanship fashion.  Textbook projects only exist in textbooks.  They'll see what it is really like.

Matt Heusser: How do you think that compares with a traditional university education?

Ken Auer: It doesn't compare, it contrasts.  It probably contrasts the most with Computer Science programs versus IT or Software Engineering programs.  The general idea of the university setting is that there is a wide set of knowledge one needs to learn, reinforced at times with small projects to cement the knowledge.  Our approach is that there are things that need to be built.  In order to build things, you need to do things.  In order to do things, we need to have some knowledge.  We'll provide the knowledge that isn't there in a "just in time" fashion, whether that is theory or "this is the way it is typically done using these tools."  You have something to hang the theory on, rather than have a bunch of theory that you may need someday.  The theory will be learned faster and more thoroughly.  I recently wrote an article, Where Should Data Structures Be Taught?, that illustrates this from real world experience with a recent college grad in the working world versus my first apprentice in the working world.

Matt Heusser: How do you think a RoleModel graduate will compare with a traditional C.S. degree?  What is the job market like for your graduates?

Ken Auer: Well, I think they'll have most of the relevant theory in a more solid form. The number of hours they will have spent on theory and practice in software development will be higher.  They may miss some operating system and compiler theory, and instead of an Intro to Psychology they will have a lot of experience (and instruction) of how to work with people.  Most places that a software developer would prefer to work value the practice more than the degree.  Everyone who has either signed up for, or is considering, the opportunity to recruit the graduates as interns has made it clear that they fully intend to hire these folks after the internship is over (or even before) as full members of their team.  I just started to publicize that we are looking for sponsors for internships two weeks ago, and I already have at least 5 slots signed up.  I am also screening these folks to make sure they are software shops that are serious about the craft of software development.  These aren't just people looking to hire cheap labor, but people who really want to invest in these people who have already invested in learning the craft.

 

Matt Heusser:  Let's step back for a minute and think of the future--five, ten, fifteen years out.  What is "success"?  What will your ideal program be like in ten years?  Do you think other schools will spring up to follow your lead? 

Ken Auer: I can only teach 8 people a year with the current model, and I really don't have much desire to scale it up under the RoleModel banner.  We might split off a couple of other offices if the right circumstances allow it.  I don't believe there can ever be a program of this quality with a much higher student-teacher ratio.  Lecture halls can scale.  Master-Apprenticeship relationships don't.  Even Jesus Christ only really "apprenticed" 12 people at a time.  If He couldn't/didn't make it scale past that it would be arrogant to think that I can.

On the other hand, I am not the only person qualified to teach this stuff.  There are many great software craftsmen out there with the ability to teach.  Some are better at their craft than I am and some are better teachers.  I'm sure that there are some who are better at both.  I think this model will allow them to continue to stay on top of their craft while helping others get a great start.  I have already been having conversations with others about reproducing this model and keeping the bar high.  Although 6 months and 1.5 years doesn't seem like a lot compared to 4 years of college, there are all sorts of "certifications" our there that run from the silly "Certified Scrum Master," which you become by sitting in on a two-day course (and you don't even have to pass a test), to thin slices of expertise learned in weeks or months, taught by people who don't necessarily know much more (and sometimes less) than the canned curriculum they are teaching.  Now, I am certainly not saying that those courses and certifications are without value, or that the model I'm using is "the only true model," but people need to know the difference between apples and oranges.

My desire is to see a certification board that starts with this model (a qualified lead instructor with 10 or more years as an accomplished practitioner, six months of immersion training instilling some agreed upon list of relevant skills, an internship, and measurable outcome), and expands to other models that are clearly less or more advanced.  For example, the guys who started the Chicago-based Code Academy have put together a very high quality program that they will be the first to acknowledge is highly valuable and has similar characteristics to what we are doing, but will produce somewhat less than what our model will produce.  I think it would be great if other programs like that were certified, so that what they produce is not confused with what the unrelated online Code Academy produces which has a completely different level of value.  I'd like to eventually see more advanced immersion programs pop up... perhaps an intense week-long or month-long immersion experience and tests for those who are already certified as journeyman on their way to becoming master craftsman.  We should also find ways to make it simple (but not too easy) for existing journeyman and master craftsman to get their certification inexpensively but not trivially.

I'd expect that other academies would use different technologies and techniques but similar immersion models.  They will take on the personality of their instructor and, perhaps, the industry or values that the instructor has.  Another academy may focus on embedded systems, or functional programming languages.  Just like there are engineering schools that have their unique specialties and programs with some understood base, these could, too.  But they would still be focused on practice first.

At the recent Software Craftsmanship North America conference, I gave a quick lightning talk about this, and did some math.  If every year, 3x more such academies opened up producing 8 graduates each, in 5 years we will have 256 such academies who will have produced 2728 graduates.  Some time between now and then, we should find ways to certify folks who became journeymen through more traditional paths so we don't have the false qualification of having to have completed this program to prove your stuff.

If we continue this same growth rate, in 10 years, we'll have over a quarter of a million academies that will have produced more than 2.75 million graduates.  I haven't done the research to know how many graduates are out there with degrees in computer science, and I realize these are completely hypothetical numbers, but I think it shows that it is not outrageous to think that in ten years, this kind of immersion program could be a norm, if not the norm.  And, those who employ software developers will be much happier about it.

Currently, many college grads are not thrilled about the choices they have after four years of hard work.  Most employers are looking for people with experience who can begin producing from day one, even though they realize everyone coming in has more to learn.  I think this model is better for both sides of the equation.

Matt Heusser: Thank you for your time today, Ken.

Ken Auer: Thanks for inviting me.

  • + Share This
  • 🔖 Save To Your Account

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020