The full-stack developer explained using cavemen

Tom Winter
Devskiller
5 min readJul 5, 2018

--

Long ago, well before the current highly specialize software development paradigm existed, developers were just developers. In a lot of ways, they were pretty similar to early man.

Source: Miss Cellania

Let’s go back to the dawn of man

You see, on the savanna, early man did not have highly specialized jobs. When they got up in their cave, dusted off their deerskin, and went out into the world looking for food, they weren’t too picky about what they found to eat.

Life was a constant fight for survival. There’s never a question of being picky where food came from. If you didn’t eat, you starved so early man was just as happy to collect berries off of bushes as they were too hunt down the passing deer or mammoth.

Developers didn’t use to specialize either

Early developers were just developers. They might have a particular technical interest be it C or Java but when it came to accessing their application on the internet, they would simply throw up an HTML interface that could access the back-end. But for both developers and early man, specialization was on the horizon.

Source: Timkautz.com

Back on the savanna, man became more sophisticated. To adjust to the changing environment, some of our ancestors became adept at hunting. They learned how to do fashion weapons that could easily pierce the tough mammoth hide. These required specialist skills including selecting and shaping stones like obsidian or flint. Hunting these large beasts could take days so they would need to concentrate on just going out and doing that.

On the other hand, mammoth wasn’t the only food source. It is important to understand what could be eaten. After all, not all plants were safe. For every sweet berry or hearty tuber, there was a poisonous mushroom or inedible bark. In this environment, specialized gatherers began to emerge. They didn’t have time to go out on long mammoth hunts because they were too busy finding the right areas to collect fruits and berries. They didn’t spend time learning how to make obsidian tools but instead learn how to differentiate edible mushrooms from the poisonous kind.

As web apps became more complex, developers started to specialize like early man

As humans got together into larger and larger groups, it became important to specialize their skill sets. In the same way, software developers started to split into two distinctive groups. There were still developers who worked on the back-end of an application. In this new era, they could really get down to what they were good at

But at the same time, the fronted started to develop an identity of its own. Rather than just putting together a bit of HTML that was thrown up to interface with a back-end application, applications started running on the front-end. These front-end applications became products in and of themselves. And from this split, the front end developer was born. So we now have front-end end and back-end developers but what about full-stack developers?

Source: Sitepoint via Devskiller

We have to think back to the caveman again. Just because you had somebody who was a great mammoth hunter, It was still important that they could find food from multiple sources. Mammoth hunts took a long time and they still had to eat. Therefore, your hunter would still need to be able to forage for berries. You didn’t need to have an entire hunting party of expert gatherers, just enough to keep the group fed. These “full-stack” cavemen may not have been the best mammoth hunter or the best gatherer, but they could do each well enough. Some could even hunt mammoths and forage berries equally as well as their brethren who had specialized as either hunters or gatherers.

Why have a full-stack caveman?

For the hunters and gatherers, this meant that you could coordinate your hunting and gathering. Your full-stack caveman could move the group towards an area with plenty of edible plants to sustain the hunting party until they bagged a big kill. They can help avoid a situation where the tribe was either left in the plains with nothing to gather or left in a thick forest with nothing to hunt.

In the same way, your full-stack developer can take a global view of how your front-end and back-end work together. They are often the best person to judge where is the best part of the product’s architecture to solve a problem. This gives them a crucial role as the somebody who can help steer product development and understand the possibilities of what problems can be solved. They are also a good first developer to hire on a small team as they can solve problems using a full range of tools.

Often a full-stack-developer can work with databases, PHP, HTML, CSS, JavaScript and everything in between. But equally, you might find full-stack developers in a specific environment like a JavaScript developer who uses React for the front-end and Node.js for the back-end.

Where to learn more

Whichever tech stack they use, a full-stack developer can be just as useful for a development team as a full-stack caveman could be for a band of hunter-gatherers.

To learn more about full-stack developers check out Know the difference: Front-end, back-end, full-stack developer.

--

--

Tom Winter
Devskiller

Co-founder @Devskiller and Tech Recruitment Adviser