4 ms·
Sounds like a recipe for disaster. I’m a good programmer in my domain. I have enough ego to believe that I could probably figure out how to install things and
by AgentOrange1234 7y ago
Sounds like a recipe for disaster.
I’m a good programmer in my domain. I have enough ego to believe that I could probably figure out how to install things and get them working... for awhile.
But I know that in the long run I would fumble it so badly. I don’t follow security bulletins, I don’t know the first thing about how to set up database backups, I don’t know how to configure a web server, and so on...
- eximius 7y agoI think you should be able to set up database backups (it can affect your overall architecture, so someone in development ought to know). I think you should be able to configure a web server for the same reason. Security dependencies/updates? Those are largely transparent and a matter of noticing and updating. Operational changes like updating a systemd config or something. They affect your platform but not your application.
- kthejoker2 7y agoWho know it was all so simple? Everyone should just be a jack of all trades and master of none! Underestimating the complexity, variety, and difficulty of all the tasks of delovering professional-grade software is the biggest challenge in the industry. It's like telling a soccer player to be his own cook, trainer, and psychologist. Specialization means letting the law of comparative advantage do its thing. It has nothing to do with "what I'm able to do" and more about being optimally efficient.
- eximius 7y agoI didn't say it was simple. I didn't say you needed to abandon mastery of a field of your choice. It is hard. But a soccer player should know how to make pasta, cook meat so that he doesn't get sick, even if he isn't a gourmet chef. He should be able to do physical activity without harming himself, etc. We should all be generalists to some degree. Where on that spectrum of specialization we should be satisfied is a valid debate. I also don't disagree that there are costs/inefficiencies generated by being more generalists vs more specialized. But it also depends on the size of the organization you can rely on. If I work at a startup, I may need to be more of a generalist. If I work at FAANG, I can specialize because I can depend more on the specializations of others.
- danharaj 7y agoHow did you get good?
- taneq 7y agoI don't think "developers should operate the software they write" means "developers should be sysadmins", more that developers need to be tightly coupled to the actual uses of the software they're developing. You can't write good software in a vacuum, no matter how carefully you analyze requirements and specify functionality. You just can't. You need to be close to the users. Even if you can't eat the dog food yourself, you need to watch the users eating it.
- majewsky 7y agoExactly. The org (and all constituent team members) needs to think about problems end-to-end. When you notice a problem, setup monitoring to collect metrics about the problem and alert on it before it becomes a downtime. Have ops write down their experience with that problem into a playbook, then have dev figure out which parts of the playbook can be automated, or if the system design can be iterated to remove the problem class altogether. If you're a dev and you don't listen to ops, you're just as doomed as an ops guy who doesn't read the dev's manuals.