Live data from Hacker News

Software Developers Should Have Sysadmin Experience

blog.professorbeekums.com

61–70 of 424 posts

Re: Software Developers Should Have Sysadmin Experience

#62
post #2

Somewhat related, I feel that mechanical engineers who design cars should have some experience servicing vehicles. Sometimes engineers will not leave enough space, use weird fasteners, etc. that make a simple job much more complex.

I spent a couple summers working for the sustaining engineering department of a manufacturing company. There was quite an oil boom and they were having trouble hiring enough people for the shop floor, so they had the engineering staff come down to help for a few days. The mechanical engineers would bolt things together, the electrical engineers would do the wiring, etc.

Afterwards, one of the supervisors showed me the difference between wiring done by an electrician and wiring done by an electrical engineer. He pulled on each wire of the relay panel. The wires done by the electricians didn't move, but most of the wires done by the electrical engineers popped right out.

Re: Software Developers Should Have Sysadmin Experience

#63
post #30

Earlier quoted context omitted.

That question doesn't make any sense at all. That's exactly the same as saying: with the rise of do it yourself home repair, how often are plumbers different from carpenters?

I dunno, I think the question makes perfect sense. I am a software developer. I very often write Chef and a metric buttload of glue code in Ruby and Bash and occasionally PowerShell. That I can also write a Rails app and a React-Native app and a Dropwizard app (all things that I've touched this week) in addition to being able to set up Kafka in a fault-tolerant and scalable way is because it's all code. Chef etc. are…

There's reasons we have these classes of people with certain labels. Until the 18th century, buildings were designed and built by "artistan craftsmen", people who had no formal training or education in building things (or in any capacity) but said, sure, I can make you a house. Then it would fall down and kill a family of five. All around the world today, architects and engineers are required to be licensed and prove they know what they're talking about so this doesn't happen. As a result of this process, the whole profession developed and advanced the state of how we build things.

We're lucky that we work in an industry where our work is most likely not going to kill people. We don't have to be licensed to make a claim of who we are or what we can do. But it would be very disingenuous for me to call myself a professional software engineer just because i've written hundreds of thousands of lines of code, and for you to call yourself a sysadmin because you've set up some software. The mark of a professional is understanding at a deep level all of the hidden detail that goes into the work, and if we hold them up to a standard, the titles will reflect that.

So, how often are software developers different from sysadmins? They're always different. They're completely different practices. As a person, you can indeed have two separate successful careers and become both, but that doesn't have anything to do with devops, which is merely the practice of dev and ops collaborating together.

Re: Software Developers Should Have Sysadmin Experience

#64
post #43

Earlier quoted context omitted.

I think your definition of "sysadmin issues" is probably a little more limited than mine or 'wpietri's. I've had frontend developers insist that they could bake configuration settings into their webpacked artifact...which needed to be deployed into multiple environments because of course we weren't rebuilding something that had already been okayed in QA when we wanted to send it to prod. You might say that's not a "s…

I would consider that sort of thing to be part of the required basic knowledge to be a competent frontend dev, so if you want to call that sys admin, then sure, there's a bit of it involved. If it's on your side of the fence then yes, it's your responsibility. I'm not sure how many actual sys admins would consider configuring webpack to be 'sys admin knowledge', but there is a spectrum and it's true that there are so…

You might consider it basic. I would have, insofar as I considered it pretty obvious even when I hadn't written a line of frontend code in five years, and webpack etc. weren't even on my radar then. ;) But my experience has led me to believe that it's not.

I think that's kind of the point of devops, though, is that something like a build system is a cross-cutting concern, that architectural decisions for an application need to involve people across the stack. Classifying somebody as "a sysadmin" is the problem in the first place, which is why I caveated my post as heavily as I did. My experience is that your "devops" or "sysadmin" people functionally become the "junk drawer programmer" who are relied upon for all sorts of weird stuff. I've been at jobs (and at clients) where I had to teach senior backend devs how to use VisualVM or what the implications of using Kafka and CQRS are. I've been at gigs like the aforementioned where I had to explain the ramifications of webpack to people knowledgeable and capable enough to make React dance. And so my definition is probably necessarily more broad...but it's also stuff I've had to do in practice, so, enh.

And, 'cause fair is fair, I think a "sysadmin" who couldn't step in and write production-quality code (allowing for a little ramp-up) is probably an endangered species over the next ten years, too.

Re: Software Developers Should Have Sysadmin Experience

#65
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…

>>> The worst sysadmins get in the way of developers. Ones that scale down your CI server to the cheapest, throttled, one the hosting company has, leaving $800/day contract developers waiting for builds that run in 20 seconds on their laptops take nearly an hour.

How likely is that the sysadmins were told to 'just make it run cheaper, I don't care' by someone higher in the foodchain?

Re: Software Developers Should Have Sysadmin Experience

#66
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 difference between virtual memory and physical memory

For my defense (I'm a dev), OSes don't make it clear. Mac OS becomes extremely slow when I load a big virtual machine and yet displays "Swap 450Kb, 500Mb RAM free". Or with a sole text editor open after a long session it may say "Swap 750Mb". In both cases my logic tells me the swap and free memory should display the opposite, so I can't match my knowledge with the OS behaviour. Then comes Java which adds another layer of memory limitations.

> how many devs deal with such a level of ignorance

I can talk because I was 4 years ignorant, then met the right teams. It's impossible to learn and gain trust in your learnings if you start ignorant, and ignorant devs know it. We constantly need help and don't understand how ticking a weird checkbox in Eclipse makes the compilation different: Without directly executing the original command line, you can't learn anything, and architects in those kinds of companies give you too many proxy tools ("SDK") that you can't improve. You're on an old 14" screen anyway. Also, Windows is so inconsistent and weird that you just assume sysadmin is for people from another planet. My skills only took off 4 years later when I installed Linux, then Mac, and was thrown in open-source libs. It was so easy, in retrospect, and I'm so happy having been in the right context.

Re: Software Developers Should Have Sysadmin Experience

#67
post #30

Earlier quoted context omitted.

I dunno, I think the question makes perfect sense. I am a software developer. I very often write Chef and a metric buttload of glue code in Ruby and Bash and occasionally PowerShell. That I can also write a Rails app and a React-Native app and a Dropwizard app (all things that I've touched this week) in addition to being able to set up Kafka in a fault-tolerant and scalable way is because it's all code. Chef etc. are…

There's reasons we have these classes of people with certain labels. Until the 18th century, buildings were designed and built by "artistan craftsmen", people who had no formal training or education in building things (or in any capacity) but said, sure, I can make you a house. Then it would fall down and kill a family of five. All around the world today, architects and engineers are required to be licensed and prove…

I've read your post two or three times now, and I straight-up don't get what you're driving at. Yes, there are levels of subject matter expertise that you need to know--or at least be conversant enough with to deep-dive when necessary--for system administration. That's also the case for database programming or bioinformatics or graphics programming or whatever. But it is still expressed through the writing of code, in 2016--and that code, largely today and with increasing focus going forward, needs to be well-structured, testable, so on and so forth. It is still the development of software. It's a specialization within the same field. It may not have been twenty years ago; if it isn't generally today, it will be before I retire, and probably a lot sooner than that. And to that end, the question that was originally asked makes a lot of sense, to which the answer is "a sysadmin is-or-had-better-be a software developer; a software developer may or may not be a sysadmin."

"Set up some software," though? The condescension is both unnecessary and built upon some pretty shaky projections on your part. Can we not dance that dance, please? (ETA: Not least because I think your posts, for the most part, are really good and I have a lot of respect for you, especially around security topics.)

Re: Software Developers Should Have Sysadmin Experience

#68
post #2

Somewhat related, I feel that mechanical engineers who design cars should have some experience servicing vehicles. Sometimes engineers will not leave enough space, use weird fasteners, etc. that make a simple job much more complex.

It could be a deliberate form of obfuscation/discouraging of repair, or just the common trend of making things more complex than they really need to be.

That's possible, but lack of insight into what's easy or hard in manufacturing or construction is a pretty common problem. I saw it a number of times when working for a few different manufacturing companies, though none of them built cars.

A failure to understand construction concerns also played a role in the Hyatt Regency walkway collapse. The original design was poor, but redesign to address construction difficulties accidentally weakened the walkways further.

> Havens Steel Company, the contractor responsible for manufacturing the rods, objected to the original plan, since it required the whole of the rod below the fourth floor to be screw threaded in order to screw on the nuts to hold the fourth floor walkway in place. These threads would probably have been damaged and rendered unusable as the structure for the fourth floor was hoisted into position with the rods in place. Havens therefore proposed an alternate plan in which two separate sets of tie rods would be used: one connecting the fourth floor walkway to the ceiling, and the other connecting the second floor walkway to the fourth floor walkway.

> This design change proved fatal. In the original design, the beams of the fourth floor walkway had to support only the weight of the fourth floor walkway, with the weight of the second floor walkway supported completely by the rods. In the revised design, however, the fourth floor beams were required to support both the fourth floor walkway and the second floor walkway hanging from it.

https://en.wikipedia.org/wiki/Hyatt_Regency_walkway_collapse...

Re: Software Developers Should Have Sysadmin Experience

#69
post #65
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…

>>> The worst sysadmins get in the way of developers. Ones that scale down your CI server to the cheapest, throttled, one the hosting company has, leaving $800/day contract developers waiting for builds that run in 20 seconds on their laptops take nearly an hour. How likely is that the sysadmins were told to 'just make it run cheaper, I don't care' by someone higher in the foodchain?

Everyone was told to see if they can find cost savings. This just wasn't one though in the bigger picture and even after being told it wasn't one, even by their line manager and separately the CTO, they pursued it over and over. I don't believe anyone else was directly involved further up the food chain on their side.

All it needed was for the question to be asked on the company's internal board and listen to the answer. Even trying it once or twice and I'd probably have forgotten about it in short order. This went on for a couple of years though!

Re: Software Developers Should Have Sysadmin Experience

#70
post #53
post #39

Earlier quoted context omitted.

I've worked with all kinds - from windows devs who can't figure out how to install visual studio - to people who understand Windows, Linux, and macOS - as well as basic system administration for each platform. The people who are most successful at rapidly developing good high quality software are more in the later group. Would you trust a RF engineer who couldn't troubleshoot his own radio designs? why would you trou…

In fairness to the folk who can't install Visual Studio - it's a genuine pain in the butt. Last time I tried, half of the download links were absolutely non-functional. Their documentation didn't help much, either, since they pointed to the non-functioning links. I got a lot of shit for that one, but felt completely vindicated when it happened to someone else a year later.

`choco install VisualStudio2015Professional`. ;)

After all--we're all developers. Automate!

Post reply on HN