Good article. I would offer the following skills:
- Attention to detail.
- Logically break down large, complex systems into manageable sub-systems.
- Read and write technical system documentation.
- Understand and communicate customer impact from system changes.
- Analyze log files and system output.
- Learn new software and system architectures.
Also, add "swiftly" to most of those skills.
I fully agree with the skills you listed (Troubleshooting, Scripting, and Time Management). As for where you learn these skills, some are innate (attention to detail), but most would come from job experience and on-going education.
Heck yes -- the ability to break a large, complex anything (task, system) into manageable parts is something that is essential to a good sysadmin. Or a project manager, for that matter... I always liken a project plan to software written in assembler.
The other one that stands out for me is "understand and communicate customer impact from system changes." Explaining things in plain English to a customer, and knowing what to tell them and what not to tell them is essential.
I've found that curiosity is key. Any sysadmin can reboot a Windows server so DNS starts working again. A good sysadmin will be personally curious about *why* DNS crapped out, and will investigate the cause.
In my mind, it is simple... It doesn't matter what you do in life.
What sets appart the "good" from the "not as good" is the passion for the job...
If you like what you do, then, chances are you will be very good at it.
You will take the extra time to make sure every angle is covered.
You will find creative ways to improve some processes...
You might even log in remotely after hours (without renumeration) just to keep an eye on things... Just because "it's your baby".
Reverse the tables and you have someone who cuts corners and/or that will omit a few "verification steps" just to get rid of a task and/or will find creative ways to "not to do" something.
That's my grain of salt...