Este tercer capítulo trata acerca de la eficiencia, una de las calidades del software a la que se le debe rendir tributo.
- Las tecnologías de proxies, cachés o mirrors pueden reducir el uso de ancho de banda y tiempo en instalaciones a través de Internet y en general.
- Evitar instalaciones manuales a gran escala.
- Utilizar el clonado de sistemas siempre que sea posible.
- Crear y mantener plantillas de sistemas y aplicaciones.
- Optimizar el uso de recursos: memoria, CPU, discos, procesos, etc.
- Esto es de vital importancia cuando se utilizan tecnologías cloud en modo de pago por uso.
- Aunque se cuente con exceso de recursos, se debe optimizar el uso de los mismos para contemplar todos los aspectos y escenarios posibles: picos de carga, tiempos de respuesta, espacio para backups, crecimiento y escalabilidad de los datos a lo largo del tiempo.
- Automatizar absolutamente todas las tareas que sean rutinarias o repetitivas (este punto abarca todo un capítulo en sí mismo).
- Pensar en grande (tener la escalabilidad en mente en todo momento).
- La eficiencia es la madre de la escalabilidad: ningún sistema ineficiente puede escalar bien.
- Optimizar el uso del tiempo.
- Saber distinguir cuándo una tarea tiene el potencial de ser rutinaria o
repetitiva para invertir tiempo en su automatización.
- Fallar en este aspecto puede provocar que se pierda tiempo automatizando una tarea que no es rutinaria ni repetitiva.
- Saber distinguir cuándo una tarea tiene el potencial de ser rutinaria o
repetitiva para invertir tiempo en su automatización.
- Documentar es ganar tiempo.
- Dejar de lado el primer mandamiento es garantía de desperdiciar considerables cantidades de tiempo a corto, mediano y largo plazo.
- Planificar el uso del tiempo.
- Crear TODO lists.
- Asignar prioridades (y recalcular siempre que sea necesario).
- Hacer uso de algún sistema de gestión de proyectos (como por ejemplo Trac) puede ser de gran ayuda para planificar tareas y optimizar el uso del tiempo y recursos humanos.
- Aprender a postergar solicitudes que tengan baja o nula prioridad (un ejemplo es el típico escenario en el cual un usuario pide ayuda por un ratón defectuoso, en el preciso momento en el que estamos migrando a una nueva versión de una aplicación crítica en producción).
- Combatir la procrastinación (consultar a un experto en la materia).
- Crear TODO lists.