Live data from Hacker News

Software Developers Should Have Sysadmin Experience

blog.professorbeekums.com

121–130 of 424 posts

Re: Software Developers Should Have Sysadmin Experience

#121
It's hard for me to "get into" developers who don't know how the system works. I don't mean they have to be full-fledged sysadmins, but it just seems natural to me that they should have a decent understanding of the electronics, how to assemble the hardware, and what's involved in tuning it and keeping it all running.

It may have something to do with my education being EE, but that's not the heart of it. I never practiced EE. I taught myself (more or less in order) building circuits, programming, building PCs from pieces, and elementary system administration. I know there are lots who never "get" all three, but the best I knew did.

Re: Software Developers Should Have Sysadmin Experience

#122
post #50

This might be controversial, but I don't think you get to be a half decent developer without being a reasonable sysadmin. Maybe my experience is unusual, but I've never worked anywhere that the sysadmins knew more than the developers about how best to run their code in production. And when things go wrong with it how best to find the cause of the issue. And I've never thrown code over a wall without having tested it…

Not particularly controversial at all, from my POV.

I was a sysadmin with various ISPs in various countries for 15 years before I "turned to the dark side". I'd been using Ruby for a few years with Puppet and Chef, and after dealing with one too many "flaky coders", I picked it up.

I have to say, coding is far more enjoyable, though both come in handy in my day-to-day life.

It sounds like you've dealt with a few "BOFH" sysadmins. Don't worry, we're not all like that, and those that have been on both sides of the team will probably see your way.

Tell your boss I'm available (remotely), by the way ;)

Re: Software Developers Should Have Sysadmin Experience

#123
A great reason to have cross-experience at the management level is to understand the different motivations of the two roles: * devs are incented (paid) to introduce changes to the system...mostly in the form of new features. * sysadmins are incented to stabilize the system and make it scale.

In organizations with uncoordinated or siloed management, this leads to infighting... sysadmins try to stop "troublesome" devs from making changes at all and actively slow down changes in the name of stability and developers at the other extreme try to get changes in without caring about stability and blame sysadmins for that.

Great management with experience in both will find ways to incent the teams to introduce regular change while maintaining stability.

Re: Software Developers Should Have Sysadmin Experience

#124
post #72
post #37

I'd say there is too much effort in reasoning on the wrong problem. What worries me the most is the 'why': why do (too) many software developers don't know about sysadmin? I have been involved as a consultant in large software projects in the last two years and a vast majority of money lost in delays and bugs was caused by devs not understanding: 1) the difference between virtual memory and physical memory 2) the dif…

The list of things to learn is endless . The only way we can get anything done on a daily basis is to gloss over the magic being done somewhere else in the system.

But most of the outstanding ones are renaissance people.

Re: Software Developers Should Have Sysadmin Experience

#125
post #114

Earlier quoted context omitted.

A front end developer should understand that a TCP request (i.e what an HTTP request is) consists of a handshake which means to receive a file from a server, it takes roughly 5/6 calls to and from the server. So if your UI consists of 1000 100b files, that's 6000 calls. So you would probably be better concatenating them to a single 10Kb file. But then you need to understand the differences between HTTP 1.1 and 2.0 an…

I guess my point was more that even just if you understand HTTP then you'll get all those insights already. A bit pedantic I suppose. This stuff does get pretty complicated. Mainly because the tech is evolving fast (browsers do a lot of tricks now). Even in HTTP 1.1, there are times where multiple files might be more interesting due to how large files are handled

But can you really understand HTTP without understanding TCP?

Re: Software Developers Should Have Sysadmin Experience

#126
post #50

This might be controversial, but I don't think you get to be a half decent developer without being a reasonable sysadmin. Maybe my experience is unusual, but I've never worked anywhere that the sysadmins knew more than the developers about how best to run their code in production. And when things go wrong with it how best to find the cause of the issue. And I've never thrown code over a wall without having tested it…

[deleted]

Re: Software Developers Should Have Sysadmin Experience

#128
You do not know pain until you've had to deal with government sysadmins as a contracted developer. And the govt has a strong preference for bringing sysadmins into the civil service rather than contracting that work out (like they used to) these days.

Which means the ones with actual, marketable skills aren't working for the government.

Spending months waiting for a sysadmin to perform a task you know takes about 3 minutes is great fun.

Re: Software Developers Should Have Sysadmin Experience

#129

One thing I like about DevOps is never having to hear "it works on my machine!"

I always take the "it works on my machine" as a synonym for "you need to explain your problem better". In my experience most problems that "work for me" are caused by somebody installing an unstable build and patching it with random crap they have thought of.

Re: Software Developers Should Have Sysadmin Experience

#130
post #50

This might be controversial, but I don't think you get to be a half decent developer without being a reasonable sysadmin. Maybe my experience is unusual, but I've never worked anywhere that the sysadmins knew more than the developers about how best to run their code in production. And when things go wrong with it how best to find the cause of the issue. And I've never thrown code over a wall without having tested it…

I have seen this situation too many times (exaggerated a bit):

D: I have noticed that task Frobnicate has not been running in Production for a month, then checked and it is not even added to scheduler!

SA: There is no mention of Frobnicate in the pipeline for scheduled tasks.

D: What pipeline? FancyPancyScheduler is bundled with application and tasks are defined in DB, I have done it in Staging and everything worked, Frobnicate is all the fuss in the team, you must have heard about it, why don't you check for changes in Staging?

SA: We have well defined pipeline to manage scheduled tasks, currently the executing agent is Cron, not FancyPancyScheduler.

---------------------

Developers and Admins have more or less the same goals (stable, maintainable and extensible), but on different pieces of the system (code vs infrastructure). In my short career I have seen problems arise where one party makes plans and changes according to current or even past (it worked like this earlier) state of the other party. This applies to both developers and admins.

So I sort of agree with your sentiment, that developers need understanding of system administration. Though, depending on team size, I believe it is entirely sufficient to have someone in Developement who understands system administration and actual infrastructure, and someone in Operations who understands developement and actual stack. This is where I hope DevOps will end up at: arbitration between Developement and Operations to ensure smooth sailing forwards. Because the debate "I will do it in code" versus "this must be done on the edge" (e.g. static assets in a website. Served by application or web frontend?) will never be resolved.

Edit: formatting

Post reply on HN