Disclamer:
jehy published an interesting article -
"What a bad thing it is to be a full stack developer .
"The problem that the author touches on is actually much wider than the world of development. We, modest administrators, have the same problems. After reading it, I could not resist, so as not to make a small parody, having projected, sometimes literally, it into the world of system administration.
Introduction
First of all, we define the terms. There are many different ideas about who is such a full stack administrator, someone even reasonably believes that such an administrator is a myth, but this article will refer to an administrator who has the knowledge and skills to understand the IT infrastructure. “From” and “to” and, if necessary, serve any system. The ideal enterprise administrator is someone who owns, to some extent, both the network component and storage systems, virtualization platforms and other products, can diagnose at what level the malfunction has occurred or what will be required to launch the new server.
Probably, according to the heading it will seem to someone that this is a mournful post about how badly yesterday student lives, and to today's enikey in a peer-to-peer network with 1C-koi, who has picked up just from different articles on the Internet. No, the post is not plaintive. And we will not consider yesterday's student, but a full-time admin, with a beard and work experience of five years or more. Just see what the minuses are in this development.
Minuses
In every single area you are worse off than a narrow specialist.It seems pretty obvious, but I will explain. If you spent six years on one technology, then obviously your knowledge will be more than that of a person who has been engaged in several for six years. You had more projects, you were more involved in some typical solutions, you know more bugs by design.
')
It's harder for you to go deeperA good full stack admin always has something in the soap. That the whole case fell off the network, the array fell apart, then the patch Tuesday from Microsoft. And your time to learn new things is shared among all the technologies you work with. Naturally, your development is slower than that of a narrowly specialized colleague.
You are more likely to be overloaded with tasksIf you are engaged in several projects from several sides at once, then even with good time management it will often happen that all projects require increased attention and time. It will have to be solved either by transferring part of the tasks to other administrators, or by assigning priorities, or by careful planning. Of course, anyone has the chance of overloading - as you know, in the real world any task must be done “yesterday”. But you have such tasks may suddenly appear in batches.
It's hard to replace youTo some it may seem like a plus - it’s difficult to fire you, they love and appreciate you. But the flip side of the coin is the impossibility of transferring tasks, calls at any time of the day, problems with going on vacation, difficulties when trying to do something else.
You do not have a clear area of ​​responsibilityIf there is no water in the tap, then the main admin is to blame! Whatever problems arise, whatever bugs come out - most likely, you will have to deal with them, even if the problem really should be in charge of other colleagues in the shop. It's just that your picture of the world is much more complete, and you will be able to locate and correct the error more quickly. Unfortunately, this is constantly abused.
“Oh, give it to him - he'll figure it out!”Oh better would not have given. In a situation where it is necessary to deal with a frankly curved, undocumented or outdated system, it’s most likely to involve you. It is especially sad when an employer wants to save money by hiring one advanced administrator for a huge range of tasks. And you look at an amazing system and understand that it is easier to throw it out and completely redo it.
You do not know all the nuances of the product.This is quite obvious from the first point, but I would like to mention separately - if only because vacancies often require experience with specific specific scenarios, such as migration experience from Exchange 2003 to 2016, integration with Lync, and building a hybrid infrastructure with Office 365.
You do not have time for all the trends.Again, this follows from the first paragraph. For some reason I do not understand, they are often looking for a developer who perfectly knows how to apply something that was released six months ago. Alas, you cannot know and be able to use Windows Server 2016 at the same time, talk about the differences between the latest version of VMware View and possible problems with migrating from EMC to Nutanix at the moment. Perhaps you read about it, but just did not have time to try.
You do not always work optimally.Most likely, your work is performed qualitatively, systematized and documented. But surely a more qualified specialist - a documentation master in accordance with GOST 34 could make it a little better. Another question is that this is usually not critical. It is really bad if the porridge of technology in the head makes you apply approaches and solutions that are not suitable in the current project. It is terrible to see how some even write scripts that simply duplicate commands from the depths of the banal GUI or standard utilities.
You often peep into manualsRetaining the functionality of 20 products in your head is simply impossible. Yesterday you installed vCenter, and today you cannot remember what you did at all. If you often switch between different technologies and languages, then most likely you will constantly hang a manual in which you peep, which of course reduces the speed of work somewhat.
You can start to envy the salary of narrow specialistsIf you start looking for vacancies according to your most expensive skill, then you may be upset - specialists with extensive experience can receive very good money for it. Let's be honest - you have no such experience with a particular technology. But even if you dive into this technology and get the necessary knowledge - would you like to continue only this whole life? For example, the administration of Oracle DBMS or Aruba network equipment exclusively?
Cons in employment
Separately, I would like to mention the difficulties that occur when changing jobs.
I will call you to work on random keywords in the resumeHR is not looking at the fact that you were engaged in this technology on a small project three years ago. He saw a word similar to a job that needs to be closed, made a counter, and tries to attach you there at any cost, without being interested in your desires and current preferences.
Full stack full stackWhatever you are a broad specialist, you are unlikely to find a place to work with exactly the same technology stack. Someone VMware, someone Hyper-V. Someone loves Exchange, and someone loves Communigate. On the left is Cisco, on the right is HUAWEI. It happens, but extremely rare. However, the intersections are often quite large, and nothing prevents you from tightening up the missing and broadening your horizons even more.
You do not believeYes, that's such a ridiculous and real problem. If you have indicated too much in the resume, you simply will not be believed and will not even try to check or ask about what level you know. Therefore, no matter how ridiculous, the best way is to ruthlessly remove from the resume all information that you consider irrelevant for your future. And even better - to customize the resume for each job.
It's harder for you to find a suitable job.Highly qualified fullstack administrators, and for a normal salary, they are rarely searched for, and an employer with such a vacancy may not always compete in terms of salary with a narrow specialization vacancy. You see a vacancy CCIE, or a narrow specialist in the field of UC, and for fullstack only a couple of vacancies at the skill level and enike salary.
pros
Now, finally, about the delicious.
You can choose who to work nextIt is much easier for you to change the orientation (sorry for the ambiguity) than for a regular administrator. You see a lot in the application, you can understand and understand what interests you. Yes, you have to spend time deepening - but it will be time spent with benefit. Yes, you most likely will have to make some pet projects to try everything you want. But this again pays off handsomely. Some hold houses with entire clusters of Xeon and hundreds of gigabytes of RAM in order to comprehend new things in their free time.
You burn lessIf there is an opportunity to periodically change technologies, then you are less tired of solving the same problems. Of course, if you are not a hardcore fan and do not enjoy simply recovering twenty Exchange boxes for different clients.
It's easier for you to grow as a team leader or architectQuite an obvious plus - the more you understand the overall structure, the more chances you have for growth in a manager. Of course, if you have the desire and communication skills.
You can otdebazhit anythingAn obvious plus. Your systems thinking has reached a level where you can fix anything, anywhere.
Work more fun, more interesting and informative.In one day you can get a lot of new skills and knowledge in completely different things.
Alone, you can create wonderful things at the junction of different technologies.You alone can do what the standard approach requires 3-4 people.
Publish a thin application on a terminal farm via ipsec VPN with GOST support, starting with preparing a firewall, continuing to cut the storage system, add physical hosts, deploy hypervisors, install client OSs and configure load balancing? Easy! You alone can imagine the whole system and implement it without coordination, misunderstandings and delays.
Your solutions are faster and more reliable.By understanding the interaction of different systems, you can choose better ways to combine them. You understand each component better and are not afraid to use it. As an example - let's take the “foul technology” (not my moped, it slipped in publications). In general, the cloud is a wonderful way to solve a huge number of tasks, including scaling tasks. Unfortunately, more and more often I see that cloud solutions are used simply because the admin does not know how and is afraid to configure on-premises, but presents this as an additional plus. And much can be done much cheaper and better if you have at least a superficial understanding of the issue.
You comprehend zenNow you know that there is no technology that is better than others. You know that there is no best database. You can assume that some tool is better suited to your goals ... but you are quite ready to use alternatives, if there are any grounds for that, for example, the qualifications of other administrators. You no longer write articles about synthetic tests designed to show the advantages of one technology over another. You know that a performance gain of five percent is most likely not worth your two man-months. And the time freed from holivars you can finally spend on something useful. For example, to establish a relationship with a girl (for example, let's call her Masha). You now understand that technologies are different, that people are different, and you just need to find the right way to tie everything together. You love the world, and the world loves you. Even when you use it to shoot yourself in the foot.