13.2 - Cómo Automatizar
Para automatizar algo, primero hay que hacerlo manualmente. Luego se escribe el código para cada paso. A continuación, se juntan los pequeños trozos de código, probando cada adición a medida que se añade. Por último, se prueba todo el sistema.
13.2.1. Paso 1: Hacerlo manualmente
El primer paso para automatizar un proceso es asegurarse de que puede hacerlo manualmente. Documente cada paso y asegúrese de que puede escribir código para realizarlo. A continuación, pon todas las piezas juntas.
Muchas veces un protégé ha venido a pedirme ayuda para automatizar algo. “¡He trabajado en este problema durante horas! Estoy completamente atascado”, me dice.
“Bien”, le respondo, “muéstrame cómo lo harías manualmente”.
“No lo sé. No puedo averiguarlo”.
“La raíz de tu problema es precisamente esa, joven padawan. ¿Hmmm?”
Como se comentó en el capítulo 12, una de las ventajas de documentar un procedimiento es que escribir los pasos es la clave para poder automatizar algo. No estaba bromeando. De hecho, cuando no tengo tiempo para automatizar algo, escribo el procedimiento paso a paso en mi Wiki indicando a otra persona cómo hacer la tarea. Cuando hago eso, he logrado dos cosas. En primer lugar, he contribuido a la documentación de cómo funciona nuestro sistema. En segundo lugar, he realizado el primer paso de la automatización del proceso.
Documente los pasos y luego automatice. Si no puedes escribir los pasos, nunca sabrás cómo automatizarlos.
El proceso de escribir los pasos te obliga a identificar todos los pasos. A diferencia de tener todos los pasos en la cabeza, puedes mostrar el documento a otras personas para que verifiquen el proceso.
Si no tienes una Wiki, puedes utilizar papel y lápiz o un archivo de texto. Haz los pasos manualmente y anota los pasos. Cualquier comando que escribas debe ser pegado en el documento de texto.
13.2.2. Paso 2: Codificar cada Paso
Convierta cada paso en algo que pueda hacerse desde la línea de comandos o dentro de un programa corto. Pruebe cada paso individualmente. Es decir, puede escribir una serie de pequeños scripts, cada uno de los cuales verifica que el código que tiene para ese paso en particular es correcto.
Si algún paso implica una interfaz gráfica de usuario (GUI), debes encontrar los equivalentes en la línea de comandos. Algunos sistemas operativos facilitan esta tarea. Por ejemplo, el System Administration Manager (SAM) de HP-UX tiene un botón que puedes pulsar para obtener el equivalente en línea de comandos de la acción que va a realizar. Mac OS X cuenta con Automator y AppleScript, que permiten automatizar procesos que normalmente se realizan a través de la interfaz gráfica de usuario. Windows tiene muchas herramientas diferentes que son similares. Sin embargo, las herramientas que automatizan la pulsación de botones pueden no ser tan útiles como la configuración directa de varias claves del registro o entradas LDAP.
Libros recomendados para administradores de Microsoft Windows:
- Windows Server Cookbook (O'Reilly). Puedes aprender mucho de este libro leyéndolo de principio a fin. Te sorprenderá la cantidad de cosas que pensabas que sólo se podían hacer a través de la interfaz gráfica de usuario y que se pueden programar fácilmente mediante una serie de actualizaciones del registro. Te abrirá la mente a las posibilidades. Los ejemplos están en muchos lenguajes, generalmente VBasic y Perl.
- Perl for System Administration (O'Reilly). Este libro es particularmente bueno si usted administra tanto sistemas Unix como Windows. Está centrado en Perl (obviamente) y las personas con experiencia en Unix pueden sentirse más cómodas con él. Es particularmente bueno si usted es un gran usuario de ActiveDirectory y/o LDAP.
- Win32 Perl Scripting: The Administrator's Handbook (Sams). Este es también un buen libro, especialmente si eres nuevo en el scripting.
Libros recomendados para administradores de Unix/Linux:
- Perl for System Administration (Ver la descripción completa en los libros de Windows).
- UNIX System Administration Handbook (Prentice Hall PTR). Este libro no sólo enseña los fundamentos de la administración de Unix, sino que también incluye muchos recursos y herramientas valiosas. La mayoría de los ejemplos utilizan la línea de comandos, lo que significa que se pueden programar fácilmente.
- Essential System Administration (O'Reilly). Otro excelente libro que incluye muchos ejemplos de línea de comandos.
- Advanced Bash-Scripting Guide. Visite http://www.tldp.org/guides.html.
13.2.3. Paso 3: Reunir los Pasos
Una vez que el código de cada paso funciona, puede reunir el código de cada paso en un gran script.
Incluso cuando se reúne el código, es mejor añadir un paso a la vez. Prueba después de cada nuevo paso que se añade. Esto se llama desarrollo incremental y es la mejor manera de probar la automatización. Al probar después de cada pequeño cambio, estás más seguro de que todo el asunto funcionará cuando hayas terminado.
Por ejemplo, cuando contratamos a una nueva persona, tenemos que crear su cuenta en el directorio LDAP, configurar su espacio web en nuestro servidor web interno y probar su cuenta para asegurarnos de que se ha creado correctamente. Cada uno de estos pasos puede ser automatizado individualmente. Verificamos que tenemos comandos que funcionan para cada paso. Luego ponemos el primer conjunto de comandos en un script y probamos sólo eso. Nos aseguramos de que el procesamiento de opciones de la línea de comandos funciona, cualquier comando de depuración que queramos que funcione, etc. Ejecutamos el script y nos aseguramos de que las entradas LDAP son correctas. Una vez que todo esto funciona, añadimos el siguiente grupo de comandos y lo probamos. Nos aseguramos de que las entradas LDAP siguen siendo correctas, y luego comprobamos que el espacio web interno existe. Entonces añadimos el siguiente paso y probamos todo de nuevo.
13.2.4. Paso 4: Probar todo Junto
Finalmente, probamos todo el conjunto. Si hemos probado cada paso a medida que lo añadimos al programa, en realidad hay muy pocas pruebas que hacer.
A los programadores no les gustan las pruebas. Quieren que las cosas funcionen a la primera. Al integrar las pruebas en cada paso del proceso, las pruebas no parecen demasiado laboriosas y, como resultado, hay mucho menos que hacer al final.
- Prefacio
- Cómo leer este Libro
- Capítulo 1 - Principios de la Gestión del Tiempo
- 1.1 - ¿Qué es lo Difícil de la Gestión del Tiempo?
- 1.2 - Los Principios de la Gestión del Tiempo para SA
- 1.3 - No será fácil
- 1.4 - Resumen
- Capítulo 2 - Enfoque versus Interrupciones
- 2.1 - El Cerebro Concentrado
- 2.2 - Un Entorno que Fomente la Concentración
- 2.3 - Interrupciones
- 2.4 - Cómo Alejar las Interrupciones de ti
- 2.5 - Se puede decir "vete" sin ser un imbécil
- 2.6 - Resumen
- Capítulo 3 - Rutinas
- 3.1 - Ejemplos de rutinas
- 3.2. Cómo desarrollar tus propias rutinas
- 3.3 - Cómo eliminar las viejas rutinas
- 3.4 - Resumen
- Capítulo 4 - Sistema "El Ciclo"
- 4.1 - No confie en su Cerebro
- 4.2 - Por qué fallan otros Sistemas
- 4.3 - Sistemas que Funcionan
- 4.4 - El Ciclo
- 4.5 - Resumen
- Capítulo 5 - Sistema El Ciclo: Lista de Tareas y Reuniones
- 5.1 - Un Día de Muestra
- 5.2 - Otros Tips
- 5.3 - Cómo configurar un PAA para utilizarlo con El Ciclo
- 5.4 - Configuración de una PDA para su uso con El Ciclo
- 5.5 - Resumen
- Capítulo 6 - Sistema El Ciclo: Gestión del Calendario
- 6.1 - Cómo Utilizar su Calendario
- 6.2 - Un solo Calendario para los Negocios y la Vida Social
- 6.3 - Repetición de Tareas
- 6.4 - Conozca sus ritmos personales
- 6.5 - Conozca los Ritmos de su Empresa
- 6.6 - Resumen
- Capítulo 7 - Sistema El Ciclo: Objetivos de Vida
- 7.1 - El Truco Secreto
- 7.2 - Fijación de Objetivos
- 7.3 - Planificar los Próximos Pasos
- 7.4 - Programar los Pasos
- 7.5 - Revise sus Objetivos con Regularidad
- 7.6 - Resumen
- Capítulo 8 - Priorización
- 8.1 - Priorizar sus Listas de Tareas
- 8.2 - Prioridades de Proyectos
- 8.3 - Peticiones de tu Jefe
- 8.4 - Resumen
- Capítulo 9 - Gestión del Estrés
- 9.1 - Sobrecarga e Instrucciones contradictorias
- 9.2 - Tiempo de Vacaciones
- 9.3 - Yoga, Meditación y Masaje
- 9.4 - Resumen
- Capítulo 10 - Gestión del Correo Electrónico
- 10.1 - Gestión del Correo Electrónico
- 10.2 - Cómo Poner en Marcha el Proceso
- 10.3. Resumen
- Capítulo 11 - Eliminar las Pérdidas de Tiempo
- 11.1 - ¿Qué es una pérdida de tiempo?
- 11.2 - Evitar las Pérdidas de Tiempo mas Tentadoras
- 11.3 - Pérdidas de Tiempo Comunes
- 11.4 - Reuniones Inútiles
- 11.5 - Estrategia vs Táctica
- 11.6 - Resumen
- Capítulo 12 - Documentación
- 12.1 - Documente lo que le Importa
- 12.2 - Tecnología Wiki
- 12.3 - Resumen
- Capítulo 13 - Automatización
- 13.1 - ¿Qué automatizar?
- 13.2 - Cómo Automatizar
- 13.3 - Cosas Sencillas que se Hacen a Menudo
- 13.5 - Permitir a Otros Hacer Operaciones con Privilegios
- 13.6 - Resumen
- Epílogo