Entre la pantalla y la silla (III): Generando expectativas

En artículos anteriores de esta serie sobre el componente emocional de nuestra vida profesional, hemos hablado de la “necesidad” de compararnos, las acciones que definen nuestra identidad, y de ciertos procesos que ocurren “entre la pantalla y la silla”.

Hoy hablaremos de expectativas y, sobre todo, de los mecanismos que utilizamos para generar esas expectativas, tanto de manera interna como el impacto que tiene en las que generamos y establecemos con otras personas. Hablaremos de optimismo y esperanza, de la diferencia de ambos y de cómo, al menos en mi caso, se confunden los términos continuamente con consecuencias potencialmente desastrosas para nuestra vida profesional y nuestra salud.

Generando expectativas

La famosa frase “un optimista es solo un pesimista mal informado” de Mario Benedetti implica que ser optimista asume que hay cosas que puedes no tener en cuenta. Nunca he estado de acuerdo con esta frase, pero, como otras, la había oído de vez en cuando y pensaba que podría ser un buen punto de partida para hablar de este tema, ya que siempre me he considerado un optimista.

Siguiendo con mi búsqueda de material, me fui al diccionario de la RAE a buscar las definiciones adecuadas y encontré algo muy interesante: Una persona optimista, es aquella “que propende (tiende) a ver y juzgar las cosas en su aspecto más favorable”. Esta definición no encajaba del todo con la idea que tenía yo de optimismo y seguí buscando hasta que me encontré con otra similar, pero con un matiz: Una persona esperanzada es aquella “que tiene la esperanza de conseguir algo”. Este último concepto me sonaba más parecido a la idea que yo tenía del optimismo y me hizo ver que llevaba muchos años equivocado, ya que lo que yo pensaba que era optimismo era esperanza.

Ser consciente de esa diferencia me hizo mirar atrás y descubrir que esa confusión había sido la causa de numerosos conflictos tanto a nivel profesional como personal durante muchos años. La razón es que, mientras que el optimismo busca la parte favorable a una situación, la esperanza no necesita estar basada en algo tangible para formarse, ni siquiera en una acción tomada por nuestra parte, sino que asume que “las cosas van a pasar”, lo que en psicología se denomina un locus de control externo.

Empieza a ser evidente en este punto que un exceso de esperanza poco calibrada genera expectativas irreales que pueden resultar imposibles de alcanzar, llevándonos a un nivel de frustración evitable.

¿Cómo calibramos la mezcla de optimismo / esperanza, así como sus antónimos pesimismo / desánimo? En mi caso, incluso sin ser consciente de esta diferencia, he estado trabajando durante estos últimos años en modular los extremos en lo que se refiere a emociones. Volviendo al primer artículo de la serie, proyecto, trabajo e identidad, hablábamos de las tres dimensiones que alcanza una tragedia, todo a medida, en todos los ámbitos y para siempre, es decir, llevamos las cosas al extremo en esos tres ámbitos.

Si le damos la vuelta al planteamiento, puede resultar interesante pensar que cuando vemos una situación con un tono positivo, ya sea porque ha ocurrido algo realmente bueno o porque tenemos la esperanza de que algo ocurra podemos pensar que está hecho para nosotros, que va a durar para siempre y que va a afectar a todos los ámbitos. En el momento que estas expectativas que hemos generado no se cumplen, nuestro mundo se desmorona y nos vemos como en “el cuento de la lechera”. Lo peor de estas situaciones es que la frustración, la rabia y la tristeza que se puede generar es evitable, ya que es el resultado del fracaso de un escenario que ni siquiera ha sucedido.

¿Qué tiene que ver esto con el desarrollo de software? Entendida la diferencia entre esperanza y optimismo, toca recordar, como le escuché a Scott Hanselman hace casi 10 años en esta charla que la esperanza no es una estrategia. Es importante, además, intentar separar la diferencia entre “creer que se puede hacer algo” y “esperar a que algo salga bien” ya que la primera idea está basada en datos y experiencia y la segunda no tiene por qué estar basada en nada.

Personalmente, el exceso de esperanza, que no de optimismo, ha sido y sigue siendo un limitante en mi vida profesional, provocando que estableciera expectativas internas y externas sin tener en cuenta restricciones y posibles contratiempos, asumiendo que todos los días iba a rendir exactamente de la misma manera y que podía enfrentar problemas diferentes con la misma claridad mental.

Estas expectativas, muchas veces irreales, tienen dos consecuencias opuestas. Me he visto a mi mismo quemándome las pestañas intentando terminar algo en un plazo que era irreal porque mi estimación no era correcta y “esperaba” poder tener una solución al problema en cuestión, cuando no había necesidad ni presión externa por solucionar ese problema en ese momento determinado.

La otra consecuencia que he podido experimentar es que, una vez establecida una expectativa, especialmente si es un proyecto grande y extendido en el tiempo, no puedo evitar que parte de mí entienda o crea que no va a poder ser y evito la frustración del fracaso evitando tomar decisiones al respecto, es decir, procrastinando. De más está decir que “esperar a que los problemas desaparezcan solos”, pese a que es algo común, no es una idea demasiado inteligente.

¿Qué podemos hacer al respecto? Para mí redactar este artículo me ha permitido reflexionar sobre la diferencia entre optimismo y esperanza. Mi siguiente paso es entender donde está la línea o la banda que separa ambos conceptos. Además, estoy utilizando este modelo mental para fijar expectativas internas y externas basándome en optimismo, más que en esperanza.

Esto implica, desde un punto de vista práctico, validar si los objetivos que me fijo a mi mismo o los compromisos que establezco con mis compañeros son realistas o son demasiado ambiciosos tanto en alcance o en tiempo.

Entre la pantalla y la silla (II): Las comparaciones son odiosas

Continuamos esta serie de artículos en la que cubrimos puntos relacionados con la parte emocional de nuestro trabajo, cómo nos define, nos afecta, nos motiva o nos desilusiona.

Hoy veremos la importancia del contexto a la hora de establecer comparaciones, por qué es una mala idea hacerlo, cómo compararnos nos puede desmotivar y cómo puede minar la confianza del equipo en nosotros y nuestra credibilidad.

Las comparaciones son odiosas

Podemos ver a otras personas como fuente de inspiración, aprender de ellas sus habilidades y, si tenemos suerte, y comparten con nosotros sus fracasos y lecciones aprendidas, podemos ganar un conjunto de conocimientos sin haber tenido que pasar por esas experiencias, multiplicando lo que podemos aprender en una vida gracias a las experiencias de los demás. Sin embargo, intentar compararnos puede ser una mala idea.

En casa, a la hora de la comida, las comparaciones es un tema que hemos discutido muchas veces, desde el punto de vista profesional, desde el punto de vista de grados de madurez o incluso de ciertas habilidades como puede ser conducir correctamente. A lo largo de estas conversaciones, una constante siempre ha sido el concepto de la ordenada en el origen:

“Dos funciones matemáticas iguales, con la misma progresión, siempre estarán separadas si empiezan en dos puntos diferentes de una recta”.

En función del sector, del tipo de la empresa y del tipo de proyecto, el crecimiento profesional puede ser exponencial, con lo cual el conocimiento y las habilidades de una persona que lleve varios años en la misma empresa puede parecer inalcanzable para alguien que acaba de entrar y, por experiencia, así lo parece.

Al principio de mi carrera profesional, no fueron pocas las veces que al incorporarme a un proyecto me he sentido maravillado con él, llegándome a sentir intimidado por las habilidades y conocimientos de mis compañeros. Me he comparado con ellos y me he visto en desventaja algo que, con cercanía y paciencia, estos mismos compañeros me han ayudado a superar.

Esta tendencia a compararnos puede afectarnos a su vez, si estamos en el lado privilegiado de la balanza. Este proceso tiene un impacto tanto en nosotros como en nuestros compañeros porque afecta a nuestra capacidad para confiar en nuestro equipo y la capacidad de nuestros compañeros para confiar en nosotros.

Lo peor de esta situación, es que no es necesario que haya un objetivo oculto por ninguna de las partes y se puede dar incluso si todos los miembros del equipo están poniendo su mejor intención. Se da, simplemente, porque hay cosas que no vemos.

En función del contexto, cuando llevamos suficiente tiempo en una industria, en un puesto o en un proyecto podemos llegar a adquirir lo que en psicología se denomina competencia inconsciente en un tema, tarea o proceso, que nos resulte trivial y por tanto sea difícil explicar o transmitir a otros.

En mi caso, procesos que en su momento me costaron días o semanas ahora resultan triviales y me he visto frustrado sin entender por qué compañeros que llevaban poco tiempo en el equipo no lo entendían: había olvidado la ordenada en el origen.

Entre la pantalla y la silla (I): Proyecto, trabajo e identidad

Trabajamos con máquinas convirtiendo problemas ambiguos en instrucciones precisas, que no siempre ejecutan lo que queremos hacer, independientemente de lo que decimos que ejecuten, se trata de la magia del determinismo.

Sin embargo, siempre al otro lado de la pantalla suele haber una figura que tiene un conjunto de emociones que van cambiando a cada minuto del día y que están relacionadas con lo que pasa en la pantalla y fuera de ella.

Una de las realidades a las que me he enfrentado a la hora de crecer profesionalmente, es que no solamente los problemas se van haciendo más complejos, sino que tienen un componente interpersonal cada vez mayor. “Podemos ignorarlo, pero no podemos ignorar las consecuencias de ignorarlo”, decía Ayn Rand.

En la serie de artículos que comienzo hoy hablaremos de algunas cosas que he ido aprendiendo en los últimos años respecto a la relación con nuestros compañeros, con nuestra profesión y con la imagen que tenemos de nosotros mismos. Cómo esos componentes interpersonales nos pueden ayudar a mejorar o nos pueden tirar hacia abajo.

Proyecto, trabajo e identidad

En el libro Atomic Habits, James Clear habla de cómo nuestra identidad (es decir, el quiénes somos) es la suma de los hábitos que tenemos, cómo define las acciones que realizamos y cómo este proceso va en las dos direcciones. Nuestra identidad se ve manipulada por nuestras acciones, es decir, podría decirse que somos lo que hacemos, pero ¿es eso cierto?

Con el paso de los años mi idea de quién soy ha ido cambiando y se ha ido adaptando a las nuevas realidades. Aparte del rol que tenemos de manera familiar y con los amigos, tomamos roles en el mundo laboral como miembros de un equipo y esas experiencias nos definen en ese entorno. Por otra parte, tenemos hobbies, aficiones, o creencias religiosas que constantemente influyen en la visión que tenemos del mundo, y de nosotros mismos.

¿Define entonces nuestro trabajo nuestra identidad? Define, tan solo, la parte de ella que permitamos. El resultado de nuestro trabajo puede reflejar cómo nos comportamos en un ambiente laboral, puede hablar de lo detallistas o creativos que seamos, en un momento dado y en un área, pero no es un indicador de toda nuestra vida y de cómo nos comportamos en otras áreas de esta.

Es especialmente importante tener en cuenta esta distinción, especialmente cuando, por las circunstancias que sean, no estamos en nuestro mejor momento en el entorno laboral.  Son muchos los factores que pueden afectar a nuestra productividad, ya sea por presión, pérdida de motivación o de calidad en el trabajo. Podemos pensar, y de hecho me ha pasado a nivel personal, que la situación laboral se va a extender a otros entornos como son la familia, los amigos o la pareja.

En el año 2018, un año muy duro desde el punto de vista personal y familiar, escuché el libro Option B de Sheryl Landberg. En él hablaba del viaje de superación personal por el que pasaron ella y sus hijos al morir su marido, y mencionaba que las tragedias que se nos presentan en la vida parecen expandirse en tres dimensiones: personal, pervasive & permanent. Todo parece hecho a medida para nosotros, parece que va a afectar todas las áreas de nuestra vida y da la sensación de que no va a acabar nunca.

Estas tres dimensiones finalmente se pueden limitar. La mayor parte de nuestros problemas son comunes a otras personas que se encuentran en situaciones similares. Se pueden intentar contener en un área de nuestra vida y, por lo general, se superan con el tiempo.

Es por tanto por lo que, al pasar por un momento profesional duro, he aprendido (y sigo aprendiendo) a separar qué parte de mi identidad era el trabajo, que parte era el resto de mí, y centrarme en las otras áreas como la familia y los amigos (y apoyarme en ellos), así como ocupar la mente con otros proyectos, dando un espacio, lugar y tiempo específicos para resolver los problemas laborales.

Libro: Una tierra prometida

Una de mis lecturas de estas navidades ha sido el primer volumen de las memorias de Barack Obama, titulado Una Tierra Prometida. El autor incluye su experiencia como estudiante, abogado, senador, candidato y, finalmente, como cuadragésimo cuarto presidente de los Estados Unidos hasta mediados de 2011.

En mi caso, he escuchado el audiolibro en inglés publicado por Random House Audio, leído directamente por Obama, con una duración de aproximadamente 20 horas, que corresponden a aproximadamente 900 páginas. A lo largo de éstas, Obama explica no solamente las acciones realizadas por él y su administración, sino que además establece el contexto necesario para entender o justificar dichas acciones.

El libro cubre sobre todo el panorama político nacional e internacional durante su mandato, las relaciones con Irán, Irak, Libia, Egipto y Rusia, el impacto económico de la quiebra de Lehman Brothers, las políticas migratorias de EE. UU., los problemas derivados del racismo y el abuso policial hasta los detalles de la física involucrada en el accidente de la Deepwater Horizon, le plataforma cuya explosión causó el vertido de petróleo de BP en el golfo de México.

A nivel personal, sin embargo, la lección más importante, que va más allá de la política, tiene que ver con lo difícil que resulta cambiar el statu quo. En la industria del software estamos acostumbrados a leer sobre revoluciones, cambios radicales y cortar con lo establecido.

También está mejor valorado contar con la libertad que proporcionan los proyectos desde cero, (Greenfield), que mantener o evolucionar un proyecto existente (Brownfield). Estos últimos estarán creados por otros que ya no están, impondrán una serie de restricciones y, por tanto, tendrán menor grado de libertad.

Una de las cosas que nos recuerda leer sobre política, es que es un campo en el que nunca se parte de cero. Asumir el control de un proyecto en curso implica entender la inercia que el proyecto lleva. Una vez entendida esta inercia es necesario sopesar la capacidad para cambiar el rumbo y más importante, el riesgo de hacerlo.

El libro, por tanto, transmite varios ejemplos de cómo cambiar inercias de manera efectiva, y las consecuencias de intentar cambiar más o prometer más de lo que es posible.

Para empezar, unas expectativas exageradas generan decepción y frustración. Especialmente en la transición de candidato a presidente, Obama reflexiona sobre las expectativas de cambio que se pusieron sobre su candidatura, incluyendo un premio Nobel de la Paz. Un exceso de expectativas y no entender la capacidad de cambio generaron decepción y frustración no solo a nivel personal, sino a nivel nacional e internacional.

Para poder llevar a cabo ese cambio que se busca y cumplir con las expectativas de sus votantes, Obama destaca la necesidad de negociar tanto con aliados como con fuerzas hostiles. Negociar implica hacer concesiones y esas concesiones conllevarán muchas veces quedarse cortos en la intención original.

Se habla de la necesidad de negociar con su propio partido, con la oposición y a nivel internacional con gobiernos aliados y hostiles, considerando el las consecuencias económicas, políticas, personales e incluso morales de estas concesiones.

Finalmente, a la hora de la ejecución, es importante tener más de una opción sobre la mesa, y desafortunadamente, las opciones más efectivas pueden resultar ser las más radicales. Esto significa que a más radical la opción más difícil de negociar y más probable que se venga abajo.

Usando ejemplos como la gestión de la crisis económica de 2008, la reforma del sistema sanitario y varios ejemplos de política internacional, Obama pone sobre la mesa las diferentes opciones disponibles, las que finalmente llevaron a cabo y la recepción que tuvo la opinión pública del resultado.

Otra lección aprendida a lo largo del libro es que cualquier ejecución siempre será demasiado para unos y demasiado poco para otros, independientemente del resultado real, que está relacionado con la gestión de expectativas.

Pese a ser una memoria escrita por el protagonista, resulta ingenuo pensar que pueda ser una visión imparcial de este período histórico en la que no falta la crítica a sus predecesores, al partido de la oposición y a voces opuestas en su propio partido tanto durante la campaña como durante la presidencia.

En líneas generales, supone una lectura interesante y amena, así como una manera de tener un mejor entendimiento sobre cómo funciona, desde dentro, el sistema político y electoral de los Estados Unidos, así como las relaciones internacionales donde todo se mueve en escala de grises.

Una Tierra Prometida por Barack Obama está disponible en Amazon y en tu librería favorita.

Balance de 2020 y Propósitos para 2021

2020 ha sido un año disruptivo para todos. Más allá del drama sufrido por las víctimas de la Covid-19, a todos nos ha cambiado la manera de trabajar, de socializar, de aprender y de entretenernos, y ha hecho que algunos de nuestros objetivos que pusimos a principios de año se conviertan en irrelevantes.

Es por eso que intentar hacer balance de este año, sobre todo compararlo con cómo veíamos el mundo en diciembre de 2019, puede parecer ingenuo, fuera de lugar o directamente inútil. Pese a eso: vamos allá. No solamente para intentar sacar algunas cosas positivas de este año, sino también para ser optimistas y pensar que lo mejor está por llegar.

Escribiendo un libro

A finales de 2019 surgió la oportunidad de convertir Offboarding en un libro, y a principios de 2020, justo cuando en España se estaba decretando el estado de alarma, estábamos finalizando la campaña de crowdfunding con el objetivo de financiar la edición del mismo.

Con la edición asegurada, surgió el reto de dar forma a un conjunto de ideas, mapas mentales y notas de entrevista en un texto consistente. El resultado de mañanas y noches de escritura, re-escritura, conversaciones y revisiones ha dado como resultado el texto más largo que he escrito hasta la fecha y que, a fecha de hoy, está en proceso de edición.

Todo este proceso me ha mantenido alejado del blog, aunque he tenido oportunidades para publicar un par de artículos: Roomba Development, o la necesidad de parar (gracias Jorge por el término) y Respondiendo tres preguntas sobre programación como hobby (a raíz de un debate sobre si programar como hobby era imprescindible para tener una carrera exitosa o un buen currículum en este campo).

Reflexiones navideñas y objetivos ambiguos

El año pasado, a principios de diciembre, escribí una breve reflexión sobre la necesidad de compartir el tiempo con las personas que estaban a nuestro alrededor y alejarnos de las pantallas, ignorando que este año nos iba a mantener tan separados y que echaríamos de menos ese tiempo compartido.

A su vez, en el resumen del pasado año había sido bastante ambiguo en cuanto a los propósitos de año nuevo:

[…] dedicar más tiempo a leer y a aprender, a escribir y compartir contigo las cosas que leo y aprendo, más eventos ([…] DosConf y WeCode […]), más tiempo y espacio para estar con la familia, amigos y gente que nos soporta.

Por una parte, sí que pude acudir tanto a DosConf como a WeCode, compartiendo con amigos y compañeros de profesión antes de que en marzo todo cambiara.

Por otra parte, he de asumir la realidad de que este año he leído menos, con diferencia, que otros años. Goodreads marca un total de 18 libros, entre papel, Kindle y audiolibros, a falta de 1 día para que acabe el año. Como comparación, 2019 cerró con 30 libros entre los diferentes formatos.

A su vez, en comparación con otros años, apenas he escrito y compartido en el blog, pero he de reconocer que este año tengo excusa ya que prácticamente todo el tiempo que otros años ha estado en el blog y en proyectos personales se lo ha llevado la escritura del libro.

Finalmente, en lo que se refiere a tener más tiempo y espacio con la familia, por una parte he estado trabajando desde casa los últimos 9 meses, lo cual hace que esté más presente (en teoría) y he podido hablar y compartir con compañeros y amigos del otro lado del mundo y aprender de ellos, en más de un café virtual que antes habría sido raro pero que ha acabado formando parte de la nueva normalidad que hoy vivimos.

Con la vista en 2021

Este año quiero recuperar el formato y el estilo más estructurado que hice cuando me puse mis propósitos para 2019, siendo un poco más conciso sobre qué quiero hacer y cómo pienso hacerlo. En líneas generales será un año enfocado en leer, escribir y correr.

Leer 20 páginas al día de libros: Una de las ideas que he puesto en marcha durante las vacaciones de navidad ha sido leer en bloques de 20 páginas, un número escogido de manera arbitraria que me permite tener cierta sensación de progreso en los libros que estoy leyendo. Para este objetivo tendré en cuenta solamente volúmenes en papel y en digital, dejando de lado audiolibros y artículos.

Leer 24 libros (o 2 al mes): Más allá del hábito diario, quiero tener una meta a medio-largo plazo en cuanto al número de libros que consumo, esta vez incluyendo audiolibros que me permiten seguir aprendiendo y entreteniéndome de una manera diferente mientras salgo a correr o paseo al perro.

Leer 52 artículos técnicos (o 1 por semana): Twitter es una fuente infinita de conocimiento y de artículos técnicos de todo tipo, especialmente desde que sigo a personas como Félix López, que comparten de manera recurrente más artículos de los que tengo tiempo para leer y se acumulan en mi lista de Pocket. Por tanto, una vez por semana, pretendo seleccionar un artículo con la idea de leerlo con calma. Una mejora marginal sobre mi inexistente proceso actual.

Leer 4 libros técnicos al año (o 1 por cuatrimestre): Como parte de los 24 libros mencionados anteriormente, quiero incluir específicamente temas relacionados con arquitectura, diseño y desarrollo de software. Un tipo de lectura que, personalmente, ha quedado relegada a artículos breves durante los últimos años y que siento que necesita una puesta a punto.

Examinarme de una certificación AWS: Recupero el objetivo planteado en 2019, con la intención de, tras más de 5 años usando la nube de Amazon Web Services, afianzar conocimientos, estudiar de manera más concisa para complementar la experiencia de campo y poner esos conocimientos a prueba.

Escribir 8 artículos en el blog (o 2 cada cuatrimestre): Ya sea sobre los libros técnicos (o no técnicos), los artículos leídos, la experiencia del examen o el progreso de Offboarding, espero tener mucho que compartir durante este año.

Correr 300 km (o 25 km al mes): En 2021 pretendo recuperar los 300 km que corrí en 2018 (en 2019 fueron 219 y en 2020 tan solo 132), usando una combinación de salidas a la calle y carreras en cinta. El número es, una vez más, arbitrario, y la idea es ir comprobando el progreso mes a mes.

Para finalizar

Hay muchas cosas más que me gustaría hacer este año, desde el punto de vista personal, profesional, social, familiar, etc. Las circunstancias podrían cambiar una vez más, para bien o para mal y podríamos vernos el próximo año en un mundo completamente diferente.

Las navidades siempre abren un período de reflexión y los propósitos de año nuevo son parte de este momento en el que paramos, pensamos en lo que hemos conseguido durante el año y qué esperamos de los próximos 365 días.

No me queda más que desearte, querido lector, que tanto tú como los tuyos estéis bien, que paséis unas felices fiestas, y un feliz año nuevo.

Respondiendo tres preguntas sobre programación como hobby

El desarrollo de software es una disciplina que a muchos nos ocupa una parte importante de nuestros días. En concreto la programación, y convertir ideas en código, es algo a lo que podemos dedicar la mayor parte de nuestro tiempo. Desarrollar software no es solo programar, pero definitivamente programar forma parte del desarrollo de software.

Programar también es un hobby, que puedes usar como manera de dar rienda suelta a tu creatividad en un entorno controlado y sin ningún tipo de expectativas sobre el resultado. A título personal siempre ha estado en ese punto medio entre profesión y hobby, y es una de las razones por las que existe este blog.

Sin embargo, y sobre todo tras períodos de mucha intensidad laboral, intento volver a la programación como hobby y no paro de repetirme tres preguntas, ¿qué, cómo y cuándo?

¡Importante!

Existe la creencia de que tener la programación como hobby es un requisito indispensable para ser un programador o desarrollador de software de éxito, y que es necesario emplear tiempo fuera de nuestro trabajo programando.

En mi caso particular, disfruto de la programación como hobby, me ayuda a concentrarme y a cambiar de contexto, pero no creo que sea ni la mejor ni la única manera de tener éxito profesional en el desarrollo de software. Hago esto porque me apasiona, no me siento obligado a ello, y tú no deberías.

¿Qué?

Existen muchas cosas que se pueden hacer al programar como hobby, por una parte podemos usar algo relacionado con otro apartado de nuestra vida, en mi caso un Dashboard en QuickSight para llevar registro de mis entrenamientos, Trillo para llevar un registro de viajes y “comparar banderas” o una aplicación de gestión de tareas para Android (The Time Box).

Por otra, si lo que buscamos es aprender o intentar entender cómo funcionan las cosas, podemos intentar copiar herramientas existentes, como hice con Kanwal, intentando hacer una copia de Trello o con un motor de inyección de dependencias en C# emulando otros tantos existentes. Intentar averiguar cómo funcionan herramientas o aplicaciones que usamos día a día puede ser increíblemente estimulante.

Finalmente, podemos recurrir a problemas externos, entre los que están las katas. Una kata, que viene del mundo de las artes marciales, es un conjunto de movimientos repetido una y otra vez con los que se desarrolla memoria muscular.

Las katas de código, , al igual que las katas de artes marciales, son problemas que comienzan de manera muy simple y luego adquieren complejidad con cada paso. En este blog hemos visto algunas. Existen muchas fuentes de Katas disponibles, una de las más interesantes es este repositorio de Github en el que además puedes contribuir si encuentras otras.

Finalmente existen libros como Exercises for Programmers que nos proporcionan problemas que podemos implementar en nuestro lenguaje favorito, así como opciones adicionales para agregar complejidad a la ejecución de los mismos.

¿Cómo?

Uno de los componentes más importantes a la hora de hacer un proyecto de hobby es el entorno. Salvo que el objetivo que estemos persiguiendo sea el de aprender cómo funcionan gestores de dependencias y compilación como npm, webpack, gradle, maven o nuget, serán un inconveniente más que una ayuda para empezar.

Es por ello que, en mi última sesión de programación como hobby, encontré una herramienta que me permitiera crear un entorno listo para empezar a escribir código sin tener que estar pendiente de dependencias y configuración, llamada TSDX:

Esta herramienta, como mencionaba en el tweet, permite crear un paquete desde cero con la configuración necesaria para hacer pruebas, y poder empezar a cacharrear, usando TypeScript. En mi caso, pude descargar la aplicación, y empezar a ejecutar los tests en tan solo unos minutos, y eso me ahorró una cantidad significativa de tiempo.

En el caso de otros lenguajes estoy convencido que existirán soluciones similares, si conoces de alguna no dejes de comentarlo!

¿Cuando?

Los hobbies suelen estar relegados a “cuando haya tiempo” sin embargo por nuestra paz mental, es recomendable que dediquemos tiempo a hacer tiempo para nuestros hobbies.

Por una parte es necesario recordar que el objetivo es aprender, divertirse y que no debe ser un motivo de frustración, pero también que este hobby puede ser increíblemente absorbente. Es por ello por lo que recomiendo, y me estoy aplicando el cuento para este artículo, pensar durante unos minutos en lo que que queremos llevar a cabo, y luego definir el tiempo que dedicaremos a ello.

Idealmente estos proyectos deberían ser cortos, de tan solo unas horas o como mucho unos días (un fin de semana largo o períodos vacacionales puede dar lugar a mucha creatividad)

Es más que probable que el tiempo que planeemos no sea suficiente para lo que queremos, pero eso también nos permitirá aprovechar el tiempo que le hemos asignado a este pequeño proyecto antes de vernos “en modo Roomba“.

Conclusiones

Si programar es tu hobby, sea o no tu profesión, necesitas saber qué hacer, donde y cómo. En este artículo hemos visto tipos de proyecto que llevar a cabo, fuentes de datos para katas y proyectos, herramientas para tener un entorno en el que empezar a jugar sin estar preocupados de configuración o dependencias, así como algunos consejos sobre cómo organizar nuestro tiempo para que la sesión de programación sea lo más efectiva posible.

¿Y tú, tienes algún consejo relacionado con la programación como hobby?

Roomba development, o la necesidad de parar

Hace más de seis meses de mi última entrada en el blog, en la que hablaba del proyecto que me ha tenido (y me sigue teniendo) ocupado durante los últimos meses, que es la escritura y edición de Offboarding, además de mi trabajo habitual como ingeniero de software.

Hoy, sin embargo, no vengo a hablarte de Offboarding, sino de una idea que al menos para mí ha sido novedosa. Hace unos días hablaba con un buen amigo, que me sigue recordando lo rápido que nos cambia la vida de un momento a otro, acerca del tiempo que yo le había dedicado a resolver un problema del trabajo que me obsesionaba particularmente.

El pobre Jorge, que ya no sabía cómo decirme que estaba dedicando demasiadas horas, compartió conmigo una metáfora que me ha tenido pensando desde entonces, el Roomba development.

Sin embargo, antes de llegar ahí, veamos el que ha sido mi razonamiento principal durante muchos años, que en este artículo llamaremos “la visión de túnel”.

La visión de túnel

Durante mucho tiempo he tenido la convicción de que, personalmente, me resulta más sencillo seguir adelante buscando la solución a un problema cuando tengo todo el problema “en mi cabeza”.

Es por eso que forzarme a parar solamente me provocaría perder tiempo por tener que volver a pensar en el problema más tarde o al día siguiente (por no mencionar un fin de semana o unas vacaciones).

Esta mentalidad queda reflejada de manera muy gráfica, al menos para mí, en el siguiente cómic:

Focus

Este razonamiento tiene como consecuencia que desarrolle una visión de túnel, sienta la necesidad de seguir trabajando en la solución del problema más allá de lo necesario, y ocupando tiempo que debería dedicar al libro, este blog, mi desarrollo profesional, a mi familia y los que dependen de mí y a mi propia salud física y mental.

Es posible que necesite una alternativa.

Enter Roomba Development

¿Y si lo estuviera enfocando mal? ¿Y si el coste de volver a establecer contexto fuera muy inferior al de parar? ¿Y si lo que creo que es progreso no deja de ser razonamiento circular?

Una posible respuesta a estas preguntas viene de la mano del concepto de Roomba development, definido por Jorge de la siguiente manera:

Lo que te pasa es que vas como una Roomba dándote golpes contra las paredes y acabas resolviendo el problema, pero a base de cabezazos.

Sin embargo, si como la Roomba, vuelves a la base y vuelves a hacer el mapa del suelo, puedes resolver el problema antes y de manera menos dolorosa.

Es decir, aplicado a un punto práctico, si he estado varias horas de más intentando solucionar un problema, no lo he solucionado por las horas de más, sino que lo he logrado a pesar de ellas.

Estar en modo Roomba es agotador, frustrante, y no ayuda a ser productivo al día o semana siguiente, es por ello por lo que es importante aprender a interrumpir este modo lo antes posible.

La necesidad de parar

Es necesario dar espacio a la mente para que procese toda la información que maneja (que es considerable en los tiempos que corren) y encontrar la solución más adecuada a los problemas puede necesitar un enfoque alternativo.

Por una parte, cambiar de contexto no tiene por qué ser una mala idea, y poner la mente a trabajar en otro tipo de tareas que pueden ser exigentes a su propia manera (como escribir el artículo que ahora lees) permite cambiar el estado de ánimo, especialmente si la búsqueda de la solución a un problema se torna frustrante.

Por otra, mirar un problema con ojos nuevos tampoco tiene por qué ser una mala idea. Como la Roomba que realiza un mapa nuevo del suelo, volver a poner el problema en nuestra cabeza es como cocinar la misma receta dos veces, nunca será exactamente igual, y eso en desarrollo de software puede marcar la diferencia.

Recapitulando

El modo Roomba me ha permitido cuestionarme una idea a la cual estaba aferrado, y era que el coste de volver a poner el problema en mi cabeza era más alto que el tiempo extra empleado intentando resolverlo más allá de lo razonable.

Es por ello que, a partir de este nuevo curso escolar, pienso estar más atento a cómo planteo la solución a un problema y de la calidad del tiempo que estoy dedicando al mismo, por deber profesional y por estabilidad emocional.

Espero que este nivel de atención dé como resultado otros artículos de temas variados y así como más progreso en el libro, buscando ese hueco para enfrentarme al los problemas ojos nuevos, y tal vez, solucionarlos de una manera diferente, menos dolorosa.

Offboarding se convierte en un libro (con tu ayuda)

Te acuerdas del artículo sobre Offboarding de septiembre del año pasado? Después de aquella entrada me quedé con muchas ganas de hablar más del tema, y mientras más lo pensaba, más veía que el tema daba para hablar más sobre los procesos que necesitamos tener en cuenta cuando hacemos un cambio de proyecto a destiempo, cuando nos apartamos de un equipo o empresa y el proyecto sigue adelante.

Por coincidencias de la vida, en la Tarugo4 del pasado octubre tuve la ocasión de conocer a Guillermo de Libros.com, y estuvimos hablando sobre la editorial, el modelo de financiación y el hecho de que estaban buscando ideas para publicar. Conocí también a Roberto y a otros miembros del equipo, y les enseñé el artículo. Tras varios conflictos de agenda un día pasé por las oficinas donde pude ver cómo trabajaban, y estuvimos hablando de cómo transformar este artículo en un libro.

Pasadas las navidades, el proyecto empezó a tomar forma, incluyendo algunas sesiones de formación y algún que otro papeleo para asegurarnos que todo fuera sobre ruedas, y eso nos lleva a hoy.

Hoy el proyecto de Offboarding está mucho más cerca de ser una realidad, un manual de cómo podemos dejar atrás un proyecto con la mente clara y la tranquilidad de haberlo hecho lo mejor posible, y para ello necesita tu ayuda.

Con tu colaboración consigues que Offboarding se edite, se publique y se distribuya, te llevas una de las primeras copias y además puedes seguir de cerca el proceso de creación, edición y puesta en el mercado de un libro. Para colaborar, hazte mecenas en Libros.com

2019. Fin de una década

Siempre he pensado que las fechas tienen un significado trascendental más allá de un número en un calendario, y es por eso que en la familia siempre hemos sido de celebrar cosas.

Celebramos los cumpleaños, aniversarios de novios, aniversarios de vivir juntos, aniversarios de aquel viaje que hicimos a aquel sitio, cierres de etapa, inicios de etapa, y también celebramos por aquellos que han estado y ya no están.

2019 se acaba, con él se lleva por delante una década que para mí ha sido increíblemente intensa desde el punto de vista personal y profesional, diez años en los que he podido compartir lo aprendido contigo querido lector, a lo largo de 270 entradas (271 con la que estás leyendo en estos momentos).

Este año he podido compartir contigo reflexiones, libros que he leído como Atomic Habits, eventos en los que he estado como Tarugo4, patrones de diseño como BFF o procesos y maneras de trabajar como es el caso de Offboarding y el modelo C4.

Se me han quedado algunas series en el tintero que quiero retomar, entre las que está la segunda parte de Cloud Running, el artículo sobre la influencia del idioma inglés en palabras relacionadas con desarrollo de software y el pet project que me ha mantenido ocupado estas últimas semanas, un editor de markdown de escritorio escrito en C++.

El año pasado fijaba algunos hábitos para este año, desde concentrarme en bloques, correr cada semana, mejorar la organización, desconectar activamente, leer, aprender más, y respirar.

Este año he leído, y mucho, de acuerdo con GoodReads he leído, entre audio y texto, 28 libros respecto a 13 del año pasado, y tengo varios a medias que pretendo rematar a principios de año.

Respecto al resto de hábitos es difícil cuantificarlo, ya que he podido tener más sesiones de concentración pero me he distraído más, desconectar activamente ha sido un reto, y aunque he aprendido mucho este año, no le he dedicado el tiempo necesario para sentarme y estudiar.

Para 2020 me gustaría dedicar más tiempo a leer y a aprender, a escribir y compartir contigo las cosas que leo y aprendo, más eventos (de momento tengo entradas para DosConf y WeCode, así que si estás por ahí seguramente nos veamos), y como comentaba en mi reflexión de principios de mes, más tiempo y espacio para estar con la familia, amigos y gente que nos soporta.

No pido más de la próxima década, tiempo y espacio y para poder hacer cosas interesantes, y paz mental para poder llevarlas a cabo.

Dentro de unas horas, en España estaremos tomando las uvas al son de las 12 campanadas de la puerta del Sol, celebraremos la nochevieja y, tan solo unos días después veremos desfilar a los tres reyes magos antes de dejar miles de presentes a los más pequeños en una noche mágica. Y con ello terminarán las navidades y empezaremos, con fuerza, la década de los 20’s.

Feliz año nuevo

Una reflexión de diciembre

Acaba de empezar diciembre, este mes cerramos año y década, y me ha parecido una buena ocasión para compartir con vosotros una breve reflexión.

En los más de 10 años que llevo escribiendo este blog, he visto empresas y productos desaparecer, paradigmas tecnológicos que iban a revolucionar las cosas que luego no han revolucionado tanto, lenguajes, herramientas, métodos, y utilidades para aburrir, todo esto son, dicho de una manera simple, cosas, en las que personalmente he invertido mucho tiempo, y aunque he aprendido mucho por el camino, no dejan de ser cosas.

Por otra parte, he podido podido compartir experiencias por videoconferencia y escenarios con grandes profesionales a los que admiro mucho, he descubierto el formato open space y superar el miedo a salir a proponer temas para discutir, que a veces saliera, y a veces no, aprender de la experiencia de los demás, aportar un poco siempre que se pudiera y escuchar mucho rodeado de gente. Personas que van un paso más allá para compartir lo que saben, muchas veces de manera altruista y de su propio bolsillo. Estas experiencias me han enseñado mucho, pero más importante, he podido conocer a gente excepcional.

Estas situaciones en cierta manera contrastan con el día a día de nuestra profesión, que en ocasiones requiere y exige que nos pasemos largas horas en la soledad de nuestra pantalla, nuestro IDE, y aunque tenemos cientos de maneras de distraernos y perder el foco, no deja de ser un momento de soledad. El estrés y la ansiedad causados por el día a día del trabajo no hacen más que incrementar esta soledad, ya que nos vemos pasando más tiempo en la pantalla, más tiempo alejados de la gente y para colmo, expuestos a las redes sociales que nos recuerdan de manera constante todo lo que nos estamos perdiendo.

Esa gente, que es nuestra familia, nuestros amigos, nuestros compañeros del trabajo, los miembros de la comunidad a la que pertenecemos, los colegas de la facultad, la gente con la que entrenamos, etc., es importante. Son ellos los que nos sacan del pozo cuando el trabajo se complica, y los proyectos se atragantan, y son ellos los que están allí si las cosas van mal en el terreno personal.

Siempre tendremos trabajo, siempre será urgente, y siempre será lo más importante, y muchas veces será diferente, sin embargo, y es algo que todos experimentaremos según pasa la vida, esa gente a la que importamos, nos importa y nos apoya no va a estar para siempre, y de hecho nos queda mucho menos tiempo con ellos del que creemos.

Por ello, en estos últimos días de la década de los 2010, me gustaría que todos nos alejáramos un poco de las pantallas, de la soledad de nuestros proyectos, pongamos el móvil en no molestar y les dediquemos un poco más de tiempo a esas personas que nos soportan, que nos apoyan y que nos ayudan a avanzar, y estemos allí para ellos con una sonrisa, los brazos abiertos y voluntad de escuchar.

Espero volver a veros por aquí después del 25 de diciembre para compartir con vosotros mi resumen anual, y tal vez algo con más contenido técnico :)

Feliz Navidad.