Administración de proyectos

Inspirado en las Debian Lessons, de Lars Wirzenius, ofrezco aquí algunas ideas prácticas para llevar adelante proyectos de software, o de otra índole.

Asegúrese de que las cosas puedan escalar. Los inconvenientes siempre son simples cuando los proyectos son pequeños. Cuando el número de sistemas y personas involucradas crece, los inconvenientes se transforman en grandes inconvenientes. Organice las cosas de manera distribuida, para que los temas puedan ser resueltos en paralelo

Asegúrese de que las bases son buenas. Dedique tiempo a pensar y planificar qué es lo que se desea, y a dónde se quiere llegar; observe las distintas posibilidades y herramientas, cuáles son más prácticas o cuáles parecen ser más útiles a largo plazo, sin dejarse llevar por sentimentalismos. Sea pragmático al elegir una u otra opción

Documente las cosas importantes. Cuando las personas necesitan trabajar juntas, deben tener claros los objetivos y procedimientos. Deben saber qué es lo que hicieron los que los precedieron en los mismos asuntos, y deben dejar escrito cómo resolvieron los temas, y por qué lo hicieron de determinada forma

Automatice tareas repetitivas. Casi cualquier tarea repetitiva puede ser automatizada de alguna manera. En particular si son críticas o requieren trucos para ser resueltas. Automatizar reduce los errores humanos y libera a las personas para realizar tareas más importantes

Avite los puntos simples de falla. Evalúe e identifique aquellos procesos, personas o sistemas que pueden provocar una parálisis del proyecto. Documentar, entrenar a varias personas para lo mismo, o aplicar redundancia en los sistemas pueden evitar que la falla de una sola cosa provoque la detención del proyecto

Establezca objetivos realistas. En cualquier proyecto, especialmente los grandes, los tiempos suelen alargarse. No se preocupe demasiado por ello, pero se debe hacer el esfuerzo de cumplirlos

Facilite el trabajo independiente. Cuanto más interdependencias tengan las cosas, más tiempo se perderá en discusiones sobre cómo deben interactuar, y por lo tanto más probabilidades de que una sola cosa o persona provoque grandes inconvenientes. Por ejemplo, si un sistema debe interactuar con varios servidores, es mejor tener un archivo de configuración para cada una de las conexiones, en vez de uno solo para todos. Algunos temas, como la seguridad, deben ser decididos en forma centralizada

No sobrecargue a los desarrolladores. Los desarrolladores tienden a introducir errores en el código, o a ensuciarlo, cuando se les exige demasiado. Establezca reglas claras y simples para el trabajo, y divida un gran proyecto en pasos pequeños, fáciles de cumplir y controlar. Asimismo, no permita que ellos mismos se sobrecarguen con tareas, tratando de hacer demasiadas cosas en demasiado poco tiempo

Sea abierto y haga las cosas públicas. Si sus productos son populares, sus usuarios querrán estar informados sobre qué pasa con el mismo. Por otra parte, los desarrolladores y otros tecnologistas, gustan de estar informados en todo momento, y de saber adónde y cómo marcha el proyecto. No los defraude. Las cosas, los rumbos, los objetivos, pueden ser resueltos privadamente, pero luego haga que la gente los conozca. Esto tendrá otra ventaja adicional: hará que su competencia siempre esté mirando qué está usted haciendo, y por lo tanto estará siempre un paso atrás

Facilite la comunicación entre sus desarrolladores. Un correo-e es mejor que una llamada telefónica, ya que el tema queda registrado, y puede ser revisado por otras personas, o más adelante. Una lista de mensajería es mejor que un canal IRC, o un chat. Luego de una reunión, elabore un resumen, y envíelo a todas las personas involucradas. Luego de tomar una decisión, haga que todas las personas involucradas las conozcan y estén informadas del cambio de rumbo

Facilite la contribuciones. Nunca habrá suficientes desarrolladores. Facilite que las personas puedan colaborar encontrando errores, mejorando la documentación, o simplemente probando los sistemas. Y no los defraude: implemente las mejoras, agradézcales efusivamente como le parezca más adecuado, y déles el adecuado crédito por ello. Manténgalos motivados. Recompensarlos de alguna manera siempre es recomendable para mantener la motivación

Alguna barrera para ingresar es necesaria para mantener la calidad y la seguridad. No asigne tareas críticas a personas que aún no conozca suficientemente. Establezca algún proceso de evaluación de las personas para determinar hasta qué punto se puede confiar en ellas. Este proceso además debe ser pensado para entrenar a las personas nuevas en los procesos y tareas necesarios para llevar adelante los proyectos con confiabilidad

Ejerza y establezca liderazgo. Asigne un líder al proyecto. Cuando conflictos y argumentos no tengan un consenso natural, debe buscarse a forma de resolverlos a la brevedad, y no dejarlos pendientes. Tenga en cuenta que cada proyecto puede requerir distintas formas de liderazgo, o de resolver los disensos. Además, recuerde que los conflictos son naturales, pero no debe dejarse que escalen de manera que el proyecto se dañe irreparablemente; cualquier pelea o disenso no resuelto puede llevar fácil y rápidamente a la caída del proyecto

Use un sistema de seguimiento de errores. Hará más fácil el seguimiento de la resolución de los inconvenientes, y a largo plazo creará una base de datos de conocimiento que acelerará sensiblemente la resolución de los nuevos. Úselo extensivamente, no sólo para errores, sino para cualquier proceso que deba ser monitoreado: nueva funcionalidad,mejoras, incluso para seguimiento de ventas, y proceso de negocios. La mayoría de ellos permite que los tickets sean agrupados por categorías. Aprovéchelo para monitorear cada tarea, especialmente aquellas de duración considerable

Compensar a la gente ayuda a mantenerla motivada. Realizar mucho trabajo sin recompensa no funciona a largo plazo. La mejor forma de compensanción difiere mucho de una persona a otra, y usted debe buscar cuál es la que prefiere cada uno. Lo que con seguridad no funciona es gritarles y criticarles por dar lo mejor de ellos, especialmente si es en reacción a algún error que cometieron

No suponga cosas sobre la gente. No asuma nada sobre sus gustos, personalidad, religión, cultura o conocimientos. Por ejemplo, no suponga que la persona sabe sobre determinado tema no directamente relacionado con su especialidad. Especialmente sea cuidadoso con temas sensibles como religión, sexualidad, etnia o política

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


ocho − = 0