I think the briefest way to sum up the difference between a good developer mindset and a good sysadmin mindset is “a good developer thinks, ‘how will this work?’ and works accordingly. A good sysadmin thinks, ‘how will this break?’ and works accordingly.”
Developers think in terms of “edge cases” and “off by 1″ errors, which start from a default of things working. This is good as a design skill; developers need to think algorithmically, pondering a main way of something functioning and then dealing with anomalies.
However, sysadmins tend to install systems and maintain them with scripts, as opposed to building new software — usually. Sysadmins deal with systems when anomalies happen, so they must have a mindset of “how will this break?” vis-a-vis — “how will this break and how can I be notified of the breakage before my boss/the customers call?” which leads to “what if the notification system …
[Read more]