Live data from Hacker News

Software Developers Should Have Sysadmin Experience

blog.professorbeekums.com

321–330 of 424 posts

Re: Software Developers Should Have Sysadmin Experience

#321

Earlier quoted context omitted.

Another perspective: Why don't you want your software to be compatible with the system that your sysadmin provides? (Assuming that system is not completely obsolete). Minimize your dependencies. It's incidentally also what leads to clean code bases.

> Minimize your dependencies. It's incidentally also what leads to clean code bases. You also crush velocity. Smart use of libraries lets you ship code 10x faster. Two identical businesses.. one writes all their own code, one is smart about using libraries. Which one makes it to IPO first, and which goes bankrupt?

If the world has already written 90% of the code I need, how likely is it that the remaining 10% is valuable enough to make a viable business?

Re: Software Developers Should Have Sysadmin Experience

#322

Should sysadmins have software development experience (e.g. DevOps)? For what values should 'X have Y experience?' Should we go as far as... "A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new proble…

Development is sadly the job that is becoming the kitchen sink of "You ought to have skill X" where X is anything from sysadmin, computer science, business, security, product, bare-metal, networking, infrastructure, management, statistics, operating systems, math, social, and industry knowledge. If you aggregate all of the "Every developer should know X" posts and blogs, the list would probably be very long. It only…

I haven't really looked, but I can't think of posts of the form 'Every manager should know X'. From my lack of data, I pose that it's interesting how management is seen as a transferable skill, but software development isn't.

Re: Software Developers Should Have Sysadmin Experience

#323

As a grumpy evil sysadmin, I think the good Professor misses where the real disconnect is, at least nowadays: stack management. Why do things like Docker exist? Because developers got tired of sysadmins saying "sorry, you can't upgrade Ruby in the middle of this project". Why does virtualenv exist? A similar reason. Containerized ecosystems (which is to say basically all of them now) are really a sign of those of us…

As a Sys Admin turned Automation/Tools Engineer, I think you're missing part of the point. You've got the beginning of it right in saying that Sys Admins used to be involved in pinning down versions, and even in why that was necessary, but I believe you're incorrect in saying that the containerization technologies are bad for removing that. Those technologies don't exist so Developers can get around Sys Admins and ig…

Those technologies don't exist so Developers can get around Sys Admins and ignore your helpful advice. They exist to solve that problem that makes the Sys Admins role there necessary. It removes the underlying need for a Sys Admin to worry about the versions. Admins should see this as a good thing, but in my experience many dislike it because it takes them out of their Gatekeeper role. We shouldn't WANT to stop the Developers from from having the newest version of things. They aren't kids playing with toys that we need to nanny over, they're doing work that creates values and the fewer things we do to get in the way of that, the better. If something breaks due to version changes, their testing should catch it. If things are breaking in production, we ought to get involved because there's some other problem, but before that we, as a profession, need to learn to get out of the way and let people work by letting technology handle the problems. The "Gatekeeper" mentality needs to die as quickly as it possibly can

Well - that's all well and good, when put such that "Gatekeepers" are viewed as blockers.

However, we "Gatekeepers" are the ones that get paged and / or yelled at by a CTO when an application keels over. Not the developers. The developers get to sit in their sandbox (otherwise known as "production" in 2016/17) of ever-changing library versions that were only rapidly tested in QA. Then they play a game of Starcraft II, scan HN and go to bed. When something runs out of memory or crashes in the middle of the night, we get paged. So, hell yes we should be involved in the process.

Sincerely,

Gatekeeper

Re: Software Developers Should Have Sysadmin Experience

#324
The unspoken elephant in this thread is that sysadmins and developers have broken relationships surrounded by organizational dysfunction.

Personally, I feel that system administration experience of some sort is essential to development skills, and development experience of some sort is essential to system administration.

Communication and leadership skills are essential to both. It _used_ to be OK if you were the jerk at the office if you were good enough at your job (sysadmin or developer). That's no longer the case because we've progressed well past the point where a single developer or sysadmin can be enough of an asset to look past their ability to work well with others.

Operations needs stability. Developers need to hit moving targets. Sysadmins need to keep things manageable, compatible, and secure. These aren't incompatible goals, and usually when you get the techies talking they are sympathetic towards each other's challenges and helpful to one another. With as many project managers, engineering managers, manager managers, directors, and executives in the mix I wonder if the problems in all these environments isn't more of a historic issue with leadership failings.

Re: Software Developers Should Have Sysadmin Experience

#325
post #253

Earlier quoted context omitted.

No offense intended, but your university probably isn't competing for top engineers. Grad students and postdocs aren't professionals yet either. The sysadmin role has traditionally been a focus in that environment (e.g. controlling access to cluster resources).

Define "professional". And let me claim that "top engineers" are actually the prudent ones - which you didn't refute.

I think we agree on the prudence of professional engineers.

The definition of 'professional' is up for debate, but I'd encourage people to weigh in on the following (to IEEE, not me):

- an appropriate engineering education background (ABET/EAC)[1]

- at least four years of engineering experience in your field and under the supervision of qualified engineers

- passed two exams (the Fundamentals of Engineering [FE] exam, which is now a computer-based test available essentially year round, and the eight-hour PE exam)

- kept current by as a minimum meeting your state's continuing education requirements.

-- http://insight.ieeeusa.org/insight/content/careers/97473

[1] I think it would be worthwhile to consider apprenticeships, equivalent to the 'law office study' path to attorneys' bar certification.

Re: Software Developers Should Have Sysadmin Experience

#326

Should sysadmins have software development experience (e.g. DevOps)? For what values should 'X have Y experience?' Should we go as far as... "A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new proble…

I strenuously disagree with some of these. > Plan an invasion This is actually a massive undertaking. An undergraduate at MIT taking a semester-long course on this will barely scratch the surface of it. Furthermore, you're never going to suddenly and unexpectedly need to know this. Any situation where you plan an invasion is going to be preceded by spending a long time getting into the position where people trust you…

As others have pointed out, Heinlein was writing literature, not management or career advice. That said, planning a modern, distributed web service probably isn't far off in complexity from the invasions he would have been picturing. As for dying gallantly... you're right that we'll all face it only once. Some go bitterly, some go cravenly, some 'rage against the dying of the light'. I'd say part of a life well lived is to face its end with brave, 'gallant', acceptance, whatever circumstance precipitates that end.

Re: Software Developers Should Have Sysadmin Experience

#327

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?

Not the same at all. Let me rephrase the question. Reading the article, the sysadmin is described as the person who constructs and maintains the environment the code runs in, including the physical machines, but also things like dependency management (I infer). Given that just about everything except the physical machine can be handled through devops automation (from experience), and those things don't require "speci…

Software is complicated and error prone and it takes a good amount of skill and time to write it well. Personally, I'm not impressed at all with most software made in an Ops environment. I think it usually sucks and that sucky quality, along with the complexity of debugging and maintaining it, makes it a net deficit to productivity. I have been writing software in Ops for a long time and it is just annoying how little work is done correctly in this space. I think most Ops automation is so error prone that you might as well hire an intern to stare at your network and you'll get as good if not better system stability.

In fact, this is how Ops used to work. You'd use humans to oil the machinery of the basic automation you put in place, and they were damn good at keeping uptime high and catching problems nobody thought of in their automation. Now people just automate and pray, it seems, and then play catch-up indefinitely, or waste time redesigning.

We totally automate the physical machines too. But wherever possible by using tools, not writing software. Honestly I wouldn't want to insult the practice of software engineering by comparing my work to theirs.

Re: Software Developers Should Have Sysadmin Experience

#328

Earlier quoted context omitted.

> Minimize your dependencies. It's incidentally also what leads to clean code bases. You also crush velocity. Smart use of libraries lets you ship code 10x faster. Two identical businesses.. one writes all their own code, one is smart about using libraries. Which one makes it to IPO first, and which goes bankrupt?

If the world has already written 90% of the code I need, how likely is it that the remaining 10% is valuable enough to make a viable business?

Really likely. Code doesn't mean much, it's mostly about how you present it

Re: Software Developers Should Have Sysadmin Experience

#329
post #35
post #32

Having someone who is cross trained is always better than not, but they will be harder to find and more expensive. A frontend UI person who can write their own backends is great. A backend developer who knows javascript and can build their own frontend is great. A coder who manages their own cluster is great too, as is a sysadmin who who can write code. And a developer who can do customer service, and therefore can f…

> All this is to say that someone cross trained will always add more value and will also cost a commensurate amount. Man...I wish the latter was the case. I ended up going into consulting precisely because of the way that salaried employees are valued in tech right now. I literally am all of those things, I am comfortable and have delivered at a high level mobile, web, backend, and infra projects--but the "market" lo…

>Anybody out there: have an opening for somebody who can deliver value at literally every level of your engineering organization while always being game to help bring your other developers up?

Sure just do our HackerRank coding challenge and implement some algorithm that will be completely irrelevant to your job in a web browser under time pressure.

Re: Software Developers Should Have Sysadmin Experience

#330
post #27

No. Developers do not necessarily need any experience as a sysadmin and I would advise against moving productive developers into this role for the purpose of misguided training. The argument about understanding how code scales beyond one computer is fallacious. In fact it's quite easy to learn and practice all kinds of distributed high scale architectures without getting up from a desk. I will agree it's important to…

I strongly disagree with this, from experience. There is no difference between a "developer" and a "sysadmin" in a healthy shop in 2016. It's all the same job. Until you actually put something into practice in a hostile environment you have no idea what rakes are going to be in that yard. I would be a bad developer if I did not understand how the systems my code runs on worked. I would be a bad sysadmin if I couldn't…

>There is no difference between a "developer" and a "sysadmin"

Ridiculous. Many developers have specialties that take years to gain proficiency. If there were no difference we could just replace a math PhD doing computer graphics with a sysadmin. Sometimes it's possible, but the blanket statement does not hold up.

>I would be a bad developer if I did not understand how the systems my code runs on work

I agree, but so what? Becoming a sysadmin is not the only way to do that. You shouldn't confuse what you've seen work, with being the only way something can work.

>[your] mindset is why "devops engineers" get hired and very often end up being burnt at both ends

You’re reading way too much into this. I never said a sysadmin rotation couldn't be helpful for some. I said devs don't necessarily have to do it to be great at their jobs. I wouldn't pull a dev who was, in the zone so to speak, being highly productive into a sysadmin role misguidedly thinking it would have no impact on delivery.

>[sysadmins are] able to solve the problems that the incurious developer cannot

I never implied I wanted “incurious” devs who couldn't solve problems to the extent they needed a “savior” as you put it. Maybe you are projecting your past experiences onto others based on overzealous inference? I didn't say what you suggested, and I don't believe it.

> please excise the word "fallacious" from your vocabulary

What are you talking about? The definition is “based on a mistaken belief”. I claim the argument that devs cannot understand scale out architecture without being a sysadmin is based on a mistaken belief. Why are you so against that word?

Post reply on HN