The Insecurities of a Full-Stack Developer
Coming to terms with the problems facing full-stack developers.
I've been a full-stack developer for the past 2 years, of which I was the only full-stack developer on my previous project. I feel that it suits me. I don't like staring at the same thing for too long and it scratches that itch that I have; the need to know how something works from back-to-front. I hate having knowledge gaps in the applications that I work on. "Magic happens" - my code - "magic happens" just doesn't do it for me. I just need to know how it works and try to have some active involvement.
I've met a lot of developers, and it appears that not a lot care about the opposite end of their stack. That doesn't hold true for all, but normally developers care about the client-facing components and making them look good, or care about the back-end processes, optimisation and code security. I not only care about both but I enjoy the changes of scenery! However, it does come with problems.
Most developers in the industry will have heard of Impostor Syndrome. If not, they will almost definitely identify with it on some level.
Impostor Syndrome
Impostor syndrome (also known as impostor phenomenon or fraud syndrome) is a term coined in 1978 by clinical psychologists Dr. Pauline R. Clance and Suzanne A. Imes referring to high-achieving individuals marked by an inability to internalise their accomplishments and a persistent fear of being exposed as a "fraud".
Focusing solely on one end of the stack allows you to have more of a specialty, wherein you can focus on mastering one or two technologies to the point of becoming a guru in that field. This is largely down to the time devoted to them, lending the opportunity to really evolve to using best practices and understanding advanced aspects and intricacies of the languages and technologies. Full-stack developers on the other hand have a spread of knowledge over a wide range of technologies and areas, but it is a thinner spread. Sure, some developers can absorb more information than others, and concepts and principals click faster, but there are only a certain number of hours in the day to read, research, apply and develop.
Being full-stack you can assume that you will work alongside or come into contact with developers that are experts in the different areas that you look at. The realization that you will never know enough about most of the technologies that you work with causes strong feelings of Impostor Syndrome. It shouldn't, because after all; most projects' stack's will be different, and therefore you'll almost always need to get to grips with at least the basics of different technologies all of the time, and rather quickly. There is rarely the assumption that you'll know everything about everything (although we all know 'that guy' who is). The idea is that you can consult these advanced developers for problems that require a solution that only experienced users will be accustomed to. However, there is always the feeling that you are just 'winging it' due to a constant lack of depth in knowledge.
Information Overload
I've recently moved onto becoming UI lead on a green-field project which has aspects of full-stack development. The fact that it is a brand new project meant that several different areas needed to be researched, considered, and justifications made. During the initial investigations into the suggested technologies, I was met with reams of information on a long list of technologies, libraries and frameworks that I had little-to-no prior experience in and had to juggle. Keeping track of them all the retaining the key facts and concepts about each was extremely difficult. I regularly had to completely close my browser due to too many tabs that I could no longer keep track of. Perhaps there are techniques that I could work on regarding this, but I found it difficult regardless.
Reflections
I enjoy being full-stack, but a part of me feels that I should concentrate on one area of development. To do this I need to accept that I can't be familiar or actively involved in all areas of development on a project. To be perfectly honest, with the rate of new technologies hitting the scene it is probably best to do this for my own sanity. If scientists ever find proof for the one in - one out memory belief, full-stack developers will be among the first to forget childhood memories.