Libro: The End of Procrastination

Procrastinar
Del lat.procrastināre.
1. tr. Diferir, aplazar.

RAE

Una de las cosas que intento hacer siempre que estoy en un aeropuerto es pasar por la sección de libros de las tiendas de Duty Free, si veo algo interesante en un idioma que entiendo y me puedo beneficiar de algún cambio de moneda, no lo dudo y compro un ejemplar, aunque tenga una pila infinita de libros por leer, con la errónea suposición de que leeré el libro mientras vuelo.

Así, casi dos meses después de su compra, te traigo “The End of Procrastination”, un libro corto (apenas 240 páginas de contenido) y pequeño que nos trae algunos trucos sobre cómo combatir la tendencia que tenemos algunos de postergar cosas, especialmente si son importantes o aburridas.

En un formato diferente a otros libros (cuadrado para ser exactos) y lleno de ayudas visuales, el libro nos provee con varias herramientas para intentar superarnos poco a poco.

Partiendo de un análisis personal, utilizando métodos como SWOT o DAFO para ver cuales son nuestras fortalezas y debilidades, una lista de lo que creemos que puedan ser nuestros mayores logros, así como una visión personal, podemos tener una idea más realista de donde estamos y a donde queremos llegar, siendo el principal objetivo limitar el espectro de opciones a nuestro alcance a aquellas que nos ayuden a lograr esa visión, ya que está demostrado que tener demasiadas opciones bloquea nuestra capacidad de elegir, y ante la frustración de no poder elegir, elegimos no hacer nada.

A partir de ahí, el libro pasa a temas más de nuestro día a día, como mantener actualizada una lista de hábitos, planificar las tareas diarias de manera visual, encadenando unas con otras y agregando marcadores de importancia, maneras de organizar aquellas tareas que no requieren acción inmediata, cómo tener listas de ideas en las cuales actuar a futuro, y cómo salir de nuestra zona de confort para poder hacer más.

Finalmente, el libro pasa a temas más complejos, como qué pasa cuando nos vemos en una situación de bloqueo, en el cual nos vemos atados a un presente o a una situación pasada negativa y no podemos salir de ahí, mencionando cómo tenemos el control sobre la manera en la que respondemos a estímulos, por mucho que puedan ser negativos, o cómo mantener una lista de cosas positivas que han pasado durante el día (otros autores lo mencionan como las tres gratitudes)

Personalmente me ha gustado el formato, aunque, tras haberlo intentado, no esté del todo convencido del formato de organización de tareas diarias, para ello me quedo con el método de Cal Newport que recomienda tanto en su blog Deep Habits: The Importance of Planning Every Minute of Your Work Day como en su libro Deep work, que ya comenté en este blog en 2016.

Como estas, muchas más herramientas y muchos más dibujos en The End of Procrastination: How to stop postponing and live a fulfilled life

Espero que te resulte interesante (y a diferencia de mi, tardes menos de dos meses en terminarlo).

De vuelta de WeCodeFest 2019

Este año he vuelto a Valladolid a aprender y compartir con compañeros de batallas en un evento con charlas, talleres y debates durante dos días siguiendo un formato mixto de agenda cerrada + open space.

Durante el evento tuve tanto la oportunidad de escuchar y comentar en varios foros que iban entre el uso de frameworks, el trato con clientes complicados, los procesos de onboarding… , así como facilitar dos sesiones, una relacionada con productividad y distracciones, y la otra relacionada con libros, eventos y charlas que nos han marcado o han cambiado nuestra manera de ver problemas.

Esta fue fue una ocasión más para volver a ver a los compañeros de Códice Software, creadores de PlasticSCM, y la casa que me acogió cuando salí de la carrera y donde realmente aprendí a construir software, a hacer tests y a descubrir la diferencia entre programa y producto. Después de más de 10 años siguen luchando contra viento y marea por hacer el mejor sistema de control de versiones del mundo.

A continuación resumo algunas ideas que me han parecido interesantes de las sesiones a las que he asistido:

Microservicios

Me llevo deberes, concretamente este artículo: the Twelve-Factor App que da una definición de qué constituye un microservicio. Durante la conversación se debatió además el hecho de utilizar microservicios como una manera de organizar equipos, y aislar funcionalidad para intentar mejorar problemas de comunicación entre equipos.

Motivación

Me llevo varios conceptos relacionados con motivación intrínseca, qué es lo que nos lleva a hacer lo que hacemos y a mantenerlo, que va en línea con lo que he estado leyendo últimamente y de lo que espero escribir pronto, y echar un vistazo a este libro Drive: de Daniel H. Pink.

Productividad y distracciones

Entre los puntos que discutimos en esta sesión me gustaría destacar.

  • La necesidad de proteger nuestra concentración (auriculares con cancelación de ruido, sonido de ambiente, ambientes silenciosos si es posible) y la de nuestros compañeros, (manda una pregunta por chat, y cuando él pueda contestará, y así el compañero controla cuanto quiere ser interrumpido).
  • El uso de técnicas como revisar el correo en momentos puntuales del día, desconectar notificaciones, cerrar Slack o usar técnicas como pomodoro para tener momentos de no molestar, que podemos combinar con herramientas como Cuckoo para que el equipo sea consciente de si otros compañeros están ocupados en ese momento.
  • Ls emociones que genera la música y cómo afecta a nuestra capacidad de concentración, y cómo herramientas como Noisli pueden generar ruidos “de ambiente” o directamente ruido blanco pueden ser más útiles que canciones, especialmente canciones con letra. Dichas emociones, por otro lado nos pueden ayudar a desconectar, relajarnos o directamente “sacarnos de la caja”.
  • El hecho de cuán interesante o aburrida sea la tarea constituye un factor importante a la hora de que nuestra mente esté buscando activamente distraerse, y que el aburrimiento provoque no solo que nos distraigamos sino que distraigamos a otros.

Libros que nos han marcado

En esta sesión hablamos de diversos tipos de fuentes de inspiración:

  • Libros de teoría y arquitectura de software o de gestión de equipos de desarrollo, entre los que están Extreme Programming, Scrum from the trences, Refactoring, Clean Code, Clean Architecture, Design Patterns, POSA, Documenting Software Architecture, The Pragmatic Programmer…
  • Libros y ejercicios prácticos como Learn You a Haskell for Great Good!, Go by Example o las Ruby Koans que son ejercicios prácticos que te obligan a terminar un código para aprender a usar el lenguaje.
  • Podcasts como Software Engineering Daily o Agile in 3 Minutes

Y ahora qué?

Seguir leyendo, seguir escribiendo y tener siempre presente una frase compartida en la sesión sobre motivación de equipo que decía: todo lo que has aprendido es inútil si no lo usas, y estéril si no lo compartes.

De momento, comparto, con la intención de usar los conocimientos aprendidos.

¡Gracias a la organización por hacer este evento posible!

18. Echando la vista atrás

Hace más de 7 meses desde mi última entrada en este blog, y no ha pasado mes en el que me diga “debería escribir más”, y siempre he encontrado excusas interesantes para no escribir, pero sobre todo, y la más importante, es que he tenido relativamente poco que compartir. Pero no podía dejar de hacer balance un año más de cosas que han pasado y poner un la vista en lo que queda por venir, así que aquí va mi retrospectiva.

En el ámbito profesional ha sido verdaderamente intenso, análisis de requisitos, diseño de arquitecturas, alineamientos con equipos de todas partes del mundo (a horas intempestivas tanto para los que trabajamos en GMT+1 como para los de otras zonas horarias), muchísimo código en Java 8, JavaScript y Kotlin, incontables líneas de test unitarios, de integración, de carga, varias horas de presentaciones ante compañeros, unas sesenta horas entre aviones y aeropuertos entre España, USA y el Reino Unido, muchos litros de café y de tinta tomando notas.

Siguiendo con el gremio pero fuera de “horas de oficina”, este año me perdí la BilboStack, con entrada, vuelo y hotel comprados :(, (este año lo intentaremos otra vez) aunque sí que me pude dejar caer por la MindCamp, a la Pamplona SW Craftmanship, a WeCode y LechazoConf en Valladolid, y a DotNet 2018, donde tuve la oportunidad de volver a ver a algunos amigos y compañeros de batallas. Entre otros eventos memorables, pude ver en directo a Martin Fowler hablando, entre otras cosas, de la importancia de la entrega continua, el valor de los tests, y cómo se podía implementar entrega continua en productos existentes (este habría sido un buen candidato para escribir del tema).

Algunos de los que me leéis sabréis que tengo la suerte de compartir profesión y pasión por la tecnología con mi madre, y que en algunos eventos yo me presento como “el hijo de Ana” y en otros ella se presenta como “la madre de Rober”. Este año he visto con el orgullo que solo un hijo puede ver como Microsoft le reconocían sus méritos a la comunidad al nombrarla Most Valuable Professional (MVP).

Para aquellos que no os suene, es un reconocimiento que entrega Microsoft a profesionales que hagan aportaciones significativas a la comunidad, como eventos, ayuda en los foros, artículos en blogs o revistas, contribuciones de código a proyectos Open Source… Ana lleva desde hace más de quince años formando parte de diversas comunidades relacionadas con tecnologías Microsoft, desde FoxPro, SQL y ahora Power BI. Como testigo de esa evolución, y de su capacidad de reinventarse, es todo un reconocimiento a tantos años de trabajo y dedicación a la comunidad.

En el ámbito deportivo, este año ha habido obligaciones profesionales y familiares que me han brindado una excelente excusa para no hacer más deporte, aunque he hecho un esfuerzo por acabar el año haciendo más kilómetros. De acuerdo con Endomondo en 2017 corrí entre calle y cinta unos 249 km, este año 267, un poco más que el año anterior, pero menos de lo que habría querido. Este año sin embargo me ha traído un éxito en parte inesperado, que ha sido un récord personal de 58:32 en la San Silvestre Vallecana el 31 de diciembre, superando la barrera de una hora que llevaba un par de años intentando conseguir.

Volviendo al blog, he escrito cuatro artículos, dos relacionados con AWS en mi intención de aprender para examinarme de Solutions Architect, un tercero como revisión del libro “The Phonenix Project” y el resumen de 2017. Es el segundo año consecutivo que escribo menos de un artículo al mes, lejos de aquel año 2014 en el que este blog cosechó 60 entradas, más de una semanal.

Finalmente, respecto a los objetivos fijados el pasado año, este año no he sido capaz de cumplir ninguno de ellos, así que listarlos parece un poco repetitivo.

Dicho lo cual, este año voy a listar no tanto objetivos específicos sino ciertos hábitos que estoy intentando incorporar en mi vida diaria.

  1. Conseguir concentrarme en bloques de, al menos, 15 minutos: Tras leer técnicas como Pomodoro, que hablan de fijar bloques para tareas de unos 25 minutos, o libros como Deep Work donde recomiendan bloques más largos de varias horas, creo que 2019 será un año para poner estos métodos en práctica, Leí recientemente este artículo How to Multitask Without Breaking Your Brain – Member Feature Stories – Medium y me llamó mucho la atención la idea de mantener la concentración durante al menos 15 minutos antes de cambiar de actividad, llevo unos días usándolo y es sorprendentemente poderoso.

  2. Correr cada semana: Había pensado originalmente en fijar algo así como “correr 500 km, pero el truco está en buscar el hábito de correr semanalmente, y que no sea algo puntual antes de cada carrera. Idealmente quiero estirar la cantidad de kilómetros que hago en cada sesión y reducir el ritmo cardiaco, para poder preparar mayores distancias sin que el cuerpo sufra demasiado.

  3. Mejorar mi organización: Me encantan las listas de tareas y los diferentes sistemas de organización, mi favorito sigue siendo GTD ya que me permite tenerlo todo en un único lugar, aunque en 2018 he vuelto a utilizar Bullet Journal para tomar notas en papel de reuniones, ideas, tareas que van surgiendo y otras. En este año quiero agregar el hábito de la revisión semanal que propone GTD para mantener tareas y proyectos al día.

  4. Desconectar activamente: Buscar o potenciar hobbies para mantener ocupado el cerebro cuando no estoy trabajando. Montar legos, tocar el piano, pintar, escribir, correr, o todas las anteriores.

  5. Agregar a mi rutina diaria más tiempo para leer: La combinación de Audible + Correr es increíblemente motivadora para ponerme al día con libros de acción como la saga de “The Gray Man” de Mark Greaney, aunque la literatura técnica, ya sea relacionada con el software, el trabajo corporativo o el mundo de los negocios, es más conveniente leerlas más que escucharlas. En un mundo donde hay cientos de artículos en medium de cualquier tema, sigo prefiriendo la estructura y el orden de un buen libro (en papel o en Kindle), por ello, me gustaría dedicar unos 15 minutos al día para leer. Habrá días que pueda dedicar más, habrá días que pueda dedicar menos. Además como motivación adicional, quiero escribir en el blog acerca de los libros “de trabajo” que lea.

  6. Buscar activamente nuevas oportunidades para aprender y mantener conocimiento: Inscribirme en un examen de certificación para buscar una excusa para estudiar, asistir a un evento de una tecnología que no conozca, hacer un pet-project que involucre algún concepto relacionado con IA, construir mejores interfaces aprendiendo de mis compañeros de UX, aprender a escribir documentos técnicos pidiendo ayuda a compañeros más experimentados…, hay muchas maneras de seguir aprendiendo, mantener nuestros conocimientos y mejorar en lo que hacemos.

  7. Respirar: Vivimos en un mundo frenético, con múltiples estímulos que vienen en forma de e-mail, mensajería instantánea, nuestro jefe, nuestros compañeros, la familia, amigos, y obligaciones que muchas veces requieren una respuesta inmediata. En mi caso he vivido más de una vez cómo no tomar una bocanada de aire y soltarlo antes de responder ha dado como resultado una respuesta tosca, agresiva, defensiva o simplemente equivocada por no pararme a pensar en la pregunta. Para ello este 2019 pienso respirar más, sobre todo antes de hablar.

2019 se presenta como un año cargado de retos personales, profesionales y deportivos. Espero poder compartir parte de lo aprendido en este blog que lleva siendo mi casa en las nubes desde hace ya 10 años.

Feliz año nuevo.

Aprendiendo AWS: Nube privada Virtual o VPC

Desde hace ya unos días estoy empezando a preparar el examen de certificación de AWS Solutions Architect, y eso me permite aprender sobre los diferentes componentes que forman la plataforma cloud de Amazon. En este artículo veremos uno de los pilares de estos componentes, la nube privada virtual o VPC.

Hasta hace relativamente poco, mi idea era que en cualquier proveedor de nube, tenías máquinas virtuales y servicios, y podías realizar ciertos ajustes para detectar desde donde se puede acceder a tu instancia, y poco más. Uno de los componentes al que había prestado poco o nulo interés era el concepto de VPC (llamado también Virtual Network en Azure).

Básicamente una VPC nos permite crear nuestra propia topología de red en la nube como si tuviéramos nuestro propio CPD. Con topología nos referimos de la posibilidad de crear una red, diferentes subredes, decidir cómo se conectan entre ellas, cómo se conectan a internet, y a qué recursos tienen acceso.

Esto también nos permite tener diferentes recursos en diferentes subredes, y poder aplicar directivas de seguridad y control de acceso a nivel de subred, en vez de tener que aplicarlas a recursos individuales.

Cuando gestionamos redes privadas en AWS podemos hacer uso de diferentes componentes, entre los que destacan:

  • Subnets: Permiten aislar varios recursos dentro de la misma VPC (i.e. Servidor Web, Base de datos)
  • Internet Gateway: Necesaria para que una VPC pueda acceder a internet.
  • Elastic IP Address: Necesaria para poder servir tráfico a internet desde nuestra VPC. Podemos tener direcciones IP elásticas asociadas a una VPC o a un recurso específico (una instancia de EC2, por ejemplo).
  • Route Tables: Permiten definir una tabla de origen y destino, y direccionar el tráfico que proviene de una subred tanto a la red interna o al Internet Gateway, para dar acceso a internet.
  • Security Groups: Asociado a una instancia, permite establecer que rango de IPs puede acceder a puertos específicos. Por ejemplo, un servidor web puede permitir tráfico entrante para todo internet en el puerto 80, pero sin embargo limitar el tráfico de conexiones SSH (puerto 22) a máquinas específicas.
  • NAT Gateway / NAT Instance: Permiten que una subred tenga acceso a internet y limitar el acceso a la misma desde internet. Se puede configurar como servicio o manualmente utilizando una máquina virtual dedicada.

Recursos

En Pamplona Software Craftsmanship 2017

Este fin de semana he tenido la oportunidad de participar en un evento diferente orientado a profesionales de la industria del software en la ciudad de Pamplona, en Navarra, en el que se combinaban dos aproximaciones:

  • Por una parte, una conferencia tradicional, en la que los ponentes y las sesiones se conocen de antemano.
  • Por otra, un open space, en el que las sesiones se proponen, presentan y votan por parte de los asistentes.

Durante dos días, más de una centena de desarrolladores, ingenieros de software, programadores, agilitas, craftsmen, o profesionales de la industria, independientemente de la etiqueta que tengamos en nuestro lugar de trabajo o en nuestro CV, hemos debatido sobre la profesión, lo que nos motiva a hacer lo que hacemos, los problemas a los que nos enfrentamos y las soluciones a las que hemos llegado.

Con unas 40 sesiones entre open space y ponencias, la temática era muy variada, y pude tomar bastantes notas, entre otras cosas, sobre:

  • Cómo con TDD podemos aprender a trabajar con un lenguaje como Elixir.
  • Cuales son las responsabilidades del arquitecto del software, como todos somos arquitectos en cierta manera y cómo conectar con los responsables de negocio en nuestra empresa o nuestros clientes.
  • Cómo algunos han conseguido llevar soluciones de entrega continua a sectores como la fabricación de vehículos.
  • En qué aspectos de la experiencia de usuario deberíamos fijarnos, como mínimo, a la hora de desarrollar sistemas de información en general e interfaces de usuario en particular.
  • Cómo aprender a enseñar, de qué maneras podemos ayudar, especialmente a los que están empezando, a que entiendan y usen buenas prácticas desde el principio.
  • Por qué perdemos la motivación por la comunidad o por mejorar como profesionales, y cómo podemos recuperarla.
  • Cómo nos organizamos, tanto profesionalmente en el caso de ser freelance como personalmente.
  • Qué libros, charlas o eventos, han influido en nuestra manera de trabajar, nos han enseñado nuevas maneras de ver problemas o nos han inspirado.

Tuve además, la oportunidad de facilitar dos debates, algo que supuso otra experiencia nueva para mí por la cantidad de conversaciones que surgen, cómo se ramifican los temas y la necesidad de ser capaces de reconducir la conversación cuando se aleja demasiado del objetivo del debate.

El formato del evento y los tiempos, con descansos entre todas las sesiones, permitían un amplio margen para conversaciones informales, y eso invitaba a acercarte e iniciar una conversación con gente con quien tal vez no habrías interactuado en una conferencia “tradicional”, ya sea por la cantidad de asistentes como por esa separación entre “ponente” y “asistente”.

De manera paralela, como no solamente de software vive el craftsman, el segundo día por la mañana el tiempo me dio un respiro, me puse mis zapatillas y salí a correr un par de millas alrededor de la ciudad, algo que estoy intentando convertir en una tradición cuando voy a un evento.

Para mí fue toda una experiencia, el viernes comenzó en una sala donde, salvo excepciones, estaba rodeado de desconocidos, y vuelvo el domingo sintiéndome parte de otra comunidad, con muchísima gente que se enfrenta a un montón de problemas interesantes y con quien he compartido experiencias con una cerveza, un café, una copa de vino y algo de comer.

Desde mi humilde blog, no quería perder la oportunidad de agradecer:

  • A la organización por el impagable trabajo que han hecho a lo largo de todos estos meses desde que se convoca hasta que sucede.
  • A todos con los que compartí experiencias, de los que aprendí trucos, y que escucharon mis batallitas,
  • Finalmente a mi familia, por entender la importancia de participar en estos eventos.

Nos vemos en la siguiente!

Tareas, Kanban, GTD y otras hierbas

Cada día, una, dos, diez, o centenares de tareas esperan acción por nuestra parte, tanto en nuestra vida personal como en la profesional.  Mantenerlas al día o completamente fuera de control nos puede alegrar o estropear el día.

En este artículo veremos algunas maneras de organizar las diferentes tareas que surgen a lo largo de nuestra jornada, así como aquellas que planificamos para corto, medio y largo plazo.

Listas de tareas

En este apartado cubrimos desde la lista de la compra hasta un plan de carrera. Es la variante más versátil, y podemos utilizar papel y bolígrafo en su versión más simple. Si compartimos tareas con más personas puede ser más útil recurrir a una pizarra. Por otro lado, si nuestras tareas nos llegan vía e-mail, podemos emplear nuestro cliente de correo favorito para gestionarlas, siempre que no olvidemos dar alguna respuesta al emisor.

En el terreno de las apps, tenemos Apple tasks y Gmail tasks, para iOS y Android, servicios como Remember The Milk, Wunderlist o Todoist, así como alternativas más “frikis” como Todo.txt, basado en ficheros de texto.

Sin embargo, siempre se nos acumulan demasiadas tareas, y alrededor del 60% de lo que escribimos en esas listas nunca se completa, por no decir aquello que no llegamos ni a empezar.

Como alternativa, podemos emplear una “lista de hechos”, donde escribimos aquello que hemos completado en vez de lo que pensamos hacer. iDoneThis es un servicio muy interesante para este escenario.

Agregando prioridades

Una vez que tenemos nuestra lista, el siguiente paso es decidir qué hacer primero. Una de las maneras en las que podemos priorizar nuestras tareas es mediante la matriz de Eisenhower, que divide las tareas en cuatro cuadrantes:

  • Urgente e importante: caída del servidor de producción…
  • Urgente y no importante: pasar la ITV del coche, renovar DNI…
  • No urgente pero importante: una certificación, un viaje, cambiar de trabajo…
  • Ni urgente ni importante: terminar el Halo 4…

Imagen 1.png

Al usar esta matriz, podemos priorizar aquello urgente e importante; dedicar todo el tiempo planificado a aquello que es importante, aunque no urgente; y en la medida de lo posible, delegar o retrasar aquello que, pese a ser urgente, no es importante.

imagen-2

Fuente de la imagen: http://mathewreuther.com/blog/2013/12/30/looking-ahead-to-2014/the-oatmeal-running-agony-nope/

Por último, lo que no encaja en ninguno de los tres cuadrantes debería ser descartado, siempre que haya trabajo pendiente en los otros cuadrantes.

Otra manera de priorizar es la propuesta por el método GTD®, de acuerdo con los siguientes valores:

  1. Contexto: esperando en el metro o sentado en nuestro escritorio, por ejemplo.
  2. Tiempo disponible: cinco minutos antes de una reunión o toda la mañana por delante, por ejemplo.
  3. Energía disponible: ¿Hemos dormido mal? ¿Venimos de salir a correr? No siempre tenemos la misma energía.
  4. Prioridad: finalmente, vemos qué es más importante para nosotros de acuerdo con nuestra preferencia.

Kanban

El contexto que acabamos de ver nos ayuda, pero ¿qué pasa con tareas que tienen más de un estado, o tareas que están en proceso o bloqueadas?

Para mantener estas tareas bajo control podemos recurrir a sistemas como Kanban, que se basa en agruparlas por estados, consiguiendo con ello visualizar todo el trabajo disponible y minimizar aquello que está en progreso, así como poder revisar aquello que hemos terminado.

La principal razón para limitar el trabajo en progreso la podemos ver en el contexto de una carretera: cuando está al límite de su capacidad es inútil, porque es un colapso de coches, mientras que si está vacía también lo es. En este escenario lo que se usa es un punto medio de capacidad que maximice el número de coches que entran y salen de la carretera. Al 100% de su capacidad es un parking, al 0% de su capacidad es un desierto, pero al 60% de su capacidad el tráfico fluye con normalidad.

Cuando trabajamos con tareas, es más importante el tráfico de las mismas que estar operando al máximo de nuestra capacidad; siendo el tráfico lo rápido que una tarea pasa por todos los pasos.

Además, tener muchas tareas “en progreso” puede provocar que haya algunas que no terminemos nunca y se mantengan en ese estado intermedio, volviendo al primer plano de nuestra mente cuando menos lo imaginamos.

Un tablero de Kanban se divide, en su forma más simple, en tres partes:

  • TODO
  • WIP
  • DONE

La sencillez del sistema hace que podamos agregar estados adicionales con total facilidad.

Como herramientas, podemos recurrir a la clásica pizarra blanca + Post-it, o usar aplicaciones como Excel (son filas y columnas, al fin y al cabo) o podemos usar tableros de Kanban de Github, GitLab, TeamServices y Jira, o aplicaciones específicas como Leankit y Kanbanflow, aunque personalmente me decanto por Trello.

Finalmente, el mayor valor de Kanban es su capacidad para trabajar con volúmenes pequeños de información. Demasiadas notas en el tablero pueden provocar que el bosque no nos deje ver los árboles.

GTD

El método GTD, popularizado por David Allen a principios de la pasada década, es uno de los más complejos e interesantes sistemas de almacenamiento y gestión de información.

Se han escrito innumerables libros y artículos sobre GTD, pero las bases son relativamente simples:

  • Capturamos la información en un buzón de entrada.
  • En otro momento clarificamos esta información y decidimos si es accionable o no, asignándola a su lista o archivo correspondiente.
  • Organizamos las listas en tareas, proyectos y contextos en función de la complejidad y los requisitos.
  • Reflexionamos sobre las tareas pendientes, re-priorizando o descartando aquellas que hayan cambiado de estado.

Este sistema se aplica de manera bastante eficiente también a elementos físicos, pudiendo utilizar papel y lápiz, notas de papel almacenadas en carpetas, o herramientas de software entre las que figuran Omnifocus, Things o, como he mencionado antes, Trello.

El principal valor de GTD es la esencia de “mente como el agua”, es decir, vaciar nuestra mente en el sistema y tenerlo todo organizado fuera de nuestro cerebro, para podernos dedicar a crear, en vez de a recordar. Un pasaje de su libro comentaba que era habitual para muchos tener listas con cientos de elementos, algo impensable en un modelo Kanban.

Midiendo resultados

Una parte importante de nuestras tareas es hacer retrospectiva, ver si hemos podido completar lo que nos hemos propuesto o saber qué nos lo ha impedido.

Una manera es utilizar programas que nos ayuden a ver a qué dedicamos nuestro tiempo, como son RescueTime y Qbserve, que vigilan nuestro ordenador para darnos informes detallados de uso y ver cuánto tiempo realmente pasamos trabajando y cuanto se nos va contestando e-mails.

Por otra parte, para tener un control más estricto sobre cuánto tiempo tardamos en completar una tarea, podemos utilizar contadores como Toggl, que está disponible para web, escritorio y móviles.

Además, podemos utilizar técnicas como Pomodoro, en el que dedicamos intervalos de 25 minutos de trabajo y 5 de descanso. Es particularmente útil si no estamos demasiado interesados en la tarea en cuestión: “al menos le dedico 25 minutos y me la quito de encima”.

Finalmente, métodos como Bullet journal defienden volver al papel para realizar esta retrospectiva, tomar nota de lo que ha pasado, incluso de aquello no planificado o de aquello que se nos ha quedado pendiente, ya que estudios han demostrado que recordamos mejor aquello que escribimos a mano.

Conclusiones

Las listas nos acompañan, las usemos conscientemente o no. Podemos crearlas, priorizarlas, agregar contexto, ampliarlas o reducirlas, podarlas y curar el contenido de las mismas, tachar elementos, medir el tiempo y el esfuerzo y, finalmente, reflexionar sobre ellas. Hay muchísimos más métodos, reglas y teorías para gestionar listas. Este artículo es solamente un resumen de lo que he ido probando con el tiempo.

Y tú, querido lector, ¿qué sistema usas o has usado?

Se acaba 2016, nuevos hábitos, retos y aprendizaje

Diciembre es momento de reflexión, de echar la vista atrás, de tomar esas listas de objetivos que fijamos a principios de año y ver qué tal nos ha ido, las cosas que hemos conseguido y las que por otra parte se han quedado en el tintero.

Este año, mis objetivos personales han ido cambiando, con lo cual la lista original se ha quedado un poco obsoleta, así que en esta edición de mi resumen anual quiero compartir contigo, querido lector, algunas cosas que he aprendido, estuvieran en el plan inicial, o no.

Encontrar tiempo para leer y escuchar

Este año me he leído, entre ebooks, papel y audiolibros con Audible, un total de veintisiete libros entre literatura técnica, biografías, ciencia ficción, acción y otros tantos englobados en la categoría de no-ficción, utilizando los viajes diarios a la oficina y también como banda sonora al salir a correr.

Libros como “Getting Things Done” de David Allen, “Deep Work” de Cal Newport, o “The Power of Habit” de Charles Duhigg, a pesar de no ser libros “técnicos”, me han aportado ideas muy interesantes durante el año, coplementando thrillers como “The Gray Man” o “The Janson Directive”.

De manera adicional he estado escuchando algunos podcasts, como “The Tim Ferris Show” y “Fortune Unfiltered”, así como técnicos como “No tiene nombre” de El Bruno o “Hanselminutes”.

Buscar un computer-life balance

He mencionado computer-life y no work-life, ya que en más de una ocasión las ganas de aprender, la colaboración con la comunidad o simplemente reddit y hackernews, logran mantenernos pegados a la pantalla demasiado tiempo, lo cual nos aleja de la productividad y del descanso que nuestro cerebro necesita.

El mi caso el balance lo han aportado un par de zapatillas, un reloj con pulsómetro, unos auriculares bluetooth, y buscar cierta constancia a la hora de salir a correr, tanto por la hora como por el circuito, que aunque parezca monótono te permite “competir” contra tí mismo cada vez que sales, algo que no consigues cuando vas cada día por un circuito diferente.

Como “compañía” para salir a correr, donde antes llevaba música, ahora llevo audiolibros o podcasts, lo que me ayuda a adaptar el ritmo a cómo me sienta en ese momento, sin tener una canción que, en cierta manera, te lo imponga. Como ventaja adicional, cada libro o podcast es completamente distinto del anterior, lo que aporta un extra de motivación para salir.

Conocer la caja de herramientas

Atajos de teclado, comandos de UNIX, o incluso aprender algo de python, me han permitido trabajar mejor y algo más rápido este año.

Un ejemplo: Los chicos de IntelliJ han creado una “chuleta” con algunos de los atajos más usados. Estuvo impresa en mi escritorio durante un par de meses, y gracias a ella útiles. Empecé imprimiendola, pegándola a mi escritorio y subrayando un par de comandos, un año después ya uso unos cuantos más. También existen alternativas para Visual Studio y otros IDEs.

Es cierto que las herramientas por sí mismas no nos hacen mejores técnicos, pero tener soltura con ellas y conocer las diferentes opciones nos puede ayudar a centrarnos más en el problema y menos todo lo demás.

Es dificil, por otra parte, llegar a conocer perfectamente todas las características, funcionalidades, comandos, que necesitamos en nuestro día a día, y esto lo convierte en una oportunidad de no dejar de aprender nunca.

Mejorar la práctica

Una idea que planteaba Jorge Barroso en su charla “Time to grow up” es la idea del desarrollo de software como algo similar a la cocina, en función del momento y la necesidad hacemos un apaño rápido, o hacemos algo digno de estrellas michelín, para lo cual tenemos que aprender mucho, y luego usar lo que podamos en cada momento.

Para mí, “aprender mucho” era algo asociado a un lenguaje, tecnología, plataforma, etc, sin embargo este año he tenido la oportunidad de trabajar y de experimentar con más abstracciones independientes de lenguaje y de arquitecturas independientes de la plataforma, y esas abstracciones (teoría de colas, fundamentos de sistemas distribuidos, patrones de diseño) luego me han permitido entender mejor los problemas, las soluciones o incluso cómo funcionan algunas plataformas.

Aprender es un proceso continuo, pero también tenemos un tiempo limitado para dedicarlo a formarnos y a apender lo que me lleva también a los artículos de Robert “Uncle Bob” Martin titulados “The Churn” y “The Lurn” en los que insiste en la necesidad de aprender conceptos más profundos como concurrencia, o protocolos de comunicación, en vez de dedicar tiempo a aprender otros lenguajes (especialmente si siguen relativamente el mismo paradigma que los que ya sabemos).

Para 2017

En general la idea es seguir usando los mismos hábitos que he ido cultivando estos años, ir mejorando cuando se pueda, y contribuir de vuelta a la comunidad, de la cual aprendo cada día.

  • Seguir leyendo, estudiando y compartir las notas de lo leído.
  • Seguir corriendo y moviéndome, este trabajo nos hace sedentarios.
  • Seguir aprendiendo abstracciones, y hablar de ellas en el blog.
  • Mejorar la fluidez con herramientas de UNIX, comandos, pipes, python para scripts, etc.
  • Contribuir de vuelta a la comunidad vía charlas o artículos.

Como se ve no son objetivos, con lo cual dentro de un año será dificil cuantificar si lo he conseguido o no, sin embargo, cada vez que lea un libro nuevo, corra un KM más o aprenda un nuevo comando, será una pequeña victoria, y no una derrota constante hasta no cumplir el objetivo.

Veremos dentro de un año si he mantenido estos hábitos, creado nuevos, o perdido alguno de los que está en la lista.

Feliz Año Nuevo