Problem solvers: Today’s star developers are Generalists

Lital Hassine
Simply
Published in
5 min readDec 10, 2019

Our success at Simply has taught me the superiority of tackling problems with a box full of various tools, not a single tech expertise

Generalist programmers wear all technological hats to become superior problem solvers

After 12 years of working as a Java specialist, I joined Simply and everything I thought I knew about developing software changed. My experience at the company has taught me that we as developers can achieve so much more when we stop thinking of ourselves as experts in technology X or Y and instead use all the technology at our disposal to become problem solvers. In this post I will make a case for being a generalist developer and share the benefits and challenges of this exciting paradigm shift.

Don’t feed the beast

Startups by nature start out with little resources and big goals. To achieve them, you need to learn to stretch your limits and think differently, fast.

When working with a team of specialists you get caught in a rigid work structure that relies heavily on management and backlogs. For example, if you’re working with a team of let's say 2 front-end programmers, 2 back-ends and one Android, you need to constantly build up the list of tasks for each of them in order to maintain maximum output. In reality, important goals can’t be delegated in such a fractured way, over time. So their manager, in order to keep the ball rolling, relies on the backlog to find tasks relevant for each specialist, and they end up focusing on managing a task list rather than solving the most important problem. We call this feeding the beast.

When working with specialists, managers often have to rely on the backlog to find tasks relevant for each specialist and they end up focusing on managing a task list rather than solving the most important problem. We call this feeding the beast

In order to avoid such a blatant waste of time, we work in “pods,” which are small, independent teams that include a member from each division in the company — product, design, marketing, music (that’s how we roll) and, of course, a developer. Each pod is assigned a business KPI and is sent off to independently solve its problems and improve the KPI.

This style of work supplies every team member with all the context we need in order to choose how to deliver our best work. Being part of the entire problem-solving process, forced me to hone every tool in my tech toolbox instead of turning to whatever solution JAVA could supply. This style of work turned me into a generalist and a generalist enthusiast.

Going to a salad bar to eat a bowl of cucumbers

In today’s fast-paced tech world, deciding to focus on just one tech is like going to a salad bar to eat a bowl of cucumbers. Why would anyone in their right mind do that?

Generalist programmers stand in contrast to specialists, which is how most developers see themselves. Specialists use just one tech stack and one solution. They have a T-shaped skill set, meaning they have basic knowledge about a number of domains and expertise in one. Generalists, in contrast, have skillsets shaped more like a comb, because they have relatively deep knowledge in several domains.

T shape — specialist skills

These pros can learn new technologies quickly, thanks to their experience with different types of programming paradigms and multiple ways of thinking about a mission, which gives them the ability to comb through problems to find which tech is the optimal solution for any given problem.

Being a generalist doesn’t mean that you use every single tech, or that you’re equally proficient in every language. For example, everyone at Simply started out with one specialty or another, but we are agile enough to quickly learn new tech when we need to, and now our programmers are stellar at both iOS and Android.

comb shape — generalist skills

Being a generalist doesn’t mean that you use every single technology, or that you’re equally proficient in every language, but we are agile enough to quickly learn new tech when we need to

I’m no expert: The challenges of being a generalist

As all choices go, dedicating yourself to one thing over another comes with certain sacrifices and choosing to become a generalist is no exception. The most difficult thing to come to terms with is accepting that you will not be considered an expert in a specific technology. While I believe that a more rounded approach to programming is what’s needed in today’s fast-paced tech world, there is still prestige attached to expertise.

I am no expert in iOS or NodeJS, though I can carry an intelligent conversation about most technologies. It bothered me at first that I was giving up the ambition to become standalone in one tech, but today it doesn’t bother me at all, because I know that I am a superior problem-solver, which requires to work with unknowns, learning to select new developments and searching for answers in multiple places.

Joining the new wave of developers

If nothing else has sold you on the idea to join the new wave of generalist developers, then maybe this will: you’re likely to find yourself in high demand. Companies value developers who are problem solvers, and it’s a buzz word that pops up more and more in job descriptions. The tech world keeps growing and changing. Experts can find themselves improving in their own field, but being left behind in others, which could prove to be costly over time.

Generalists have the satisfaction of knowing that their work will always be relevant. When I was a JAVA specialist, I would worry whether my skill set would still be relevant in 5 or 10 years. But as a generalist, I’m a problem solver, and companies will always need problem solvers.

If you’re interested in trying out this kind of work style or hearing more about what it takes: lital@hellosimply.com

--

--

Lital Hassine
Simply
Writer for

Gettings things done at JoyTunes. Loves peaches.