Implications for Change

We see that many of the problems suffered by novice software developers have a root cause in poor communication skills and social naïveté. After analyzing our observations through the lens of newcomer socialization, we suggest possible changes to new hire “onboarding”[34] programs and university computer science curricula. We believe our suggestions can better prepare new college graduates for the ways that new developers work before they become experts, and hopefully speed them along in the process of gaining expertise.

New Developer Onboarding

Many new hires at Microsoft are assigned a mentor for their first few months on the job; we believe that the best outcomes are associated with intensive mentoring in the first month. A good mentor does not simply provide pointers to extant information on tools, processes, and people, but also models proper behavior and actions. For example, when Vadim came to someone in his team (incidentally, not his official mentor) with a bug reproduction problem, this person mentored him by looking at the bug report with him, figured out that it was inherently ambiguous (which was causing the new developer his reproduction problems), looked up the people who had written the bug report, and composed, with Vadim, an email to the bug report author asking about the ambiguity. He then looked up the author in the corporate address book, found out that he was in the building, and asked Vadim if he wanted to go visit the author in person. ...

Get Making Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.