People need to keep their environment and infrastructure in shape in order to be productive. You might be a farmer who primarily grows corn, but you also must build a pavement between your house and your farm so you can get to work, and mow the lawn next to it so it doesn't grow over. You have to change your lightbulbs if they go out so you find your way home, and maybe take out the trash every once in a while.
The situation is similar though a tad bit more complicated for smaller communities — like a group of neighbors on a spot of land, or for the inhabitants of a smaller residential building. Somebody has to mop the floors once in a while, clean the common areas and fix busted fittings.
The issues come when we scale things up beyond that — see something like a small village, or a city. In a residential building it's easy to see why it's everybody's problem that the elevator stopped working. In a village however you may find it hard to justify why you should care, that a bench broke at the bus stop when you're only using the train. The village has a lot of people, it's easy for you to hide and shake the responsibility, which you can easily do without caring — until a later time the bench brakes at the train station.
At a small software company when the build breaks, or the servers go down you won't just lean back in your chair saying it's not your problem. Come on, there are like three developers, one of those is on holiday. That leaves the two of you, both of your work being blocked. A small company is like a residential building.
A large company is however more like a country. In a country when you notice a busted street lamp you won't start fixing it. That's why you pay tax and have specialized teams to deal with these issues.
When an ansible playbook that should configure a VM fails somewhere in an automated setup script for tests you cannot just expect a guy from backend development to start fixing it, when he's busy to deliver for a deadline.
I saw companies trying to find ways to have developers acquire a "CI (or) DevOps mindset" so that they keep track of the whole verification chain, develop it, and also keep track of their changes through the highly complex pipelines and fix it if needed. On top of this, integration and verification pipelines become their own product at large companies due to multi-layered release bureaucracy and the highly complex nature of the products that are being developed.
I know that it sounds tempting to imagine that your developers will reach targets effectively and also develop and maintain your verification pipelines at the same time but it's a wild-goose chase.
You simply cannot spare specialized DevOps teams. Unless you're fine with your citizens fixing street lamps for themselves with however dingy ways they can manage.
Top comments (0)