[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SAGE] Complexity of sysadmin scripts/programs in your organization?



Disclaimer:  I am a hardcore perl programmer who wears the disguise of a Sr. Systems Engineer (I've also come around and agree with the earlier thread - I am  a far better system programmer when I'm not also trying to be a system administrator).

There are two key factors:  Programmer Experience and Complexity of the Problem.

An experienced programmer can compartmentalize (i.e. write modules) to manage the complexity of a given problem, and present a nice API down to those with less experience to work with.  

I try to keep those learning how to program away from complicated problems, as they tend to eventually succeed at writing the program, but it tends to be a tangled unmaintainable mess that is easier to rewrite than it is to patch.  (This line isn't always obvious until it's been long crossed however)

I also can't say enough about documentation.  I'm a huge fan of compartmentalizing complex problems into modules and making sure those modules have clear documentation included with them (pod) that detail out how to utilize them.  What you get at the end of this process are a whole bunch of well isolated code pieces that individually are not that difficult for even a novice programmer to maintain.  

With all of this said, I'd like to leave off with a quick (and incomplete) list of modules every perl programming system administrator should know so they can stop reinventing these wheels.

Getopt::Long - Parse command line options (Stop reinventing this wheel)
Config::General - Read in a configuration file (Maintenance should require editing a config file, not the code)
Template::Toolkit - Build Templates for your output (Modifying output should require modifying a template, not the code)
Sys::Syslog - Log to syslog (errors to STDERR are of marginal utility)
DBI - Store persistent data to a database (MySQL is a good thing)
Data::Serializer - If you need simple persistent data storage to a file (Shameless self plug for my module - but it is quite handy)




On Apr 9, 2008, at 7:22 PM, Eric Wannemacher wrote:
I have searched the archives of this list and found some useful
information about whether sysadmins should be programmers and what
people believe is a script versus a "real" program.  I still do not have
a good idea of what people think is an acceptable level of
programming/complexity for the sys admins as a whole.

At some point there is bound to be someone who has enough programming
experience to work on more sophisticated applications that can be very
helpful, but the organization could be in trouble if that person leaves
and no one else has the necessary skills.

How much programming are sysadmins allowed to do in your organizations
and how does the org maintain the level of knowledge to support those
programs after individuals move on?  I am talking about long lived
scripts/programs and not throwaway data cleanup scripts.

Are you limiting the languages that can be used to "scripting"
languages?  Limiting the complexity?  Specifically hiring people with
programming backgrounds?


Thanks,
Eric Wannemacher