Automatizar nuestras tareas es algo especial. ¿En qué otra carrera podemos programar máquinas para que hagan nuestro trabajo? Ojalá fuera tan fácil. Automatizar algo lleva tiempo, pero la recompensa puede ser enorme.
Este capítulo no pretende enseñar Perl, Python, Ruby, Unix shell, VBasic o Kix32. En su lugar, este capítulo trata sobre por qué automatizar, qué automatizar y cómo automatizar. También incluiré algunos atajos que me han ayudado a lo largo de los años.
La automatización tiene el beneficio obvio de reducir el trabajo para usted porque la tarea se vuelve más rápida de hacer o a través del cron de Unix o el programador de Windows ocurre automáticamente sin ninguna intervención. Un beneficio inesperado es que una tarea automatizada es más fácil de delegar. Cualquier tarea que puedas endosar a otra persona es una victoria especial.
Adam Moskowitz, un conocido SA, me dice que su prueba de fuego para saber si algo está “suficientemente automatizado” es que puede delegar la tarea en alguien menos capacitado. Por ejemplo, una vez, automatizó las copias de seguridad del disco de su empresa hasta el punto de que la secretaria de la compañía pudo encargarse de las tareas diarias de cambio de cinta. Cada día, el sistema les enviaba un correo electrónico a ella y a Adam con el estado de la copia de seguridad de la noche anterior. Normalmente, el sistema se limitaba a dar instrucciones sobre las cintas que había que cambiar. Si se producía un fallo, ella sabía que no debía tocar el sistema hasta que Adam hubiera solucionado el problema. Con el tiempo, fue capaz de modificar el software para manejar más y más casos de fallo. Pronto el sistema pasaría meses sin requerir su intervención.
En este capítulo, utilizaré los términos “script” y “programa” para referirme a cosas diferentes. Script implica un programa corto, posiblemente sólo unas pocas líneas. Un script suele ser un archivo BAT, unas pocas líneas de Perl, o un pequeño archivo de shell de Unix. Utilizaré el término programa cuando me refiera a un programa más largo, que requiera más reflexión y planificación. Los programas suelen escribirse con un proceso más formal que incluye la recopilación de requisitos, el desarrollo y las pruebas. Los programas tienden a escribirse en lenguajes compilados como C++ y en lenguajes interpretados que se adaptan a programas grandes como Perl, pero no siempre es así. Los programadores de Perl, por ejemplo, suelen referirse a su código como un script de Perl si es pequeño y un programa de Perl si es grande.