3 simples pasos para administrar Proyectos de TI en forma remota
Si eres un Project Manager, Project Leader, COO o CTO de una pequeña o mediana empresa y te has visto en la necesidad de dirigir un proyecto de TI en forma distribuida, aquí te doy unos sencillos tips que te ayudarán.
En esta oportunidad, les hablaré de cómo logro manejar día a día, remotamente desde la comodidad de mi hogar, decenas de proyectos de TI con equipos distribuidos alrededor del mundo.
Lo primero que debería hacer es describir el escenario que planteo y los potenciales problemas que hay que resolver. Sería muy tedioso encararlo de esta forma, por lo que lo resumiré diciendo que el equipo del proyecto (me refiero no solo a los desarrolladores, sino a todos los que de alguna forma u otra forma están involucrados en el proyecto) se encuentra ubicado físicamente en diferentes ubicaciones geográficas. A esto le podemos sumar la barrera idiomática, además de un obvio problema de infraestructura y de coordinación con distintos husos horarios. En lugar de plantear cada problema que tuvimos que resolver, contaré cómo manejamos de manera eficiente cada aspecto del proyecto.
1- Infraestructura
Si eres de esos que piensan que la información y los programas fuentes no deben salir bajo ningún punto de vista del entorno físico y privado de tu empresa, no creo que puedas resolver este punto con eficiencia para esta modalidad de trabajo, a no ser que conectes a todo el mundo a la VPN de la empresa. Esa alternativa, sin embargo, es muy incómoda para trabajar, plantea muchos problemas y es costosa, sobre todo para equipos numerosos.
Nosotros optamos por utilizar repositorios privados en la nube (en general, Gitlab) y trabajamos con Git Flow como workflow. Cada miembro del equipo del proyecto tiene acceso al repositorio y trabaja en forma local.
En cuanto a la base de datos, subimos una base de desarrollo en Azure o en algún otro server y todos le pegan a esa base, o usamos un proyecto de base de datos para mantener sincronizadas las diferentes estructuras de las bases locales. Con respecto a la información, empleamos datos ofuscados cuando lo consideramos necesario.
Es fundamental que exista una correcta división de entornos (desarrollo, testing, producción). En general, el entorno de desarrollo, como he explicado, es local de cada desarrollador. El entorno de testing lo configuramos en la nube y de la forma más similar posible al entorno productivo, que estará en las instalaciones de nuestro cliente.
2- Gestión del Proyecto
Es fundamental que tengas en claro la metodología que utilizarás para llevar a cabo el proyecto. Nosotros optamos por Agile 2 Lo que nos valió una mención como “Top 10 Agile Consulting/Service Companies in Europe 2020” , pero nos adaptamos a los requerimientos de cada uno de nuestros clientes. Creemos que la flexibilidad es lo más importante. Por otro lado, está muy bien eso de manejar iteraciones cortas, aunque es necesario tener una visión global de todo el proyecto si es que se quiere mantener el control y la visión a medio o largo plazo.
Si ya de por sí es complejo determinar el grado exacto de avance de un proyecto, tener al equipo distribuido alrededor del mundo no ayuda a mejorar la situación. Por eso, debes definir iteraciones cortas (además de etapas que las engloben y fases que las agrupen) con metas claras y asegurarte de que TODO el equipo las conozca (especialmente el cliente o product owner).
Para MyTaskPanel Consulting, realizamos iteraciones quincenales con puntos de control semanales y daily meetings. Según la naturaleza o complejidad del proyecto, programamos más o menos reuniones de seguimiento.
La administración del proyecto la llevamos con Agile.MyTaskPanel y siempre definimos un responsable o project leader que se encarga de controlar el avance del proyecto y coordinar al equipo. Cada usuario tiene su inbox con las tareas por realizar, con sus fechas de entrega estimadas y la documentación necesaria para llevarlas a cabo. El cliente posee, también, acceso a la herramienta de gestión online para ver el estado del proyecto en tiempo real. Esa transparencia resuelve la mitad de los problemas más habituales en proyectos de este tipo.
Es esencial que cada miembro del equipo del proyecto sepa no solo cuáles son sus responsabilidades, sino cómo es el flujo de trabajo del equipo. Es decir, en un proyecto real, dado un requerimiento, un diseñador seguramente creará una pantalla que debe ser aprobada por algún responsable de UX. Luego, esa funcionalidad pasa a desarrollo y más tarde a testing, donde podrían llegar a reportarse issues o mejoras para realizar.
En resumen, debes definir con claridad el flujo de trabajo para todas las fases del proyecto.
3- Comunicación
El equipo funcionará siempre y cuando la comunicación sea buena (fluida, clara y constante). Para esto, tienes que definir varios canales de comunicación, según cada necesidad. Nosotros, por ejemplo, lo hacemos así:
- Para información técnica o funcional sobre una tarea en particular, empleamos la tarea en cuestión dentro del proyecto de Agile.MyTaskPanel, para que todo quede centralizado en el mismo lugar.
- Para daily meetings y cualquier comunicación instantánea (chat), utilizamos Slack con un canal por cada proyecto.
- Para videoconferencias, usamos Google Meeting. Si el cliente así lo requiere y debe participar en alguna call, nos adaptamos a sus preferencias (Zoom, Teams, Skype, etc.).
- Para comunicaciones más formales, empleamos el email.
En caso de que el equipo esté formado por miembros de habla extranjera, toda comunicación se realizará en inglés por norma general (esto aplica para el chat, las llamadas, la documentación, etc.).
Si los miembros del equipo del proyecto se encuentran en ubicaciones con diferentes husos horarios, acordamos previamente una banda horaria común para todos, en la que se harán las conferencias. También definimos los momentos del día en que se plantearán las dudas, para que otra parte del equipo las resuelva, y los horarios para las daily meetings antes mencionadas.
Hace años, un gerente de proyecto de un cliente muy grande que tuve en mis inicios me dijo una frase que jamás olvidaré: “puedes delegarlo todo, excepto el control”. Me tomé muy en serio ese consejo. Hoy es parte de la base de mi éxito como Director de Operaciones y CEO de mi empresa. Soy una persona muy estructurada, aunque de mente abierta. Me gusta escuchar a los expertos en cada tema en particular y luego decidir con base en mi experiencia y la información con la que cuento.
¿Por qué te digo todo esto? Porque lo explicado con anterioridad funciona siempre y cuando cuentes con un equipo profesional y eficiente, que sepa cuáles son sus responsabilidades y que las lleve a cabo con diligencia. Sin embargo, no puedes confiar en ello ciegamente (sería una irresponsabilidad). En mi caso, cuento con profesionales de confianza en cada área y un gerente en cada proyecto. A diario tengo un informe ejecutivo del estado de situación de cada proyecto y, según él, decido dónde depositar mi mayor atención.
En fin, espero que esta información te resulte útil. Sé que no expliqué todos los aspectos implicados en un proyecto de desarrollo, pero creo que está lo fundamental para que llenes tú mismo, con tu estilo, estos vacíos.