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?
Software Developers Should Have Sysadmin Experience
321–330 of 424 posts
Re: Software Developers Should Have Sysadmin Experience
#322Should 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…
Re: Software Developers Should Have Sysadmin Experience
#323As 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…
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
#324Personally, 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
#325Earlier 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.
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
#326Should 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…
Re: Software Developers Should Have Sysadmin Experience
#327Earlier 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…
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
#328Earlier 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?
Re: Software Developers Should Have Sysadmin Experience
#329Having 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…
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
#330No. 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…
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?