It is commonly accepted in the software engineering field that “the best programmers are up to 28 times better than the worst programmers, according to ‘individual differences’ research. Given that their pay is never commensurate, they are the biggest bargains in the software field” . Hence the recurring theme of how to recruit the best candidates to create an outstanding software engineering team.
As Josh Tyler clarifies in the introductory chapter of his recruiting handbook, “the problem is that you can’t truly and reliably identify ... talent in [job] interviews.” Even a Google senior vice president, Laszlo Bock, acknowledged that Google looked at tens of thousands of interviews and found no relationship between how candidates were scored at their interviews and how they ultimately performed in their jobs . The grim state of the art in this area reinforces the need for sensible advice and better managerial practices, especially in tech firms with a relatively high employee turnover.
Tyler starts his subjective take on recruiting by describing what he calls “enlightened recruiting,” which is nothing more than admitting that recruiting must be a priority for good software managers, often stated as “always be recruiting” . The author dispels some common myths about recruiting technical people and develops a recruiting strategy based on common sense, the least common of the senses. He also discusses some issues surrounding work visas for engineers from outside the US, information both technical managers and non-US software engineers will find useful.
The second part of Tyler’s book is focused on the hiring process, again full of commonsense advice given in an informal style without being patronizing. After his critique of the ninja/rockstar developer term, which creates inflated expectations and might not be in your team’s best interest, he proposes hiring decision checklists, describes how to make interviews fun for your team (whose members should be fully involved in the hiring process), and includes some oddities. For instance, the author’s company instituted an unusual rule in its job interviews: no Java allowed. Since Java is now common in most computer science degree programs, the “no Java” policy takes candidates out of their comfort zone and helps identify those with the desire and capability to learn new things, an indispensable trait for successful software engineers.
Even though individual differences can be extreme among software engineers, building a great software engineering team, also known as a “jelled team” , is a key success factor for many software companies, since “a jelled team is a group of people so strongly knit that the production of the team is greater than that of the same people working in unjelled form.” The final part of Tyler’s short book turns its attention toward managing such a team. He describes the proper role of a technical manager, his most important deliverable (that is, confidence, at least according to him), dual-ladder careers, and some practical tips for engineering managers. Sensible advice is combined with peculiar practices, such as establishing the convention that estimates must be Fibonacci numbers “to demonstrate that estimates are necessarily less precise as they grow larger.”
Many software managers, who will already be acquainted with classic books in the field, for example [1,3,4], might recognize some of their own best practices as they are recounted by Josh Tyler. Novice managers will find plenty of useful guidelines, as will recent graduates. A brief appendix contains some useful advice for them in case they want to start a career in Silicon Valley. Beyond the managerial doublespeak often found in management books, I found Tyler’s book to be concise, reasonable, and full of interesting practices, including some curious ones you might consider adopting yourself if you become a software engineering manager.
More reviews about this item: Amazon