I worked for nine years as a CTO for two ed-tech companies in the Bay Area. Each team I led consisted of 20–50 engineers, and we hired between three and eight junior developers a year, usually right out of computer science programs from nearby schools like UC Berkeley and Cal Poly.
They were good hires—bright, talented, and full of confidence, but they often lacked a full understanding of what it takes to be a great developer: a beginner's mind-set. Perhaps because they were so well-trained, few could really accept that they didn’t know as much as they thought.
It turned out that after a certain point, high confidence in great tech credentials actually became a liability. I found out the hard way that you need soft skills in order to really move forward. When we started recruiting junior developers who had them, some pretty surprising things started happening.
Once the developers we'd hired were finally primed for "learning mode" (no easy conversion), we then spent the next year getting them up to speed on our software stack. It took the same amount of time to improve their communication skills and getting everyone to function well together as a unit. If all went well, in another 14 to 18 months they'd finally be productive members of the engineering team.
The trouble was that by this point many of those developers would be recruited for a job that paid another $30,000 more. It didn’t take me long to realize I needed a different strategy for hiring junior devs.
So instead, I began to look for recruits who were clearly hungry to learn, who had the right perspective from the start—meaning they saw themselves as beginners who wanted to build up their expertise—and who had enough emotional intelligence to operate well in our work culture. I found that when it came to hard and soft skills training, we certainly taught the hard skills—the languages and techniques—but we needed to put more emphasis on social skills like collaboration and empathy.
Over time, it became clear that the developers who'd nailed the soft skills provided more value than those who hadn't.
Most traditional, one-dimensional developers' weaknesses on this score usually aren't their own fault. Organizations are structured to eke the most coding out of an employee in the most efficient way possible. But you wind up hitting a point of diminishing returns.
The best software isn't built in a coding factory. It's built by engaged, creative engineers who understand the needs of their customers—all their customers. And that requires teams of diverse and empathetic people.
One piece of advice I often give to job seekers is that when they interview at a company where the engineering floor is quiet—where developers sit silently in rows of desks or cube farms with headsets on—they should turn and walk away. That isn’t how great software is built. Building software is messy and loud. It takes all kinds of people working in many different roles, and sometimes disagreeing (productively) about how to do it.
A company that separates the business minds from the tech minds isn't a great place for any software engineer. It probably isn't that great for the business, either. How many engineers in your organization can describe what the company does in detail? Do they have direct experience with customers? A lot of companies see engineering talent as very high cost, so they shut them into a room to code. Then they delegate empathetic behaviors—those requiring soft skills—to lower-paid positions like customer service.
This type of separation leads invariably to corporate "monocultures" that lack the collaboration it takes to really innovate. Great software is developed by teams of people with keener, shared insights into what people want and how they interact with the products, brand, and other people—not an isolated group of (too often white and male) developers sitting in front of a row of machines, just plugging away.
When I came to Dev Bootcamp, I wanted to bring what I'd discovered about training developers in soft skills to the company’s existing "whole-person" approach to learning. Together, we worked to answer the following questions: How do you teach empathy? How do you teach people to understand and share the feelings of somebody else?
Those were about the least technical questions any tech company leader has ever posed to a team of engineers. But we set to it, asking people to share how they felt about their experiences in the workplace, both positive and negative. Whether those were personal events or things happening at a larger societal level, we asked them to visualize the situation from someone else’s point of view.
With those feelings out on the table, we then asked our developers what issues they were running up against in their projects and among their working groups, on both a technical and an emotional level. We asked them to identify their inner critics (the voice inside us all that tells us we aren’t good enough or we don’t belong): What did it say, and how did they respond to it? Did they run? Did they get angry and lash out? Practicing self-honesty and identifying habitual responses is a far cry from coding, but it helped our trainees recognize similar patterns in others. Over time, it made them more empathetic and capable of relating to others.
I believe this approach can help broaden the stereotype of the traditional programmer, whom most people think of as a tech prodigy—introverted, analytical, and lacking some social skills. If we can do that, we can start solving the tech industry's well-known diversity problems.
We've already seen the approach here pay off. We're attracting more students to our coding bootcamp who don't fit the typical developer stereotype. More women joined our staff, which led to other women who saw that we had female teachers start applying to the program. Other underrepresented groups in the tech community also began to knock on our door—bringing with them a broader set of skills, experiences, and backgrounds than a top-shelf computer science degree.
To me, that feels like innovation all by itself. But it will lead to much more.
Jon Stowe, president of Dev Bootcamp, is a passionate product and technology leader with more than 20 years of experience in education and software industries, where he has led strategy, product management, and software and hardware engineering teams.