I have worn a lot of hats in my career and I am beginning to think that Infrastructure and Administration are equal in complexity to the programs running on those components. Are the pay rates nearly equal? What does the market say?
As luck would have it, my boss just wrote an article comparing operations to development: What is web operations? as well as addressing that ops isn't (or shouldn't be) something for failed developers, as it is sometimes presented.
I think sys admin is very difficult.
- You generally need to maintain programs that you have not written, and with little or no documentation.
- Often you have to say no, I find that very difficult.
- Instrumentation, or good error message is hardly ever done well enough to be useful (especially the custom software)
- Your expected to keep an environment running on the bare minimum and then when recovery is going to take 4 hours everybody is unhappy
- Your knowledge needs to be incredible broad
- Being able to associate a small change to a failure on a seemingly unrelated section is usually to blame for outages
- Usually very strong permissions, that means that you could break a lot of things
I think developers have it easy, and don’t take their jobs seriously enough. I would like to see myself as a software engineer, but that would be an insult to the really good software engineers out there.
In engineering you don’t guess at the possible cause of the problem. You look at the facts / error logs / things that you can use to identify the problem. Make a hypothesis and test your hypothesis for truth, then and only then do you make a recommendation to resolve the issue that you having on a production server.
I too often see people making wild assumptions, and justify their outrages claim with, that is how I think it works. Is that an opinion or a fact? I think that is dangerous and irresponsible. If you want to go and think about something and give an opinion on it, go do philosophy or something similar. But when you’re working on sites with thousands of users, I don’t give a hoot about what you think, tell me what you know for a fact.
I have worked with brilliant server people before, and most often if you as developer say to the server admin, I think the following is the problem, and this is how we can prove in a different safe environment that, this is in fact the problem. Then we spend some time fixing the problem based on this assumption in a safe environment, and we can then with confidence say that this is in fact the problem. And follow these steps to resolve the problem on the production systems. It takes a certain amount of guts, and honesty I think to admit this, and generally people don’t want to admit they don’t know something. I think not knowing something is a given, but people that imply that they know something and don’t, is lying and dangerous.
I also think that there is an aspect of creativity to software development, however I think good code is often tedious and boring, and above all predictable, simple, and consistent. And those characteristics are generally not associated with creativity. Software engineering is a science and I wish we can find a better way for developers and the guys and gals that keep development systems going to understand more about each other’s jobs.
Rihan Developer that had the privilege to work as sys admit for the first part of my career.
As far as I'm concerned I'd rather be paid penuts doing something I love than earning a lot doing something I hate.
Infrastructure can be exceptionally complex, just as complex as the programs, and just as important. A programmer may be responsible for ensuring that his/her application runs as efficiently as possible, but if the infrastructure is sub-standard then it doesn't matter how good their skills are. You can't run an application if your router goes offline every 20 minutes.
If you want to compare markets, then jump on your local job board to see what's avaliable. We've been looking to hire someone in Sydney for a few weeks and there's been precious few applications, which to me says that the IT sector has not suffered downturn from the economic 'crisis' nearly as much as other industries have. Which makes job searching difficult, but security pretty good, so if you have a position you're happy in, and you enjoy it, stay there while you can ;)
Sys admining and programming have different challenges. Whether one is easier than the other depends on your personality, strengths and weaknesses and on the environment.
I used to be a programmer, I'm a sys admin now.
Lots more multitasking as a sys admin. Probably less kudos too. Programmers have easily visible successes. They add a feature, or fix a bug.
Sys admin's for the most part only have noticeable failures. The mail stopped working.The shares when away.
On the other hand as a sysadmin, you normally don't have to keep the state of an entire program in your head - at least not as often.
Although in some sysadmin roles there is a lot to keep in your head, especially in complex environments with apps with lots of interconnections.
Sys admins depending on role, environment and disposition, do get to program if they want. They often write tools for themselves and for other staff to use.
E.g. where I work we have a database with a web front end for managing DNS and generating DNS and DHCP files.
As far as I can tell most places the pay is about even. In some places I suspect programmers might get a slight edge, but those will be places like banks where the programmer is writing bespoke apps that have billions of dollars going through them. I don't think that applies to "average" (whatever that is) programming jobs.
In terms of easier, I think it depends on what/how you go about doing the sys admin. lets say you manage infrastructure for a large corp - it might be easier if you purchase an off the shelf package and configure it vs custom inhouse make it.
And it also depends on how big the getup is - if you work for a small company, where you are the only IT guy, it might be hard to wear so many hats at the same time, where as in a large corp, you are most likely part of a large team, with a few discrete responsibility. And if you work for a big corp, most likely you will be paid "more" doing your job, where as in a smaller shop, you would be paid "less" doing more stuff than - i.e., the responsibility to pay ratio is high in a small shop*.
(*) but the big plus with a small shop is you tend to control things, and the environment tend to be more friendly/family like, where as in a big corp, you would just be a fish in a big lake
Nothing worth of good pay, or success is easy.
If I can elaborate, it depends on what your goals are.
Finding a meaningful, fulfilling, satisfying role that stays that way is a challenge. There are some things money can't buy (but can help with though).
The one thing I've found over and over with people happy in their life's work/work in life is that if you do something you love, the money comes.
If you look for the money first, you are not guaranteed happiness, because we all know lots of people with money that have no clue of how to treat others or themselves, before they had money, or after.
I think each can be fulfilling in it's own ways, and they share qualities as well as have their unique parts. One thing is true for sure. If you don't do either in your own time, you don't truly love it, and that means you won't get really really good at it, which means you will be less likely to find the great opportunities of success.
There's not much different between salary for a sysadmin and a developer... But about which one is easier, I think system administration is based on experience while programming is based on creativeness. That’s why you might find good programmers who can do sys admin well but not vice versa ;-).
Yes, I’m a coder :-)
I believe the personality and work ethic of the individual determines which is easy/hard. I have worked with sysadmins who seem to have nothing to do because they always plan, script, and document as part of their work progress. Same with programmers... unfortunately I have been fused at more for being "out of work" programming cause I got my stuff done early more than I have ever been fused at being late or behind on a project!
It seems if a project comes in on time or early, the mentality is either we didn't give person X enough work for the time or they missed something... LOL!
Oh well, I guess Scotty had it right, always exaggerate the time it takes to complete something so they think you are a miracle worker!
Both jobs have their challenges and rewards... just do what you love and everything else will fall into place.
Mind you that it are programmers who create the software/tools that make the lives of sysadmins easier... although one could say that about the developer tools programmers use as well ;-)
Actually a good programmer is a lazy programmer... See this answer (on stackoverflow) for an explanation.
Maybe that can be said from a sysadmin as well?
Concerning the pay: I'm a programmer myself (but I think you already figured that out ;-) and inside programming there's already such a big difference in pay (between e.g. a web developer and a embedded c++ developer), I suppose that's the same in system management. It's all dependent on your field of expertise and your experience in general.
The complexity for a Sys Admin is based around many complex components created by others, all of which have to be understood to a certain level to get them to work together. I found with hardware and networking components, there has to be a lot of understanding of what's in each and every box.
Whereas the bulk of the complexity of a developer is focused on the section of code he is writing, and he just has to work with interfaces (using the term generically) that others give him, he doesn't have to understand a lot of the nitty-gritty details of their code.
I've seen the pay as being equivalent.
I'm still at the nascent end of my career, but already I have experienced a role as Junior Programmer and Junior Sysadmin.
I generally agree with the responses presented here, and would like to reinforce the opinion that you should go for a job that aligns with your strengths and minimizes your weaknesses. My tract has been from Programmer to Sysadmin, and am generally enjoying it.
So I wouldn't exactly call one "easier" than the other, it just depends on your strengths.
The question shouldn't be which is easier, they are both equally "hard". What really matters is what the individual contributes to their profession. Software developers will not for the majority make good system administrators and vice versa.
What I can say is that both career paths become a bit easier if you understand a small piece of what your counterpart is doing i.e. a system administrator being able to look at code and do rudimentary debugging on it.
A second set of eyes with a different skillsetted brain can spot problems or suggest potential solutions to an entire team of highly skilled developers by simply knowing the extra information that is underlying to the operation of that page/program, etc. and vice versa, a system administrator should be able to take advice from programmers on why a certain aspect doesn't work, etc.
It's not a competition to see who is smarter, who works harder, etc. Everyone brings different things to the table, and it is only by communication and team work that things get done and programs get written.