Getting Things Done (GTD), organizate con eficacia de David Allen

Getting Things Done (GTD) de David Allen (Organizate con eficacia en castellano) es un método para la gestión de las tareas pendientes que se ha hecho bastante popular en los últimos años.

Después de leerme el libro básico de referencia, me ha parecido bastante interesante y he intentado aplicar las ideas expuestas. La principal dificultad de utilizar GTD para gestionar nuestras tareas es que supone un cambio sustancial en nuestros hábitos diarios, no obstante, si bien no he conseguido trabajar cumpliendo el 100% del plantenamiento GTD, si que he podido aprovechar algunas partes para incorporarlas a mi día a día y mejorar mi propia eficiencia 🙂

Al inicio del libro se hace mención a una de las ideas básicas de Peter Druker: El trabajo del conocimiento. Actualmente no existen limites claros que definan el fin del trabajo, este se encuentra cada vez menos delimitado físicamente (p.ej. reorganizar un almacen). El trabajo tiende al infinito y nuestras tareas pendientes aparecen, se modifican, pierden o ganan prioridad a un ritmo frenético que puede bloquearnos.

Poder gestionar eficientemente ese contexto implica mantener un estado de calma donde nuestra mente se comporte como el agua. Si lanzamos una piedra a un estanque, el agua responderá en función de la masa y la velocidad de la piedra, retornando acto seguido a su estado natural. El agua no actua ni más ni menos de lo necesario, nuestra mente debe reaccionar de la misma forma.

Aquello que nos hace reaccionar por encima o por debajo de lo necesario (p.ej. contestar de forma inapropiada un correo), nos controla y genera ineficiencias e ineficacias.
Continue reading Getting Things Done (GTD), organizate con eficacia de David Allen

Realizar estimaciones de tiempo con el método poker

Para las estimaciones del tiempo que llevaran las tareas que forman parte de un proyecto, punto habitualmente conflictivo, es posible utilizar una técnica que permite reducir drásticamente el esfuerzo en llegar a un consenso. La técnica de la estimación poker proporciona a cada participante cartas a medida donde en cada una hay un valor, por ejemplo (suponiendo que el mínimo sea 1/2 día y el máximo 3 días):

  • 1/2 día
  • 1 día
  • 2 días
  • 3 días
  • Infinito: se requieren más de 3 días para realizar la tarea

Continue reading Realizar estimaciones de tiempo con el método poker

Scrum, gestión ágil de proyectos / agile project management

Scrum es una metodología de desarrollo ágil basado en procesos iterativos e incrementales. El desarrollo parte de una idea general de lo que se requiere construir, elaborando un listado de características ordenadas por prioridad (product backlog) que el propietario del producto desea obtener. El product backlog será un documento en constante actualización y al cual podrán acceder todos los interesados.

A partir de aquí se efectuará una reunión para la planificación del primer sprint (la primera iteración), en la cual se generará una lista de tareas (sprint backlog) con asignaciones de personas y una estimación de tiempo y recursos. Adicionalmente se establecerá el objetivo del sprint (necesidad del negocio a cubrir).

El sprint (iteracción) dará como resultado una primera versión parcial del producto (resultado incremental). Cabe destacar que, en cada proyecto se debe definir una duración fija de los sprints, siendo recomendable que se encuentre entre los 15 y 60 días.

Durante el sprint, se realizará una reunión diaria (15 minutos máximo) donde cada componente del equipo da respuesta a los siguientes aspectos:

  • Trabajo realizado desde la reunión de seguimiento anterior.
  • Trabajo a realizar hasta la próxima reunión.
  • Limitaciones reales o potenciales que puedan impedir la ejecución del trabajo.

Al finalizar el sprint se realiza una revisión, donde se evalúa el mismo y se presentan los resultados obtenidos.

De esta forma habrá concluido el primer sprint y se podrá dar lugar a una nueva iteración, volviendo a efectuar una reunión de planificación del nuevo sprint.
Continue reading Scrum, gestión ágil de proyectos / agile project management

Metodologías ágiles de gestión de proyectos (Scrum, DSDM, Extreme Programming – XP…)

Tradicionalmente las metodologías de gestión de proyectos como PMBOK y PRINCE2 han tenido una fuerte orientación predictiva. Es decir, a partir del detalle del producto que se quiere elaborar (análisis funcional/técnico, requerimientos funcionales/técnicos, etc.), se definen fases/actividades perfectamente planificadas en el tiempo en base a los recursos disponibles. A partir de esta proyección inicial, el objetivo durante el transcurso del proyecto es conseguir que se cumpla aquello que se había previsto: calendario, costes y calidad.

Este tipo de metodologías ha resultado ser útil, mejorando la calidad y reduciendo las desviaciones en los proyectos que son aplicadas. No obstante, pueden presentar determinados inconvenientes:

  • El jefe de proyecto puede no tener conocimientos técnicos y dedicarse exclusivamente al control siguiendo los procedimientos establecidos y limitándose a la generación de informes, actas, diagramas de Gantt, WBS, etc… herramientas que facilitan la gestión pero que no forman parte del objetivo del proyecto. Un jefe de proyecto con estas características no podrá participar activamente en la toma de decisiones técnicas.
  • En proyectos largos, ceñirse a un plan estático puede provocar que el producto final ya no se cubra la totalidad de las necesidades del cliente dado que estas han cambiado desde el inicio. Por tanto, durante el propio desarrollo del producto, es posible que se deban ampliar las características diseñadas inicialmente con tal de que no sea obsoleto antes de su salida al mercado.
  • Incertidumbre: vivimos en un entorno rápido e inestable, donde cumplir el plan inicial no garantiza el éxito. La idea de “producto terminado” puede perder su sentido en determinados sectores (p.ej. software), dado que el producto siempre está en evolución. La capacidad de adaptación a partir de la retroalimentación e incorporación de nuevas ideas es fundamental.

En definitiva, la creación de valor mediante la adaptación a las necesidades cambiantes aparece en un primer plano frente a la tradicional idea de diseñar un plan y cumplir unos calendarios/requerimientos estáticos.

Los proyectos gestionados con metodologías ágiles se inician sin un detalle cerrado de lo que va a ser construido. A nivel comercial, los proyectos pueden ser vendidos como servicios y no como productos.
Continue reading Metodologías ágiles de gestión de proyectos (Scrum, DSDM, Extreme Programming – XP…)

Intel Wireless (iwl4965 o iwl3945) en Ubuntu Hardy

En una de las últimas actualizaciones de Ubuntu me dejó de funcionar el Wireless. Después de varias búsquedas he encontrado la solución en la descripción del bug en launchpad:

sudo aptitude install linux-backports-modules-hardy
sudo rmmod iwl3945; sudo modprobe iwl3945

En caso de que la tarjeta funcione con el driver iwl4965 en lugar del iwl3945, simplemente hay que cambiar uno por el otro en el último comando.

Este tipo de fallos son los que pueden resultar tan molestos que alejen a nuevos usuarios de Linux, sobretodo a aquellos que no tienen tiempo/ganas para “investigar” el motivo e intentar arreglarlo.

Otro ejemplo sencillo: tengo 2 portátiles, en la versión anterior de Ubuntu (7.10) las X.org me funcionaban a la primera en uno y no en el otro… en la versión actual (8.04) la situación se ha invertido 🙁

PRINCE2 como complemento a PMBOK para la gestión de proyectos (project management)

PRINCE2 (“PRojects IN Controlled Environments”) es una metodología de gestión de proyecto desarrollada inicialmente por el Central Computer and Telecommunications Agency (CCTA) del gobierno de Reino Unido y que actualmente también es usado en organizaciones privadas.

PRINCE2 se basa en los mismos principios que PMBOK y amplia los conceptos que este presenta, proporcionando técnicas complementarias para reducir el riesgo e incrementar la calidad en los proyectos de la forma más efectiva. No obstante, PRINCE2 deja fuera de su alcance aspectos que si cubre PMBOK, como por ejemplo:

  • Gestión de personas: motivación, lideraje y delegación
  • Técnicas de planificación genéricas como Critical path y Gantt Charts
  • Técnicas de gestión del riesgo
  • Técnicas de análisis financiero o presupuestario

Continue reading PRINCE2 como complemento a PMBOK para la gestión de proyectos (project management)

PMBOK, Project Management / Gestión de proyectos

El Project Management Institute (PMI) es una organización que intenta establecer un orden y unos criterios estándares para la gestión de proyectos. Con esa finalidad, PMI mantiene el libro Project Management Book of Knowledge (PMBOK) donde se establecen todo un conjunto de herramientas y buenas prácticas que todo jefe de proyecto debe conocer y aplicar.

En contraposición a otras metodologías (p.ej. las metodologías ágiles como Scrum), PMBOK se encuentra orientado a una gestión predictiva de los proyectos. PMBOK presenta diversas fases de un proyecto de forma lineal (una vez superada una fase, no se volverá a ella), donde la necesidad/solución, el alcance y la planificación (p.ej. coste y duración de cada una de las tareas a realizar) se establece en las fases iniciales (de ahí que sea denominada gestión predictiva).

Por tanto, podríamos considerar PMBOK como perteneciente a la rama más clásica de la gestión de proyectos (al igual que el estándar complementario PRINCE2, popular en UK). No obstante, este hecho no implica que parte de las herramientas que ofrece no puedan ser utilizadas en combinación con otras metodologías más ágiles y flexibles.

Continue reading PMBOK, Project Management / Gestión de proyectos

Comparativa de sistemas de control versión distribuidos

Siguiendo la temática de los últimos artículos sobre Bzr, Git y Trac… he encontrado una comparativa exhaustiva que vale la pena leer (aunque sea en diagonal): Distributed Version Control Systems: A Not-So-Quick Guide Through.

En resumen, viene a indicar que Git es el sistema más eficiente en términos de espacio y CPU, además del favorito de los programadores C / Linux / Ruby / Rails. Por otra parte, Mercurial queda en un segundo lugar y es preferido por programadores Java / Sun y finalmente tenemos Bazaar, favorito para los desarrolladores de Ubuntu (launchpad soporta Bzr).