System Admins Should Know How To Code
snydeq writes "You don't need to be a programmer, but you'll solve harder problems faster if you can write your own code, writes Paul Venezia. 'The fact is, while we may know several programming languages to varying degrees, most IT ninjas aren't developers, per se. I've put in weeks and months of work on various large coding projects, but that's certainly not how I spend most of my time. Frankly, I don't think I could just write code day in and day out, but when I need to develop a tool to deal with a random problem, I dive right in. ... It's not a vocation, and it's not a clear focus of the job, but it's a substantial weapon when tackling many problems. I'm fairly certain that if all I did was write Perl, I'd go insane.'"
People who've never coded tend to have many "magic boxes" in their thinking about systems. I find it hard to fully trust an administrator who can't at least parse through other people's code.
Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
...and support for that matter.
Next you'll tell me my developers should know how to admin a server and do so at a drop of a hat.
And if you're going to say I'm a programmer then pay me like one. I don't think most sysadmins get paid as much as programmers, and I don't think most companies want to pay sysadmins as much as developers.
Also, developers trying to write tools for sysadmins usually suck at it, unless they've been a sysadmin at some time in the past. I have used a few products lately which are trying to solve all our sysadmin problems, and the one that doesn't suck comes from a dev who is a former sysadmin. And when I talk to him and make suggestions he sees exactly where I'm coming from.
Developers just want to solve use cases that fit neat little scenarios without any corner cases, and it shows when their tool is so inflexible as to be useless.
I'm fairly certain that if all I did was write Perl, I'd go insane.
As a programmer, to me this is like someone equating author and typist. Code is just a medium. Figuring out what to do with it, and how, is the fun part.
You doubling my salary for that extra work? I'm tired of the constant scope creep people keep shoveling in without an increase in compensation.
Do not look at laser with remaining good eye.
I've worked in companies ranging from 5 people to 40,000 (and plenty in between). In the smaller shops I've had to do administration, development, desktop, and customer support. In the larger 'enterprise' shops, I'm constantly amused by the myriad breakdowns in communications caused by folks being incapable of putting themselves in the shoes of their coworkers.
Being a developer made me a better system administrator. Being an admin made me a better developer. Same with operations, support, et. al.
At one point, we *had* to code. Tools didn't exist until we made them. Or at least tools that did what *we* wanted didn't exist until we made them.
I blame Windows weenies for the loss of this skill. They cannot function without pre-packaged clicky things. Nitwits.
A lot of the time you don't want developers administrating other people's gear since you get shit like unnecessary reboots of servers during peak working hours leaving 300 people with nothing to do apart from read newspapers (one memorable example). It's not skills that separate a good developers from a good sysadmin but instead a consideration of inter-related systems and caring about consequences of actions.
Wow..... just wow. As an IT Manager you have failed to grasp the concept of this article, and that is a worry.
They are not talking about sysadmins writing production code - they are talking about using one of a variety of scripting languages to solve sysadmin problems - eg repetitive tasks like backups, deployment scripts etc, maybe even some html status monitoring screens or a cactus plugin.
Not trained? What? Most people I know realize the tasks they do could be automated. However, they do everything in their power to ensure they aren't because they believe it keeps their relatively mindless and easy job "safe". This mindset is prevalent in the public sector and the unionized public sector especially.
I was able to come in and completely revamp a position I was hired to do to expand it to encompass at least 50x more work with a little Access/VBA and some learned-on-the-job DW knowledge.
They are still running the same exact reports I wrote when I left 5 years ago and haven't added a single one to the mix. Someone has now taken over my position and enters text in the fields the scripts prompt for and passes out the paperwork it automatically prints. It's a sad day for our tax dollars.
You have failed to grasp that *anything* that could influence correct operation of a production environment, even a little 'harmless' script that manipulates production systems and/or their data, needs to be managed correctly, assessed for impact (by someone other than the guy that wrote it), tested properly and deployed carefully. Risks to production need to be managed, and the biggest risk I know is a sysadmin with a god complex and a hobby in scripting.
So, you are willing to accept an admin task performed manually, mistake creepage and all. With 500 workstations, there's no guarantee that the last one will be configured the same as the first. After the first few dozen, fat finger mistakes will undoubtedly creep in. By number 400, your admin won't be seeing straight anymore.
When we say "admins need to understand coding" this includes all of the associated issues of testing and configuration control. Perhaps not to the same level of detail as the code for the product. But in some cases, it can come pretty close.
I'd much rather have my admins script everything. And save the script. So when we come running in and ask, "What the **** did you do??!!", they have the exact steps in hand.
Have gnu, will travel.
I've found that what can happen in the large corporate world is that you have Developer teams, Production run teams, various IT infrastructure teams, and the Systems Engineers. Networking gets blamed for every outage because well, they are the common thread that all the bits run over. Storage gets stressed out because it is the last thing anyone thinks about until they need it, and the Systems engineers well the Developers want to play all roles unless they don't want to. Production run sometimes lacks the deeper skills of either programming or IT infrastructure.
Enter Unix Engineers. We are expected to have general knowledge of all IT infrastructure, which we do, we program and script extensively, because our automation depends on it, and we have extensive production application run experience do to managing all the different back end services that everyone depends on. mail, dns, ftp, sftp, web server engines, monitoring, etc. Yes a good sys admin must know how to at least read code and ought to be able to code/script in at least one language even if that is Dos Batch. The problem in the end though is as others point out. The more you know the more production run teams may lean on you to solve their problems. "Just ask the Unix team", Not because it is their responsibility, but because they can solve the problem quickly as they have the widest berth of knowledge.
Coding as a Sys Admin is crucial. Just know when to say I can't(or won't), for your sanity.
There is or can be built a machine that can simulate any physical object. -Church-Turing principle
Been working IT for almost 15 years now. The respect is the same then as it is now. You wade through shit to solve a problem, only later to get bitched at for not finding it sooner when in fact you were originally trying to make a case of how pro-active you've been. Oh, and because I've been wading in shit, I smell bad.
There is no respect in IT and the pay sucks. I'm looking to find another career patch that isn't already tainted with disdain. Fuck this, life is too sort. I'm tired of falling on the sword and not getting any recognition for it...for 15 years.
Life is not for the lazy.