We are not simple dev, we are 2020 stack team player.

We are not simple dev, we are 2020 stack team player.

Hi dear developers,

this is my first post on Hashnode and I want to talk about our role in this world.

For many people, we are "simply" : a guy in front of a monitor, but it's wrong. Every day of our life (ehm...weekend too? 😅 ) we (me) use smartphones and laptops for reading the news about coding, about technologies, about software, about design and every day we do the same question: why microsoft created Internet Explorer? (😇 before edge with chromium)...I'm joke (or not 🤔), the question is:

  • how many frameworks JavaScript will there be?

  • which are the "best" choice?

  • what should I learn first for new technologies, new stacks?

These are my questions when I open my terminal, my IDE, my code, my projects. We are not just "simple" developers, we are hero. Hero for our teammates (recently a teammate has told me: you just saved me a weekend 🤙🏽), hero for our brain (how much data you put in me?? 🧠 ), hero because we work behind a monitor, seated in a (I hope comfortable) office chair for 10hours (if we are lucky) for produce code and learn ever and ever.

Yes...you are a hero!! 🦸🏾‍♀️ But come back at initial question and initial open point about OUR ROLE. Full stack? Front-end engineer? Front-end developer? Software developer? Software web engineer? Front-end "evangelist" (WTF!)... In our highly technological and increasingly skilled sector, definitions are wasted and I believe that both companies and human resources are not very clear who and what they are looking for.

I enclose an article that I have just read on medium that I find very interesting and defines us as a 2020 stack player. Below a smart recap of entire article. thanks 🙏🏾 to https://medium.com/@joehonton

👉🏽 https://medium.com/better-programming/2020-001-full-stack-pronounced-dead-355d7f78e733


The Genesis of Full Stack

At the dawn of the new millennium, web tools had reached the point where everything needed to build a website could be assembled from open source software. Loosely following the OSI network model, we began to refer to the individual pieces of the assembly as layers and the collection as a stack.

The LAMP stack was the first of these, with four layers: L for Linux operating system, A for Apache HTTP server, M for MySQL database server, and P for PHP scripting language. Over time, the layers concept proved itself well as many stack variants popped up: WAMP, MAMP, XAMPP, LEMP, LEPP, MEAN, JAMStack, and others.

[...]

Soon, the introduction of AJAX in browsers (XMLHttpRequest) enabled a new type of website, leading to the Web 2.0 era and web applications. But the amount of work involved in developing these new applications meant that solo developers were hard-pressed to meet business deadlines.

The result was specialization. Front end developers handled the HTML, CSS, and JavaScript. Back end developers handled the host operating system, the HTTP server, and the database. And developers that were fluent in both were termed full stack developers.

[...]

But as the fundamental technologies improved, this rosy picture became less compelling. The stack was no longer limited to the initial four layers of operating system, HTTP server, database, and scripting language.

  • Complexity arose as we needed to grow our humble applications to handle an ever-larger number of concurrent users. So we added load balancers.
  • We needed faster provisioning of new servers, with less risk of catastrophic failures. So we switched to cloud computing.
  • We started building things to reach a global audience. So we began to replicate our deployments to regional data centers.
  • We discovered that schema-heavy databases and complicated joins weren’t always best. So we began using key-value stores.
  • We needed better quality control. So we hired dedicated test engineers to build regression suites.
  • We wanted to put the browser in control of rendering and composition. So we switched from server-side scripting to REST APIs.
  • We learned that good code management was critical to a team’s effectiveness. So we created workflows using Github and never looked back.

[...]

And throughout all of this, the fundamentals kept marching forward:

  • HTML5 matured to encompass the semantic web, accessibility, service workers, and components.
  • CSS grew, going way beyond selectors and cascades, to encompass transitions, variables, new layout models, and paged media.
  • JavaScript exploded, with modularization, object-oriented classes, asynchronous functions, and the ability to execute anywhere — in the browser’s DOM, on the server, and on the desktop — all with the same scripting language.
  • And HTTP advanced with better caching, security policies, persistent sessions, multiplexed streams, header compression, and prioritization.

[...]

The glory of the full stack engineer working as a Renaissance Man had become the stuff of legends. And in this new era, no one person could hope to do it all.

The 2020 Stack

This leaves us with open questions. Is there still a role for talented individuals with knowledge and skills that span multiple layers? How do we accommodate the diverse mixture of experience that full stack developers have traditionally brought to the project? How does management fulfill all these needs? How should recruiters filter prospective recruits? How should job applicants declare their skillset?

It’s time to rethink the term full stack.

[...]

I’ll call it the 2020 stack. A new name for a new generation.

[...]

So here are some characteristics of the new 2020 stack specialist:

Since no one person can handle it all, the 2020 stack must be covered by a team. Not a group of individuals, but a true team. That means that when one person is falling behind, another will pick up the slack. When one person has superior skills, there’s a mechanism in place for mentoring the others. When there’s a gap in the team’s knowledge-base, they seek out and hire a team member who’s smarter than all of them.

Every 2020 team player must be a cross-domain expert. Any individual with a skillset limited to just one or two layers of the stack isn’t truly a 2020 team player — these types of individuals may aspire to be future 2020 team members, or they may not. But until they acquire deep knowledge across multiple layers of the stack, they’re just 2020 candidates.

The mix of skills that 2020 team members bring to a project isn’t rigidly categorized. Unlike the front end/back end categories that we’ve embraced until now, the 2020 divisions are manifold. One 2020 team may have a member with skills that include NoSQL, cloud configuration, and continuous integration. Meanwhile, another 2020 team may have an analogous team member with skills that include SQL databases, Node.js servers, containers, and orchestration. To refer to either as simply a 2020 back end team player gives them too little credit.

Finally, the vital ingredient: Communication should be carried out with the shared intention of making the best decision for the problem at hand. This means that peers whose skillsets overlap should communicate with an open mind. Rather than just informing peers about new developments, peers should discuss things. This makes everyone smarter, and it prevents specialization from creeping back in. Symbiotic growth.

[...]

Layers, Layers, Layers

So what’s the most sensible way to carve up this new space? Do terms like front end and back end give us the specificity we need? How about the terms server and web, sitting alongside design and ops. Surely, these are broad enough categories. Right?

But wait, we can’t ignore the testing folks, because we know that without their techpertise we’d deliver products inferior to our competitors. And without the marketing side of things, we’d never even have customers.