Diversity of thought is key to successful dev teams
|Steve Davis in Enterprise Wednesday, November 29, 2017|
How leveraging diversity of developer's backgrounds can help make dev teams more effective.
The typical view of “engineers” creating tomorrow’s technology today is of hoodie-wearing Ivy League computer science graduate geniuses, toiling away on code. That stereotype is not without justification. Software developers who only ever studied programming have leveraged their skills into untold wealth.
But this is no longer the only avenue offered to developers, and no longer the only version of an engineer offered to recruiters. Almost unnoticed, a new wave of developers has emerged in the market from entirely different backgrounds - and those who pivot from non-traditional disciplines to coding can help the industry think very differently.
Conversion to coding
Once upon a time, being a coder demanded hardcore knowledge of low-level computer processes. Math kids went to computer science school, and were taught the one right way to write a subroutine. But all that has changed.
Now a plethora of host frameworks and toolkits has allowed developers to work at a much higher level, piecing together ready-made components into a system. Developing now is bigger-picture - rather than re-invent the wheel, you can build the entire car.
This is prompting a diverse new wave of professionals, from entirely outside of the traditional computer science career path, to knock on the door. Psychologists, English literature majors and scientists from other disciplines are tooling up.
My company is lucky to have people like Craig Iturbe, an English Literature PhD, who realized by the end of grad school that continuing down the path of academia was not for him. He wanted to do something more tangible; something that people could interact with. So he learned how to program. That was less than a year ago. Now Craig is a front-end developer and one of the most productive at our company.
He is not alone. After four years of studying neuroscience, Zach Gottlieb realized that slicing rat brains was not for him. He diverted to science journalism and started learning to maintain his own blog with HTML and CSS - a gateway drug that led him to a job as a web developer and eventually team lead for Aperture, our data analysis platform.
Diverse backgrounds benefit
I often find that engineers from off the beaten track carry fewer programming prejudices. They have never been formally schooled in low-level coding, never taught the three “right” ways to sort a list of numbers. It is easy for traditional computer scientists to get locked into ways of thinking they were force fed in school.
But those who switch over are often more flexible. In their struggle to learn a solution, these new developers often examine the problem from multiple angles, and can end up using a different, more creative, and sometimes more efficient method. It’s like learning to swim without being taught the breast stroke.
Later-developing developers can be more, not less, qualified for modern roles. Computer science courses often teach old languages that are unused in the modern web environment hooked on the likes of Angular and React. But, if you are training outside of the Ivy League, in a bootcamp geared toward current technologies, you are learning the very latest frameworks and skills that are demanded by employers today.
The benefits to tech recruiters are not just technical. If you can hire a capable developer who jumped from the same industry that some of your key customers inhabit, you have a clear empathy advantage. And, if you take developers from disciplines where duties like presentations and interaction were more commonplace, you gain a staffer more used to communicating their work, more ready to engage through meetups to share knowledge.
The travesty of this opportunity is that not enough tech recruiters are taking advantage of the diverse talent pool of developers. I understand that, if faced with two quite different resumes - one safe pair of hands from Cornell and a musician who did an Angular course last year - picking the latter may seem risky. But it is possible to find diverse talent if you reboot the recruitment process.
It starts with HR departments. The many who screen out non-Ivy Leaguers before interview stage should rethink – you need to change that process to instead let potential candidates show you what they can do. Hiring should be about demonstrating skills in practice, not on the page. Don’t invite an interviewee to list the five sorting algorithms they learned at school, instead focus on asking them to solve real-world problems.
In interviews at my company, we sketch out an application wireframe on a whiteboard, ask a candidate to describe what they see and how they would break down their approach to building it. They need to show they can think programmatically, break down an interface into its components, talk about how each might work and sketch out pseudo-code to prove they have knowledge of the relevant frameworks.
Stop asking for specific syntactic aptitude, instead look for the right kind of abstract thinking and for a strong approach to productivity. In the real world, developers encounter hurdles all the time, and find help through Googling and communities like StackOverflow. That is the modern developer, whether she comes from Yale or from Udacity.
We will never stop hiring the experts who continue to come via the traditional route. They are the foundation on which computer science is built. But, in a world that has changed, I think it is also time technology recruiters did the same.
Learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathematics, programming, or cryptography is required. Terminology is explained through pictures, analogies, and metaphors.
Learn the best ways to organize your app development projects, and keep code straight, clients happy, and breathe a easier through launches.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.