In software or web development, we generally come across the term full stack developer. Moreover, myriads of online platforms are offering full stack developer courses. Yet, to everyone’s surprise, there is no such phrase.
“Every developer is full stack” and “No developers are full stack”.
The term “full stack” is just a technical jargon and not an engineering position. Real software or web developers do not keep bragging everywhere saying that “they are full stack” or ask others the same.
The term “full stack” is what developers use to flatter the recruiters who generally are quite unaware of what it really is. It is what recruiters use to attract managers yet normally are not sure why they are using it. And it is what managers use as obviously no one would want a team of half-stack developers.
If anyone asks a developer, “Are you a full stack developer?”, he or she is in fact asking whether you could work with the operating system, the database, and at least two programming languages. And the answer will be yes, for obvious.
The question, however, is absolutely meaningless per se. Being full stack is the very bottom line of software engineer or developer. There is no other kind of software engineer. If a person is a technologist but not full stack, then he or she is not a software engineer.
Consider the medical field. There is no such thing as “half medical” doctors nor are there medical professionals that are not “full medical” including, physician assistants, nurses, and EMTs. They, therefore, have their respective designations and are not doctors.
As a software engineer, you are poised to possess particular skill sets that are essential to completely engage in that line. Hence, full stack is a redundant and pointless phrase.
Although with no purposeful expertise in one domain or other, all developers are experts in one area over another. Let’s take an example of a person who is graduated in computer science and has worked in various databases, operating systems, and programming languages. If you ask the person whether he/she is full stack, all you need to understand is that the calibre of that person varies as per different areas of the stack. He/she might have a stronger grip at UI/UX as compared to database tables or vice versa.
In other words, software developers or engineers can and do work at every level of a stack, yet they prefer working where they specialize.
If you are looking for full stack developers because you want someone who knows the nitty-gritty of software, then you need to replace “full stack” with “experienced” or “expert”. Else you are not qualified enough to properly ask questions pertaining to skill sets of a software engineer.
Let’s take a simple example. If you want to build tables, you do not pull in craftsmen and instruct all them to perform every task together. Instead, you assign each craftsman a specific task and create a synergy. Software is exactly like that. At all nodes in a software development process, there are experts that are capable of managing a specific area, give their best and go forward.