<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Asier Marqués</title><link>https://blog.asiermarques.com/</link><description>Recent content on Asier Marqués</description><generator>Hugo</generator><language>es-ES</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.asiermarques.com/index.xml" rel="self" type="application/rss+xml"/><item><title>De identidades, facetas y hobbies.</title><link>https://blog.asiermarques.com/2026/identidades-facetas-y-hobbies/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.asiermarques.com/2026/identidades-facetas-y-hobbies/</guid><content:encoded>&lt;p&gt;Hace 28 años, en 1998, hacía mis pinitos intentando componer algo que sonase medio bien con el Rebirth 338. Mi PC, con sus poderosos 16 megas de memoria RAM hacía sonar mágicamente dos míticas Roland 303 y una caja de ritmos 909, emuladas, obviamente. Al poco tiempo un compañero del colegio donde estudiaba escuchó hablar de mí y me descubrió lo que significaba pinchar música electrónica.&lt;br&gt;
Nos escaqueábamos de clase para ir a escuchar vinilos en una de las escasas tiendas de discos en Vizcaya o nos pasábamos la tarde poniendo discos en la cocina de su casa, en la que montaba un equipo modesto formado por dos platos de polea y una mesa de mezclas Akiyama. Tardaría un par de años en poder comprar mi primer plato e ir a los primeros concursos de DJ.&lt;/p&gt;
&lt;p&gt;En el 2000 me recorrí las salas Tívoli, Columbus e Itzela, en las que a veces lograba quedar como finalista en algún concurso, pero no podía presentarme a la final porque no tenía coche y mis amigos no siempre podían llevarme. Más tarde tuve mi primer programa de música con un colega en una radio que no escuchaba absolutamente nadie. Conocí a mucha gente de la que aprendí un montón, con la que compartí cabina en salas que ya no existen y muchas horas de escuchar música, pinchar en txokos de algunos de ellos y en fiestas más o menos legales.&lt;/p&gt;
&lt;p&gt;Esa faceta no me ha abandonado. Es una de las que he tenido durante toda mi vida. Y hace unos meses tomé la decisión de darle otro lugar, un espacio muy distinto al que tenía hasta ahora.&lt;/p&gt;
&lt;p&gt;Me he dado cuenta de que a lo largo de mi vida no he sabido separar lo que era una faceta de lo que era una identidad. Y cuando asociaba algo que me gustaba hacer a mi propia identidad, no era capaz de quedarme en la superficie. Necesitaba adquirir una maestría que estuviera a la altura de mis expectativas, mucho más lejos de la media. Y eso es agotador cuando te gusta hacer muchas cosas. Y sobre todo, cuando esas cosas han formado parte de tu vida tantos años y has sido tan feliz mientras las hacías.&lt;/p&gt;
&lt;p&gt;He de reconocer que para mí, hacer algo simplemente como “un hobby” es aún algo que no termino de apreciar como debería y que por ello, no puedo evitar meterme demasiado en algo que me llame la atención. Estoy aprendiendo aún en este sentido, pero encontrarás trazas de esto en este texto.&lt;/p&gt;
&lt;p&gt;Epícteto dijo que te conviertes en aquello a lo que prestas atención. En mi caso, esta faceta había llegado a ser tan fuerte para mí que se adueñó de parte de mi identidad. Era una forma de representarme, de responder a la pregunta “¿quién soy?”. Pero aunque la de deejay es una faceta que tengo y de la que me siento muy agradecido, por lo que me ha aportado en otras áreas, ya no ocupa tanto tiempo de mi atención.&lt;/p&gt;
&lt;p&gt;Hay diferentes motivos para ello. Podría decir que soy un dj de vinilo y que ahora la tecnología le ha quitado toda la gracia al arte de pinchar. Pero sería parte de la historia. En realidad, creo que hace tiempo que esta faceta ha pasado a ser un hobby y no tengo la motivación necesaria para estar todo el día seleccionando música y pensando en mezclas como antaño. Y está bien. Puedo disfrutar de esta faceta pasada como un hobby ahora, cuando el trabajo, la vida y otras cosas con las que estoy obsesionado en este momento, me piden un descanso.&lt;/p&gt;
&lt;p&gt;Y qué guay es poder contar con descansos de este tipo.&lt;/p&gt;
&lt;p&gt;Nos leemos.&lt;/p&gt;</content:encoded></item><item><title>Reflexiones sobre aprender en un mundo de IA</title><link>https://blog.asiermarques.com/2026/reflexiones-aprender-mundo-ia/</link><pubDate>Sat, 28 Mar 2026 23:00:01 +0000</pubDate><guid>https://blog.asiermarques.com/2026/reflexiones-aprender-mundo-ia/</guid><content:encoded>&lt;p&gt;El pasado fin de semana asistí por primera vez al StartUp Open Space de Zaragoza (el &lt;a href="https://sosz.cachirulovalley.com/"&gt;SOSZ&lt;/a&gt;).&lt;br&gt;
Como ocurre en este tipo de encuentros, no hay agenda predeterminada, y cada asistente puede proponer y votar los temas que se tratarán durante el día.&lt;/p&gt;
&lt;p&gt;Uno de los temas fue cómo aprender en un mundo de IA. Como me interesa especialmente, decidí asistir al debate. Tras el mismo, me quedé dándole vueltas a varias ideas y me apetecía compartir aquí algunas reflexiones rápidas. Y de paso, quitarle las telarañas al blog, que llevaba tiempo queriendo hacerlo.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://images.unsplash.com/photo-1712002641124-2950ba667e78?ixlib=rb-4.1.0&amp;amp;q=85&amp;amp;fm=jpg&amp;amp;crop=entropy&amp;amp;cs=srgb" alt="Foto de Solen Feyissa en Unsplash"&gt;&lt;/p&gt;
&lt;p&gt;Foto de &lt;a href="https://unsplash.com/es/@solenfeyissa?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Solen Feyissa&lt;/a&gt; en &lt;a href="https://unsplash.com/es/fotos/un-primer-plano-de-un-telefono-celular-sobre-una-mesa-ECTqHPd7Afg?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="el-impacto-de-la-ia-a-la-hora-de-aprender"&gt;El impacto de la IA a la hora de aprender&lt;/h2&gt;
&lt;p&gt;Estamos ante un momento histórico. Nunca una tecnología se ha adoptado por tantas personas en tan poco tiempo.&lt;/p&gt;
&lt;p&gt;La IA nos ofrece respuestas inmediatas y nos ayuda a resolver problemas de todo tipo sin necesidad de ser expertos en la materia. La utilizamos como un autoservicio de “conocimiento infinito”, aunque en realidad lo que hace es generar respuestas lo más cercanas posible a las preguntas que le hacemos. Este es un matiz que a menudo no nos parece importante, pero lo es. Y bastante.&lt;/p&gt;
&lt;p&gt;A menudo, estas respuestas se acercan tan bien a lo que buscamos que las damos por buenas. En otras ocasiones, no son del todo correctas. O ni remotamente acertadas. Casi del “mismo” modo que cuando preguntamos a una persona que no conocemos. Sus respuestas pueden ser correctas, no del todo acertadas o totalmente incorrectas, independientemente de la intención que esta tenga al darlas.&lt;/p&gt;
&lt;p&gt;Pero imaginemos que la IA nunca se equivocase en sus respuestas. Es más, pensemos en un escenario tan simple en el que sólo exista una única verdad. ¿Qué supondría eso para nuestro aprendizaje? ¿Cómo de cómodos nos volveríamos si tuviéramos la posibilidad de obtener rápidamente la respuesta a cada problema? ¿Cómo nos afectaría a nivel cognitivo? ¿Cómo afectaría a nuestra motivación si ya no hubiera un reto que no pudiéramos resolver de forma instantánea? ¿Dónde quedaría la creatividad si todos “resolviéramos” los problemas de la misma forma?&lt;/p&gt;
&lt;p&gt;Es cierto, he pedido imaginar demasiado. El problema es que ya hay un riesgo de que asumamos que la IA nunca se equivoca y que tiene siempre la verdad. La única verdad.&lt;/p&gt;
&lt;p&gt;Y es que los asistentes de IA sí que nos ayudan a solucionar problemas. A menudo, los resuelven incluso mejor de cómo los hubiéramos resuelto por nuestra cuenta. Y cuando alguien nos da varias respuestas correctas de forma consecutiva, es muy fácil asumir que su siguiente respuesta también será la correcta.&lt;/p&gt;
&lt;p&gt;Pero no creo que estos problemas sean nuevos. Lo que sí es nuevo es el potencial para volvernos mucho más cómodos y el riesgo de pensar que somos nosotros los que estamos resolviendo los problemas cuando han sido resueltos por una IA en realidad.&lt;br&gt;
Podemos dejarnos llevar sin autocrítica ni una responsabilidad en nuestro propio aprendizaje.&lt;/p&gt;
&lt;p&gt;Las herramientas nos pueden impactar para bien o para mal. La diferencia es que, con la IA, ese impacto será mucho mayor.&lt;/p&gt;
&lt;h2 id="queremos-ser-resolutivos-o-queremos-aprender"&gt;¿Queremos ser resolutivos o queremos aprender?&lt;/h2&gt;
&lt;p&gt;En ocasiones, cuando se nos presenta un problema o un objetivo, lo que realmente queremos es ser resolutivos y no tanto aprender a resolverlo. Creo que debemos ser honestos con nosotros mismos en este punto.&lt;/p&gt;
&lt;p&gt;Por ejemplo, no es lo mismo ponernos el objetivo de conseguir la certificación (o un título) al completar un curso, que el de obtener conocimiento y experiencia en el ámbito del mismo. A veces, esos objetivos van de la mano, y la certificación puede ser una estrategia perfectamente válida para adquirir conocimientos.&lt;/p&gt;
&lt;p&gt;Si optamos por ser resolutivos, la IA puede facilitarnos superar las pruebas rápidamente e incluso proporcionarnos las respuestas de los exámenes, por sofisticados que sean, permitiéndonos conseguir el título sin el esfuerzo que conlleva realmente aprender e interiorizar los conceptos.&lt;/p&gt;
&lt;p&gt;Sin embargo, si optamos por ganar conocimiento, la IA puede ayudarnos a complementar el temario, diseñar pruebas adicionales para autoevaluarnos, proponer dinámicas de role-play para practicar con ella y ofrecernos múltiples recursos que refuercen la formación.
Pero esto exige hacernos dueños de nuestro propio aprendizaje.&lt;/p&gt;
&lt;h2 id="hacernos-dueños-de-nuestro-propio-aprendizaje"&gt;Hacernos dueños de nuestro propio aprendizaje&lt;/h2&gt;
&lt;p&gt;Para mí esto es la clave a la hora de aprender en un mundo en el que vamos a usar la IA para todo. Hacernos dueños de las cosas exige mucha madurez y honestidad con nosotros mismos. Y en un mundo de la IA, va a ser muy difícil echar balones fuera. Especialmente a la hora de aprender. Y también de enseñar a otros.&lt;/p&gt;
&lt;p&gt;Yo no veo un mundo en el que no existan humanos en un camino de aprendizaje. Pero sí empiezo a ver un mundo en el que habrá una gran diferencia entre las personas que sepan buscarse la vida para aprender algo de forma rápida, sepan evaluarse a ellas mismas y sepan pedir ayuda o referencia a un humano cuando lo necesiten, con respecto a las que simplemente se dejen llevar y se conformen con un temario diseñado por otros que se pueda adaptar, o no, a su caso concreto.&lt;/p&gt;
&lt;p&gt;Creo que las primeras aprovecharán muchísimo más el apoyo de alguien que quiera ayudarles y estarán también más preparadas para saber orientarse en diferentes situaciones en las que el camino no esté del todo claro o, incluso, exista el riesgo de ser manipuladas.&lt;/p&gt;
&lt;p&gt;Esto requiere un esfuerzo e interés genuino por aprender y entiendo que la mayor preocupación sea si las nuevas generaciones optarán por este camino frente a la alternativa más cómoda.&lt;/p&gt;
&lt;p&gt;Quizás esté sesgado, pero no me gusta subestimar a las nuevas generaciones. Es evidente que muchos optarán por la vía rápida. Sobre todo si el sistems educativo actual no cambia. Pero soy optimista y pienso que muchos jóvenes van a entender la necesidad de hacerse dueños de su propia formación, probablemente más de lo que lo hemos hecho nosotros.&lt;br&gt;
De hecho, últimamente estoy entrevistando a perfiles junior de ingeniería de software, y al hacerles la pregunta sobre cómo usan la IA, muchas de sus respuestas están alineadas con esta forma de entender el aprendizaje.&lt;/p&gt;
&lt;p&gt;Si queremos realmente aprender algo, contamos con una herramienta poderosa que puede ayudarnos a evaluarnos de forma muy crítica y a diseñar nuestros propios caminos de aprendizaje. Pero sólo funcionará de esa forma si nosotros también pensamos de forma crítica.&lt;/p&gt;
&lt;h2 id="desarrollar-un-punto-de-vista-crítico"&gt;Desarrollar un punto de vista crítico&lt;/h2&gt;
&lt;p&gt;La IA no tiene la verdad absoluta. De hecho, es bastante frecuente que se equivoque, que se quede en la superficie o que “alucine” con información completamente distinta a la que necesitamos. Exactamente igual que una persona muy venida arriba.&lt;br&gt;
Todos hemos tenido malos profesores. Hemos leído artículos escritos por alguien que no tenía ni idea de lo que hablaba. Y también hemos visto servicios que parecían maravillosos, pero que, al revisar el contrato, escondían mucha letra pequeña.&lt;/p&gt;
&lt;p&gt;La necesidad de desarrollar un pensamiento crítico no es nueva. Pero ahora es especialmente crítica gracias a la IA. Afortunadamente.&lt;/p&gt;
&lt;p&gt;No creernos lo primero que nos dice algo o alguien es la base para no ser manipulados y aprender de forma efectiva. Hoy en día, la manipulación y los errores pueden darse a una escala aún mayor, por lo que debemos estar atentos. Tenemos buena razón para ello.&lt;/p&gt;
&lt;h2 id="orientarse-más-allá-de-lo-que-no-sabes"&gt;Orientarse más allá de lo que no sabes&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“Es probable que ninguno de los dos sepa nada valioso; pero él cree saber algo, aunque no sabe, mientras que yo, como no sé, tampoco creo saber.”&lt;br&gt;
Sócrates&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Los asistentes como ChatGPT o Claude nos ayudan a entender y buscar soluciones sobre lo que no sabemos. Al hacer uso de nuestro criterio, podemos contrastar las respuestas y determinar si lo que nos dicen es útil.&lt;/p&gt;
&lt;p&gt;Pero lo interesante (y difícil) es descubrir lo que no sabes que no sabes. La IA nos puede dar respuestas que se queden muy en la superficie. Sin un pensamiento crítico, podemos “fliparnos” y asumir rápidamente que ya lo sabemos todo sobre cualquier tema.&lt;/p&gt;
&lt;p&gt;Hoy formas de hacer que la IA nos ayude a ver más allá.
Veamos unos ejemplos de instrucciones (prompts) que podemos darles a nuestros asistentes para que nos ayuden en este sentido:&lt;/p&gt;
&lt;h3 id="para-resolver-un-problema"&gt;Para resolver un problema&lt;/h3&gt;
&lt;p&gt;❌ Instrucción superficial&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;¿Cómo soluciono esto?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;✅ Versión mejorada&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Estoy intentando resolver este problema: [problema].
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;No propongas soluciones todavía. Actúa como alguien que quiere mejorar mi comprensión del problema.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;1.&lt;/span&gt; Hazme las 10 preguntas más importantes que debería responder antes de decidir.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;2.&lt;/span&gt; Agrúpalas en: contexto, restricciones, riesgos, personas o aspectos afectados e incertidumbres.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;3.&lt;/span&gt; Señala cuáles son incómodas pero críticas.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;4.&lt;/span&gt; Dime qué pregunta probablemente estoy evitando sin darme cuenta.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="quieres-detectar-conocimientos-que-deberías-repasar-antes-de-aprender-sobre-un-tema"&gt;Quieres detectar conocimientos que deberías repasar antes de aprender sobre un tema&lt;/h3&gt;
&lt;p&gt;❌ Instrucción superficial&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Explícame esto: [tema]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;✅ Versión mejorada&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Quiero aprender [tema].
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;No me lo expliques todavía. Antes:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;1.&lt;/span&gt; Identifica los conocimientos previos que debería tener para entenderlo bien.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;2.&lt;/span&gt; Sepáralos en imprescindibles, recomendables y opcionales.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;3.&lt;/span&gt; Dime cuáles suele creer la gente que domina, pero en realidad entiende mal.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;4.&lt;/span&gt; Señala qué conceptos me bloquearían más si intento aprender esto demasiado pronto.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;5.&lt;/span&gt; Propón una ruta de aprendizaje mínima y otra profunda.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="quieres-descubrir-aspectos-fuera-de-lo-básico"&gt;Quieres descubrir aspectos fuera de lo básico&lt;/h3&gt;
&lt;p&gt;❌ Instrucción superficial&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hazme un plan de aprendizaje para aprender a programar con IA.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;✅ Versión mejorada&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Quiero aprender [tema].
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;No me lo expliques todavía. Primero ayúdame a descubrir lo que no sé que no sé.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;1.&lt;/span&gt; Dime qué preguntas debería hacer alguien principiante pero normalmente no hace.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;2.&lt;/span&gt; Dime qué preguntas haría alguien intermedio.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;3.&lt;/span&gt; Dime qué preguntas distinguen a alguien que ya entiende el tema de verdad.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;5.&lt;/span&gt; Qué debates, matices o enfoques suelen subestimarse.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;6.&lt;/span&gt; Qué orden de aprendizaje me evitaría una falsa sensación de comprensión.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;7.&lt;/span&gt; Después, propón una ruta de estudio con fases.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Estos son sólo ejemplos, pero lo realmente importante es aprender a crear nuestras propias instrucciones que nos ayuden a descubrir nuestros puntos ciegos.&lt;br&gt;
Si no estamos acostumbrados a hacerlo podemos pedir a los propios asistentes de IA que generen este tipo de instrucciones y lanzárselas luego para obtener respuestas mucho más profundas.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Con estas reflexiones quería expresar que la IA puede ser una amenaza o una aliada. Pero, sea lo que sea, está ya a pie de calle y más nos vale cambiar nuestra mentalidad.&lt;/p&gt;
&lt;p&gt;En el mejor de los casos, si nos obliga a desarrollar pensamiento crítico, habremos ganado algo mucho más valioso que una simple al-iA-da (perdón).&lt;/p&gt;
&lt;p&gt;Nos leemos.&lt;/p&gt;</content:encoded></item><item><title>Repaso anual de 2025</title><link>https://blog.asiermarques.com/2026/repaso-anual-2025/</link><pubDate>Mon, 05 Jan 2026 21:00:01 +0000</pubDate><guid>https://blog.asiermarques.com/2026/repaso-anual-2025/</guid><content:encoded>&lt;p&gt;Como cada año, paso por aquí para hacer un repaso sobre lo que ha ocupado mi atención en los últimos doce meses.&lt;/p&gt;
&lt;p&gt;En lo personal, este pasado año fue bastante raro, con sus luces y sus sombras, muy oscuras ellas, pero en general, considero que ha sido mucho mejor que el 2024. Sobre todo porque desde hace unos meses, tengo muchas ganas de hacer más cosas y me siento con la energía correcta para hacerlas.&lt;/p&gt;
&lt;p&gt;En lo profesional, en &lt;a href="https://bestsecret.com"&gt;Bestsecret&lt;/a&gt; nos hemos enfrentado a varios retos de transformación tecnológica durante este año. Espero que podamos compartir algo de esta aventura en algún evento o artículo este año, porque considero que las lecciones que hemos aprendido son significativas.&lt;/p&gt;
&lt;p&gt;Ahora que tengo el café preparado, hay cuatro cosas que me gustaría comentar por aquí.&lt;/p&gt;
&lt;h2 id="sobre-la-escritura"&gt;Sobre la escritura&lt;/h2&gt;
&lt;p&gt;Este año me he quitado de encima el bloqueo que arrastraba desde hace mucho tiempo. No he puesto exclamaciones, emojis ni mayúsculas en esta frase, pero me siento eufórico. No sabes lo complicado que ha sido y lo mucho que he intentado recuperar esa parte de mi. Casi ni recordaba ya la sensación de tener la necesidad de escribir, esa que no te deja dormir por las noches hasta que sueltas, en unos cuantos párrafos, eso que tienes dentro.&lt;/p&gt;
&lt;p&gt;Al comenzar el año me apunté a un curso de microrrelato en una escuela de escritura en pleno Barrio de las Letras en Madrid. Escuela a la que ya soy asiduo. Este taller significó un reencuentro con un yo que tenía dormido y ha ido despertando durante el año. He ido dejando relatos cortos que he escrito en &lt;a href="http://explicitud.com"&gt;explicitud.com&lt;/a&gt;, iré publicando más de tanto en tanto, me sirven como entrenamiento y para jugar practicando técnicas que voy descubriendo.&lt;/p&gt;
&lt;p&gt;Tras estos talleres, me apunté a un curso de escritura creativa y en verano a un intensivo de Cuento. Pasado el verano, me apunté a un taller de novela corta al que voy cada semana. Comparto aula con compañeras y compañeros que ya han publicado varias novelas. Aprendo mucho de ellos.&lt;/p&gt;
&lt;p&gt;La escritura me ha hecho recuperar la lectura de libros de ficción, algo que tenía abandonado desde que era muy pequeño.&lt;br&gt;
Todo lo que había leído en las últimas décadas era prácticamente no ficción: libros de historia, de gestión, libros técnicos, libros de psicología, filosofía y otros temas, pero casi nunca novela. Sí que leía mucho cuento o relato corto o novelas o textos de personas de mi círculo que escriben y publican, pero eran excepciones muy esporádicas.&lt;/p&gt;
&lt;p&gt;Creo que leer o escuchar audiolibros, cada vez es más importante. Por eso me han llamado especialmente la atención este año ciertos debates surgidos por comentarios de gente “importante” o directamente de noticias de algún medio que iban “en contra” de la lectura. La primera hacía referencia a que se había incrementado el postureo en la lectura. Que muchas personas iban a sitios con libros gordos y/o conocidos con el objetivo de mostrarse como grandes lectores. Y que luego no los leían. En otras se criticaba a las personas que hacían gala de leer doscientos mil libros al año. Y la última, más conocida, sobre la famosa frase de que “leer no nos hace mejores personas”.&lt;br&gt;
Aunque se den casos en los que las personas intenten hacerse ver como grandes lectores (o lo que sea), creo que esto beneficia a la lectura. Puede que inspiren a otros a leer más aunque ellos no lo hagan. Y necesitamos que más gente adquiera el hábito de leer.&lt;br&gt;
Urgentemente.&lt;/p&gt;
&lt;p&gt;Leer, en estos tiempos que estamos viviendo de atención totalmente rota y enferma, es un acto de rebeldía. Me da igual a quién leas ni qué leas. Dedicar tiempo a leer requiere más esfuerzo de concentración (al principio) que ver decenas de vídeos repetidos mil veces de mil formas distintas con trazas desesperadas de captar la atención. Ese esfuerzo es entrenamiento, un entrenamiento muy potente que mejora nuestra atención. Si además lees en papel, reduces el tiempo que pasas frente a una pantalla, por lo que mejoras tu salud visual.&lt;/p&gt;
&lt;p&gt;En los próximos meses y años, gozar de una buena capacidad de atención será algo tan raro como valioso. Leer es una buena forma de ejercitarla.&lt;/p&gt;
&lt;p&gt;Siguiendo con el tema de la escritura, en 2025 me embarqué en dos proyectos de escritura que remataré este año.&lt;/p&gt;
&lt;p&gt;Estoy escribiendo un libro sobre gestión y liderazgo de equipos de alto rendimiento, voy añadiendo detalles y recursos sobre este proyecto por aquí &lt;a href="http://gestionarequipos.com"&gt;gestionarequipos.com&lt;/a&gt;. Ni la portada ni el título son definitivos, probablemente los cambie cuando tenga ya el borrador listo.&lt;br&gt;
Lo tengo bastante avanzado. Hace un mes tuve un retiro de escritura para organizar el trabajo que me falta, &lt;a href="https://encomite.substack.com/p/122025-retiro-de-escritura"&gt;hablé de ello por aquí&lt;/a&gt;. La conclusión de esta aventura está siendo que la escritura hay que tomársela como un hábito. Un entrenamiento diario.&lt;br&gt;
Aunque escribas un mísero párrafo al día.&lt;/p&gt;
&lt;p&gt;Por otra parte, en el curso de novela, me encuentro escribiendo una novela corta de ciencia ficción. Voy con mucha calma y no espero terminarla este año, pero quién sabe.&lt;/p&gt;
&lt;h2 id="sobre-las-redes-sociales-de-atención"&gt;Sobre las redes &lt;del&gt;sociales&lt;/del&gt; de atención&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://blog.asiermarques.com/2025/algunas-reflexiones-de-mis-ultimos-doce-meses/"&gt;El año pasado&lt;/a&gt; comentaba sobre mi preocupación con las redes de atención y los patrones que éstas usan para atraparla, como el scroll infinito. Cada vez estoy más convencido de que son la heroína de este siglo. Pero sus efectos no son tan evidentes como otro tipo de drogas y por ello, a nivel social, lo raro es no estar enganchado a ellas.&lt;/p&gt;
&lt;p&gt;Ya hace un año y medio que no uso X de forma activa. Algunos patrones de comportamiento que no me gustan nada los estoy empezando a ver también en Bluesky, pero al menos este no me bombardea con anuncios y contenido que no me interesa de gente que no sigo. Estoy planteándome compartir cosas puntuales por allí, como este post o artículos que publique fuera de lo personal. Pero la plataforma me echa mucho para atrás.&lt;/p&gt;
&lt;p&gt;Este año también he reducido mi tiempo de Instagram en casi un setenta por ciento. Quería reducir mi tiempo allí porque gran cantidad de contenido que sale en mi timeline no me interesa en absoluto.&lt;/p&gt;
&lt;p&gt;Para desconectar de X tras años de usarlo cada día, me desinstalé la aplicación del móvil y fue muy efectivo. Intenté lo mismo con Instagram, pero no fue tan efectivo. Por una parte, me gusta hacer y compartir fotos. Me gusta volver a ellas y recordar los momentos que capturan. Y con quién los capturan. Lo uso como un fotolog. Por otro lado, mi círculo social estaba tan presente allí, que algunas personas escriben directamente por instagram en lugar de en Whatsapp o Telegram.&lt;/p&gt;
&lt;p&gt;La versión web no cuenta con la misma experiencia y terminaba por volver a instalarla para compartir ciertas fotos o historias. Luego la volvía a desinstalar. Aunque pueda sonar tedioso, este proceso me ayudó bastante. “Entrar en Instagram” se convirtió en algo que me requería esfuerzo en lugar de ser casi un acto reflejo cuando estaba “aburrido” o tenía unos minutos para descansar. Y esos minutos volaban consumiendo contenido que ni me aportaba ni me interesaba.&lt;/p&gt;
&lt;p&gt;Y sobre esto, veo muy necesario parar, reflexionar y tener una opinión muy crítica con respecto a lo que estemos consumiendo, por muy aceptado que esté dicho mensaje y por supuesto, por muchas reacciones que este tenga.&lt;/p&gt;
&lt;p&gt;Estamos en un momento de cambio en muchos aspectos. Debemos cuidarnos de a qué prestamos atención y practicar nuestro pensamiento crítico. Nos jugamos mucho con esto.&lt;/p&gt;
&lt;h2 id="sobre-los-eventos-presenciales"&gt;Sobre los eventos presenciales&lt;/h2&gt;
&lt;p&gt;Echo de menos más eventos de comunidad presenciales. En los que tomar un café con alguien que está enfrentándose a retos y contextos similares a los tuyos.&lt;/p&gt;
&lt;p&gt;Desde la pandemia, los pequeños meetups han ido desapareciendo y sus correspondientes cañas posteventos. Creo que la degradación de sitios como Twitter junto al cambio en el mercado de contratación en los últimos años, han influido en esto.&lt;/p&gt;
&lt;p&gt;Soy optimista y creo que hay bastantes cosas en nuestro control para darle la vuelta a la situación. La principal es ir a los eventos que ya se hacen. Esto es algo en lo que yo he fallado y pienso corregir durante este 2026.&lt;/p&gt;
&lt;p&gt;También me estoy animando a convocar eventos, ya sean en abierto o en privado con gente de confianza con la que quiero compartir conversaciones y cafés.&lt;/p&gt;
&lt;p&gt;Nuestra vida se completa con personas con las que conectamos. Esos pequeños momentos con ellas suman y mucho. Y las personas no están aquí para siempre. Ese café que tienes pendiente con alguien puede que nunca llegue a suceder.&lt;br&gt;
Pon una fecha, y una excusa si lo necesitas, para que esos momentos sucedan. Y si no es presencial, que sea por cámara.&lt;br&gt;
Merece mucho la pena.&lt;/p&gt;
&lt;h2 id="sobre-lo-que-estamos-viendo-de-ia"&gt;Sobre lo que estamos viendo de IA&lt;/h2&gt;
&lt;p&gt;Seguimos viviendo una revolución relacionada con la inteligencia artificial, sobre todo en la IA generativa, pero que arrastra mucho más con ella.&lt;/p&gt;
&lt;p&gt;A nivel profesional, en la empresa en la que trabajo, integramos agentes de IA para los procesos de desarrollo de software. Lo que estamos viendo, no sólo a nivel de números de productividad, que hemos visto que es significativa, sino también a nivel de mejora de los procesos de desarrollo en sí (en aspectos como la calidad de la documentación, la efectividad de las conversaciones del equipo y la información disponible) nos hace pensar que ya no hay vuelta atrás. Estos agentes van a formar parte del día a día de la creación de productos de software, sin ningún tipo de duda.&lt;/p&gt;
&lt;p&gt;Fuera de mi trabajo, he concentrado mi formación primero en el desarrollo de agentes y luego en la gestión del contexto. Sobre todo con el ecosistema de LangChain.&lt;br&gt;
Todo lo relativo a RAG y Context Engineering, en general, es un área que me resulta muy interesante.&lt;/p&gt;
&lt;p&gt;Otra área que me resulta interesante es la provisión, gobernanza y fiabilidad de los sistemas basados en IA que ponemos en producción. Creo que va a ser uno de los mayores retos para 2026.&lt;/p&gt;
&lt;p&gt;Me voy a enfocar en estas cosas también en 2026 y me gustaría coincidir con más personas que estén con objetivos similares. Por ello, me he animado a montar un pequeño meetup en Madrid, en el que hablar sobre estos temas: &lt;a href="http://madai.es"&gt;madai.es&lt;/a&gt;&lt;br&gt;
La primera charla es en Febrero y ya tenemos lista de espera. Pero además de charlas, seguramente convoquemos también cafés más informales de cuando en cuando. Siguiendo lo que comentaba sobre eventos presenciales, intentaré acercarme a eventos que vaya descubriendo en España u otros lugares, en los que se comparta experiencia real.&lt;/p&gt;
&lt;p&gt;Aunque los temas que he descrito en los puntos anteriores son los que más me interesan a nivel personal (y también profesional), se está hablando mucho también de la generación en sí de los productos, con sistemas como Lovable y demás.&lt;br&gt;
Estos me resultan importantes, sobre todo desde un punto de vista de usuario. Se empieza a ver una clara tendencia de que los propios usuarios, los más técnicos o con mentalidad autodidacta, creen sus propias herramientas personales. También me parecen importantes para crear pruebas de concepto que validen la idea y luego se descarten en favor de sistemas preparados para producción. Y me resulta importante aprender a usarlos e ir habituándose a hacer herramientas propias con ellos.&lt;/p&gt;
&lt;p&gt;Pero creo que en el futuro, las aplicaciones tal y como las conocemos, dispondrán de interfaces basada en sistemas LLM de chat y voz. Las interfaces tradicionales, basadas en patrones de navegación a los que estamos ya tan habituados, quedarán relegadas a ciertos casos específicos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Y esto es todo por ahora. Mientras tanto, &lt;a href="https://bsky.app/profile/asiermarques.com"&gt;podemos encontrarnos por Bluesky&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nos leemos pronto o quizás, nos podamos ver por algún evento durante al año.&lt;/p&gt;</content:encoded></item><item><title>Choque de reminiscencia</title><link>https://blog.asiermarques.com/2025/choque-de-reminiscencia/</link><pubDate>Sun, 02 Feb 2025 20:30:01 +0000</pubDate><guid>https://blog.asiermarques.com/2025/choque-de-reminiscencia/</guid><content:encoded>&lt;p&gt;En Enero leí el libro &lt;a href="https://heathbrothers.com/the-power-of-moments/"&gt;Momentos mágicos (The Power of Moments: Why Certain Experiences Have Extraordinary Impact)&lt;/a&gt;.&lt;br&gt;
En este libro los hermanos Heath nos invitan a ser estratégicos y tomar más control de nuestras experiencias y los momentos que vivimos.&lt;br&gt;
Además, presentan varios conceptos interesantes, entre ellos, el &lt;strong&gt;choque de reminiscencia&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Estos tres extractos del libro me parecieron clave para reflexionar sobre este concepto:&lt;/p&gt;
&lt;p&gt;“Si preguntamos a la gente mayor sobre sus recuerdos más intensos, las investigaciones demuestran que suelen remitirse de forma desproporcionada a un mismo período, entre los quince y los treinta años.&lt;br&gt;
Los psicólogos denominan este fenómeno «choque de reminiscencia». La razón por la que recordamos tan bien nuestra juventud es que es… una época de primeras veces; las primeras relaciones sexuales, los primeros trabajos, los primeros viajes sin padres, la primera vez que uno se va de casa, la primera vez con opciones reales de elegir qué hacer con nuestras vidas».&lt;br&gt;
&lt;strong&gt;La novedad incluso cambia la percepción del tiempo.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[…]&lt;br&gt;
En un experimento llevado a cabo por Vani Pariyadath y David Eagleman, del Baylor College of Medicine, se mostró a los participantes una serie de imágenes.&lt;br&gt;
La mayoría de ellas eran idénticas, pero de vez en cuando aparecía una imagen nueva: zapato marrón, zapato marrón, zapato marrón, zapato marrón, zapato marrón, despertador, zapato marrón, zapato marrón, etc.&lt;br&gt;
A pesar de que todas las imágenes se mostraban durante el mismo intervalo de tiempo, los participantes no lo percibieron así. Estaban convencidos de que &lt;strong&gt;el despertador —la imagen que rompía el patrón— se había mostrado durante más tiempo.&lt;/strong&gt;&lt;br&gt;
Este equívoco se conoce como «efecto bicho raro». Eagleman, neurólogo, argumentó que lo que causa el efecto bicho raro es, de hecho, el desinterés de nuestro cerebro por la foto del zapato marrón.&lt;br&gt;
La disparidad resultante en la «densidad» de nuestra memoria —muchos apuntes para el despertador, pocos apuntes para el repetitivo zapato— lleva al equívoco de que el despertador se ha mostrado durante más tiempo.&lt;/p&gt;
&lt;p&gt;[…]&lt;br&gt;
Hay que aprender a reconocer nuestros propios guiones. Jugar con ellos, indagar, alterarlos. No siempre, sólo lo necesario para que esos zapatos marrones sigan pareciendo nuevos. Al saltarnos el guion podemos establecer un conjunto más amplio de recuerdos.&lt;br&gt;
Tal como lo plantean los autores del libro Surprise, &lt;strong&gt;«Nos sentimos más cómodos cuando las cosas son certeras, pero nos sentimos más vivos cuando no lo son»&lt;/strong&gt;.”&lt;/p&gt;
&lt;p&gt;Esa idea de reconocer nuestros propios guiones me parece clave. Si lo pensamos, seguimos varios guiones en nuestra vida. Algunos los hemos creado nosotros tal y como hemos establecido rutinas y hábitos, otros nos han venido dados.&lt;/p&gt;
&lt;p&gt;Es posible que tengamos motivos de peso para seguir algunos de ellos, no podamos “alterarlos” o incluso los disfrutemos tal cual los vivimos y no nos interese cambiarlos en absoluto, pero no está de más entrenarse para detectarlos y pensar en cómo desafiarlos.&lt;/p&gt;
&lt;p&gt;Algunos ejemplos que veo de estos guiones podrían ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Juntarse en Navidad/año nuevo con determinadas personas y celebrar siempre de la misma forma “especial” (zapato marrón?) esas fiestas. En general hacer algo especial por una fecha en concreta (por ejemplo, cumpleaños, aniversario…)&lt;/li&gt;
&lt;li&gt;Escribir por WhatsApp a ciertas personas (con las que no hablamos nunca) por su cumpleaños para enviarles un mensaje más o menos prefabricado.&lt;/li&gt;
&lt;li&gt;Planificar vacaciones en Agosto, Semana Santa, Navidad u otro periodo marcado como “especial” (zapato marrón?) en el calendario.&lt;/li&gt;
&lt;li&gt;Delegar todo tu ocio y vida social a los fines de semana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al igual que nos puede parecer mejor percibir nuestros salarios en doce pagas en lugar de catorce para poder tener más control de nuestras finanzas personales, no está de más reflexionar en cómo podemos ganar más control de los guiones que seguimos en la vida y romperlos de forma estratégica cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Como conclusión, vivir en modo automático puede llevarnos a percibir que nuestra vida es más corta de lo que realmente es; además, los momentos “especiales” no siempre lo son si forman parte de un guion predefinido.&lt;/p&gt;</content:encoded></item><item><title>Algunas reflexiones de mis últimos doce meses</title><link>https://blog.asiermarques.com/2025/algunas-reflexiones-de-mis-ultimos-doce-meses/</link><pubDate>Thu, 02 Jan 2025 17:00:01 +0000</pubDate><guid>https://blog.asiermarques.com/2025/algunas-reflexiones-de-mis-ultimos-doce-meses/</guid><content:encoded>&lt;p&gt;Estos días he estado reflexionando sobre algunos de los temas que ocuparon mi mente a lo largo del 2024, y me gustaría compartir algunas de esas cosas por aquí.&lt;/p&gt;
&lt;p&gt;El pasado año fue muy duro a nivel personal, drenando mi energía y motivación en varios momentos, especialmente durante la primera mitad del mismo. Prefiero no profundizar en esto, no sólo porque es algo muy personal, sino también porque, sinceramente, sé que no soy el único que podría calificarlo como un &amp;lsquo;año de mierda&amp;rsquo;. Sin embargo, considero importante dejar constancia de este punto, aunque sea como una nota contextual desde la que escribo las siguientes líneas.&lt;/p&gt;
&lt;h2 id="escapar-de-las-redes-de-atención"&gt;Escapar de las redes de atención&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;As William James observed, we must reflect that, when we reach the end of our days, our life experience will equal what we have paid attention to, whether by choice or default. We are at risk, without quite fully realizing it, of living lives that are less our own than we imagine.&lt;br&gt;
&lt;strong&gt;Tim Wu&lt;/strong&gt;, &lt;a href="https://www.goodreads.com/book/show/28503628-the-attention-merchants"&gt;The Attention Merchants&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Durante los últimos años, los servicios a los que antes llamábamos redes sociales se han transformado en redes de atención. Poco a poco, han ido ajustando sus productos para mantenernos atentos y activos en ellas. Personalmente, solía utilizarlas para descubrir y compartir contenido con personas cercanas y colegas profesionales, así como para debatir sobre temas de interés con ellos.&lt;/p&gt;
&lt;p&gt;Hace años aprendimos que &lt;a href="https://www.socialfixation.com.au/post/why-its-hard-to-stop-scrolling-psychology-behind-tiktok-scroll"&gt;patrones de scroll como TikTok crean adicción&lt;/a&gt; pero cada vez más aplicaciones a las que aún llamamos “sociales” los continúan adoptando.&lt;/p&gt;
&lt;p&gt;No estamos hablando únicamente de aplicaciones como X o Instagram. En un contexto social en el que las personas cada vez se sienten más solas, aplicaciones de citas están impactando las pautas de conexión social y la intimidad. La adicción en este contexto provoca un tipo de fatiga en el que es muy fácil perderse y olvidar el sentido de conectar con las personas.&lt;br&gt;
Las personas atrapadas en este tipo de redes corren el peligro de cultivar una visión de túnel narcisista &lt;a href="https://www.vogue.es/articulos/aplicaciones-citas-autoestima-psicologos-recomendaciones"&gt;por necesidad de validación&lt;/a&gt;, en el que las conexiones se den de forma impulsiva por &lt;a href="https://mashable.com/article/online-dating-fomo"&gt;miedo al FOMO&lt;/a&gt; en un mercado de usar y tirar.&lt;/p&gt;
&lt;p&gt;Incluso aplicaciones profesionales como Linkedin se empiezan a enfocar del mismo modo. Sin conocer el contexto interno de la empresa, me aventuro a pensar que las métricas de usuarios activos y objetivos ligados a ellas pueden haber pervertido la visión de producto para llevarles a tomar este tipo de decisiones.&lt;/p&gt;
&lt;p&gt;Otras aplicaciones de aprendizaje, como Duolingo, utilizan patrones que van más allá de la persuasión y se acercan &lt;a href="https://designbuddy.substack.com/p/is-duolingo-unethical"&gt;peligrosamente a la manipulación&lt;/a&gt;. Aunque puedan tener una buena intención al implementar ciertos patrones en su diseño, me pregunto si el fin justifica los medios.&lt;/p&gt;
&lt;p&gt;Hace años pensaba que las apuestas eran la heroína de este siglo, pero las redes de atención están alimentando adicciones similares e impactando silenciosamente a la sociedad a una escala masiva. De una forma u otra, todos estamos intoxicados en mayor o menor medida.&lt;/p&gt;
&lt;p&gt;La sensación de no tener tiempo para nada se intensifica cuando quedamos atrapados en las redes de atención. Nuestros hábitos nos transforman y moldean nuestro mundo, ya sea para bien o para mal.&lt;br&gt;
En este contexto, gestionar nuestros hábitos de atención no sólo nos garantiza literalmente más tiempo de vida, sino también una mayor claridad a la hora de vivirla.&lt;br&gt;
Me encantaron las campañas de &lt;a href="https://bsky.app/profile/asiermarques.com/post/3l52nebxzqr2i"&gt;Siroko&lt;/a&gt; y &lt;a href="https://bsky.app/profile/asiermarques.com/post/3l52o3lrkyo2w"&gt;Opal&lt;/a&gt;, que están muy relacionadas con esto que menciono.&lt;/p&gt;
&lt;p&gt;En Septiembre dejé de usar X de forma definitiva, tras 17 años usando Twitter. &lt;a href="https://bsky.app/profile/asiermarques.com"&gt;BlueSky&lt;/a&gt; está demostrando ser una opción más sana, y la verdad es que me gustaría que empecemos a contar con más servicios, alternativas a Instagram o LinkedIn, implementados sobre &lt;a href="https://atproto.com/"&gt;su protocolo&lt;/a&gt;. El protocolo AT está diseñado bajo un enfoque que respeta mucho más la interoperabilidad y los estándares abiertos que potenciaron la web como herramienta de conexión hace casi ya veinte años.&lt;/p&gt;
&lt;h2 id="deporte-como-inversión-y-un-apunte-sobre-la-constancia"&gt;Deporte como inversión y un apunte sobre la constancia&lt;/h2&gt;
&lt;p&gt;En los últimos años, he estado muy preocupado por la consistencia de mi rutina de entrenamiento.&lt;br&gt;
Al compararla con la de personas cercanas, sentía que no era lo &amp;lsquo;suficientemente buena&amp;rsquo;.&lt;br&gt;
Incluso cuando varios entrenadores me aconsejaban &amp;lsquo;perdonarme&amp;rsquo; por &amp;lsquo;fallar&amp;rsquo;, no podía evitar sentir una sensación de fracaso y falta de consistencia.&lt;/p&gt;
&lt;p&gt;Esta sensación y otros hábitos inconscientes de mi estilo de vida, afectaban directamente a mi motivación y consistencia.&lt;br&gt;
Por ejemplo, pedir determinada cena o mi consumo de alcohol (aunque fuera meramente social) perjudicaban tanto mi descanso como mi capacidad para gestionar el estrés.&lt;/p&gt;
&lt;p&gt;Además de hacer conscientes y gestionar esos hábitos y entender mejor qué tipo de consistencia necesito en mi rutina, empecé a tomarme muy en serio mi descanso.&lt;br&gt;
Ha sido interesante comenzar a medir la calidad de mi sueño para identificar de forma más clara qué aspectos de mi estilo de vida la afectan y reflexionar sobre si realmente merecen la pena.&lt;/p&gt;
&lt;p&gt;Este año también leí el libro &lt;a href="https://www.goodreads.com/book/show/35448888-dormir"&gt;Dormir de Nick Littlehales&lt;/a&gt;, que me aportó una perspectiva valiosa.&lt;/p&gt;
&lt;p&gt;Además, comencé a seguir las recomendaciones de predisposición a entrenar que me sugiere mi reloj Garmin, alineando mis entrenamientos con estas indicaciones, y no sólo con meras sensaciones.&lt;/p&gt;
&lt;p&gt;Estoy bastante contento con mi rutina de deporte actual. Durante la primera mitad del año pude completar una maratón y otras dos medias de remo indoor.&lt;br&gt;
Para remo indoor uso &lt;a href="https://exrgame.com/"&gt;la app de remo virtual EXR&lt;/a&gt;. Para correr, gestiono mi entrenamiento con la app &lt;a href="https://www.runna.com/"&gt;Runna&lt;/a&gt;.&lt;br&gt;
Estos dos servicios son un claro ejemplo del buen nivel de aplicaciones con el que podemos contar hoy en día para gestionar de forma seria nuestros entrenamientos.&lt;/p&gt;
&lt;p&gt;Aunque tengo cierta rutina de fuerza, uno de mis objetivos para este 2025 es mejorar en este sentido.&lt;br&gt;
Cada año estoy más convencido de que el deporte es la mejor inversión para afrontar un futuro que parece será muy exigente para nuestra generación y las que vienen detrás de la nuestra.&lt;/p&gt;
&lt;h2 id="la-revolución-de-la-ia-generativa"&gt;La revolución de la IA generativa&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The immediate results of the print revolution included witch hunts and religious wars alongside scientific discoveries, while newspapers and radio were exploited by totalitarian regimes as well as by democracies. As for the Industrial Revolution, adapting to it involved catastrophic experiments such as imperialism and Nazism.&lt;br&gt;
If the AI revolution leads us to similar kinds of experiments, can we really be certain we will muddle through again?&lt;br&gt;
&lt;strong&gt;Yuval Noah Harari, &lt;a href="https://www.goodreads.com/work/quotes/211894394"&gt;Nexus&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Estoy entusiasmado con los avances que estamos viendo de IA en general y GenAI en particular en los últimos dos años.&lt;/p&gt;
&lt;p&gt;Aunque hay mucho ruido en torno a la IA, considero que los avances que estamos presenciando nos están llevando a un cambio de paradigma, comparable al que vivimos como sociedad con la llegada del ordenador personal y, posteriormente, de internet.&lt;br&gt;
Sin embargo, creo que aquellos cambios se produjeron de forma más gradual.&lt;br&gt;
Herramientas que usamos en el día a día ya se benefician directamente, e incluso de manera transparente, de estos avances. Esto ha reducido significativamente la barrera de adopción, pero también ha acortado el tiempo disponible para adaptarnos.&lt;/p&gt;
&lt;p&gt;En el mundo del desarrollo de software, en el momento en que escribo estas líneas, estamos presenciando una clara competencia entre GitHub Copilot y Cursor.
Sin embargo, a pesar de lo increíble que puedan parecer estas herramientas y de cómo nos invitan a imaginar el futuro de nuestro sector, creo que estamos en un periodo de transición. Estas herramientas están diseñadas para abordar problemas desde una perspectiva que llevamos utilizando durante más de cuarenta años.&lt;/p&gt;
&lt;p&gt;Pero, si desde hace décadas ya no necesitamos programar en ensamblador para resolver el 90% de los problemas, me pregunto cuál será el papel y el sentido de &amp;rsquo;escribir código&amp;rsquo; tal y como lo conocemos hoy en día en un futuro muy cercano.&lt;br&gt;
Al fin y al cabo, el código es algo que escribimos para que otro ser humano entienda la intención de nuestra implementación.&lt;br&gt;
Con la incorporación de actores no humanos y un mayor nivel de abstracción, las reglas del juego están cambiando.&lt;/p&gt;
&lt;p&gt;Creo que tendencias como la de ingeniería de producto aplicada al software y áreas transversales como seguridad, auditorías y calidad adquirirán una relevancia aún mayor.&lt;/p&gt;
&lt;p&gt;Fuera del desarrollo de software, la utilidad de estas herramientas resulta indiscutible. Considero fundamental desarrollar buena soltura al crear e iterar prompts, y, como ingenieros, mantenernos atentos a los avances y conceptos que sustentan las plataformas y soluciones de IA disponibles.&lt;/p&gt;
&lt;p&gt;Hay barreras que no están aún claras y que incluso pueden encerrar debates complejos. Por ejemplo, en 2013 un estudio &lt;a href="https://www.forbes.com/sites/robertpearl/2023/08/07/doctors-vs-chatgpt-which-is-more-empathetic/"&gt;mostró que ChatGPT era capaz de dar respuestas percibidas como más empáticas&lt;/a&gt; por un grupo de pacientes que las de humanos profesionales en el campo de la medicina, en más de un 40% a favor de GPT-4.&lt;/p&gt;
&lt;p&gt;Actualmente, estoy adoptando GPT y evaluando Cursor a nivel personal. Uso ChatGPT a diario para debatir ideas conmigo mismo, revisar mis textos y elaborar planes de aprendizaje con ejercicios que me ayuden a consolidar conocimientos, entre otras cosas.&lt;/p&gt;
&lt;h2 id="los-presupuestos-de-formación"&gt;Los presupuestos de formación&lt;/h2&gt;
&lt;p&gt;Soy un firme defensor de los presupuestos de formación como un beneficio valioso que las empresas pueden ofrecer para retener talento técnico y fomentar una sólida cultura de aprendizaje.&lt;/p&gt;
&lt;p&gt;Hay empresas que aún no ofrecen este beneficio. En mi caso, por ejemplo, mi empresa actual no cuenta con un presupuesto de formación, aunque sí ofrece otros beneficios valiosos, como suscripciones a plataformas de aprendizaje y la dedicación de un viernes al mes a formación.&lt;br&gt;
En estos contextos, suelo reservar un presupuesto anual propio para formación, aunque soy plenamente consciente de que las circunstancias personales varían y no todo el mundo tiene la capacidad económica para destinar recursos a su desarrollo profesional, independientemente de su salario.&lt;/p&gt;
&lt;p&gt;En contextos donde sí he contado con este beneficio, e incluso he tenido la oportunidad de influir en su proceso de gestión, me ha sorprendido cómo las métricas reflejaban un porcentaje de uso bastante bajo a nivel general. Los managers solíamos orientar a las personas para que lo aprovecharan, a veces basándonos en planes de crecimiento particulares o proponiendo formaciones alineadas con nuestra estrategia de ingeniería.&lt;/p&gt;
&lt;p&gt;Quizás la popularización de estos beneficios y la falta de una adecuada gestión de los mismos hayan motivado la aparición de actores que considero oportunistas, quienes promueven el uso de estos presupuestos para cubrir costes de entradas a eventos o talleres que serían inaccesibles sin una ayuda económica de este tipo por parte de la empresa.&lt;/p&gt;
&lt;p&gt;No tengo nada en contra de que se cobre el precio que se considere adecuado para una formación o evento, pero me genera bastantes dudas que desde estos eventos o talleres se fomente explícitamente el uso del presupuesto de formación para cubrirlos. Esto me genera desconfianza y me lleva a pensar que sus precios están diseñados en función de la cobertura económica ofrecida por algunas empresas, dejando fuera a profesionales que no cuentan con este tipo de ayudas.&lt;/p&gt;
&lt;p&gt;Creo que, como profesionales, es importante ser responsables en cómo utilizamos nuestros presupuestos de formación.&lt;br&gt;
Tanto si gestionamos un presupuesto propio como si contamos con uno ofrecido por nuestra empresa, podemos evaluar si una newsletter realmente aporta valor por los cien o doscientos euros anuales que cueste, si el precio de una entrada de un evento resulta razonable y si tiene sentido que un curso online, que durante todo el año ha costado 1000 €, baje a unos 200 € durante la semana del Black Friday.&lt;br&gt;
El valor, obviamente, es relativo, pero mi punto es que, al menos, evitemos actuar en piloto automático sólo porque parezca que ese dinero, &amp;ldquo;no es nuestro&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Como consumidores, tenemos el poder de marcar el ritmo. Usar el presupuesto con responsabilidad puede generar un impacto mucho mayor del que imaginamos.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Esto es todo por ahora. Quizás durante el año comparta alguna otra cosa por aquí en lugar de esperar otros doce meses, pero quién sabe :)&lt;/p&gt;
&lt;p&gt;Mientras tanto, &lt;a href="https://bsky.app/profile/asiermarques.com"&gt;podemos encontrarnos por Bluesky&lt;/a&gt; y nos leemos pronto.&lt;/p&gt;</content:encoded></item><item><title>Breve reflexión de fin de año</title><link>https://blog.asiermarques.com/2023/breve-reflexion-de-fin-de-ano/</link><pubDate>Sun, 31 Dec 2023 19:00:01 +0000</pubDate><guid>https://blog.asiermarques.com/2023/breve-reflexion-de-fin-de-ano/</guid><content:encoded>&lt;p&gt;He sacado un rato para reflexionar sobre las cosas que he hecho y aprendido durante este año que termina;
esta será una breve entrada con lo más relevante que venga a mi mente mientras la escribo.&lt;/p&gt;
&lt;h3 id="cambio-de-mochila"&gt;Cambio de mochila&lt;/h3&gt;
&lt;p&gt;Tras tres años como Senior Engineering Manager en Packlink Shipping y algo más de uno como Senior Director of Engineering en &lt;a href="https://auctane.com"&gt;Auctane&lt;/a&gt; tras nuestra adquisición, cambié de ciclo y como es habitual en mí, cambié también de mochila.&lt;/p&gt;
&lt;p&gt;Actualmente estoy trabajando en el equipo de gestión de ingeniería de &lt;a href="https://bestsecret.com"&gt;BestSecret&lt;/a&gt;, llevando equipos de Checkout y Payments.&lt;/p&gt;
&lt;p&gt;Es una empresa que existe desde hace más de cien años como una comunidad privada de venta de artículos de moda, principalmente ropa.&lt;/p&gt;
&lt;p&gt;En este tiempo he sido testigo de la madurez de sus equipos de ingeniería y de producto y estoy muy contento en esta etapa.&lt;/p&gt;
&lt;p&gt;Me gusta la sensación de volver a vivir ciertas cosas otra vez pero en un contexto muy distinto. Trabajamos totalmente en remoto y esto me permite trabajar con personas de diferentes nacionalidades ubicadas en Alemania, Suiza, Grecia y España principalmente y de las que puedo aprender muchísimo; esto cada día me gusta más.&lt;/p&gt;
&lt;h3 id="un-descanso-de-tres-meses"&gt;Un descanso de tres meses&lt;/h3&gt;
&lt;p&gt;Entre la salida de Auctane y el onboarding en BestSecret me tomé tres meses. Afortunadamente tenía la capacidad de tomarme medio año o incluso un año entero, pero creo que para mi es imposible estar inactivo tanto tiempo.&lt;/p&gt;
&lt;p&gt;De hecho, mientras hacía entrevistas durante el primer mes y medio, obtuve la certificación de Sr. Product Manager en Product School y me hice el curso de product analytics avanzado en Escuela Escribano.&lt;/p&gt;
&lt;h3 id="escribir-y-escribir-un-libro"&gt;Escribir y escribir un libro&lt;/h3&gt;
&lt;p&gt;Uno de los objetivos que llevo arrastrando desde el 2020 es escribir un libro y no lo he logrado. Siempre he deseado la oportunidad de disponer de un mes libre para escribir un libro. He dispuesto de tres y no lo he conseguido.&lt;/p&gt;
&lt;p&gt;Al igual que ocurre con otras cosas, creo que escribir funciona bien cuando es un hábito. Yo no he tenido éxito en conseguir afianzar un hábito de escritura y creo que es una de las razones por las que mi cadencia de escritura ha bajado notablemente en los últimos años con respecto a años anteriores.&lt;/p&gt;
&lt;p&gt;He reflexionado mucho sobre esto. Me apetece también volver a escribir fuera del mundo de tecnología. Sin duda, este es uno de los cambios en el que trabajaré los próximos meses.&lt;/p&gt;
&lt;h3 id="otras-cosas"&gt;Otras cosas&lt;/h3&gt;
&lt;p&gt;Este año he cumplido con muchas de las cosas que me había propuesto. Durante el año parecía que algunas de ellas no las iba a hacer o conseguir, pero finalmente han salido bien.&lt;/p&gt;
&lt;p&gt;Otras cosas no han ido tan bien. Este verano pasaron cosas que me afectaron a nivel personal, pero todo se afronta y se supera.&lt;/p&gt;
&lt;p&gt;He aprendido algunas cosas. Algunas las resumo en estos puntos con cierto desorden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A veces pensamos que deberíamos haber empezado de otra forma con otras personas y es demasiado tarde para reconducir, pero nunca es tarde para cambiar nuestro comportamiento y hablar sobre ello.&lt;/li&gt;
&lt;li&gt;Relacionado con lo anterior. Nunca es tarde para volver a personas de las que nos fuimos. Por habernos perdido, por habernos equivocado o por la razón que sea. Todos vamos hacia adelante y cada momento es distinto. Merece la pena intentar volver. Y si la puerta está abierta, es importante poner en valor esa oportunidad.&lt;/li&gt;
&lt;li&gt;Las personas que te importan importan más de lo que crees. Somos mejores en grupo, en comunidad.&lt;/li&gt;
&lt;li&gt;El deporte es una herramienta de trabajo. El deporte es una herramienta para conseguir no necesitar más.&lt;/li&gt;
&lt;li&gt;Encadena hábitos para poder vivir más.&lt;/li&gt;
&lt;li&gt;Observar sin evaluar. Escuchar. Tomar decisiones. Desarrollarte en estas tres habilidades te hará crecer mucho en muy poco tiempo.&lt;/li&gt;
&lt;li&gt;Los objetivos son guías, no contratos. Tus objetivos son tuyos, puedes cambiarlos, borrarlos o no cumplirlos. Olvídate de audiencias que no existen.&lt;/li&gt;
&lt;li&gt;Saber cocinar es importante. Nuestro aparato digestivo está enlazado con la mente.&lt;/li&gt;
&lt;li&gt;Eres el único dueño de tu crecimiento profesional y personal.&lt;/li&gt;
&lt;li&gt;Aprende y optimiza tu respiración por la nariz.&lt;/li&gt;
&lt;li&gt;No dejes escapar a personas con las que tengas una conexión brutal. Las conexiones brutales no son frecuentes.&lt;/li&gt;
&lt;li&gt;Lo importante es dar pasos hacia adelante. La distancia o tamaño de los pasos, no es tan importante.&lt;/li&gt;
&lt;li&gt;Sé consciente de lo que te quita tiempo y por qué. Sé consciente de las recompensas que buscas sin pensar.&lt;/li&gt;
&lt;li&gt;No confundas personas que te aportan con personas que te validan.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Esto es todo por ahora, feliz año nuevo; nos leemos pronto.&lt;/p&gt;</content:encoded></item><item><title>Breve repaso a mis últimos cinco años</title><link>https://blog.asiermarques.com/2022/ultimos-cinco-anos/</link><pubDate>Sat, 31 Dec 2022 16:00:01 +0000</pubDate><guid>https://blog.asiermarques.com/2022/ultimos-cinco-anos/</guid><content:encoded>&lt;p&gt;Tenía ganas de encontrar el momento de escribir tranquilamente. Aún no he recuperado el hábito de escribir en este blog por lo que no voy a ser muy original que digamos; escribiré a modo de reflexión sobre lo último que he vivido o que me ha resultado interesante desde mi última actualización personal.&lt;br&gt;
Esa actualización fue sobre mi “&lt;a href="https://asiermarques.com/2018/cambio-de-mochila/"&gt;cambio de mochila&lt;/a&gt;” hace ya casi cinco años.&lt;/p&gt;
&lt;p&gt;Aquel cambio de mochila trajo un cambio personal bastante fuerte: volví a trabajar por cuenta ajena después de haber trabajado de forma autónoma y haber creado varias empresas desde cero durante los años anteriores.&lt;/p&gt;
&lt;p&gt;¿Qué pasó desde entonces? Es imposible resumir todo lo vivido en esta entrada, pero repasaré algunos titulares que le contaría a un colega al que no veo desde hace años o a mi yo del pasado por si tuviera interés en ser spoileado.&lt;/p&gt;
&lt;h2 id="lo-de-mudarme-a-madrid"&gt;Lo de mudarme a Madrid.&lt;/h2&gt;
&lt;p&gt;El 8 de Enero de 2019 me mudé a Madrid, ciudad en la que resido actualmente. Siempre he tenido un sesgo negativo con esta ciudad y antes de ese año hubiera apostado lo que fuese a que jamás, jamás en mi vida, acabaría viviendo en Madrid.&lt;br&gt;
Málaga es una ciudad que conozco bien y me encanta. Forma parte de Andalucía, un gran paraíso del que tenemos la suerte de contar en nuestro planeta.&lt;br&gt;
Cuando por trabajo tuve que decidir entre moverme a esta ciudad o ir a Madrid, ciudad concebida en mi mente como gris por su omnipresente asfalto, edificios, contaminación y abarrotada de ridículos coches SUV, me sorprendí decidiendo por la segunda. Y fue una genial decisión.&lt;/p&gt;
&lt;p&gt;Me encanta Madrid. Es una ciudad muy cómoda y llena de gente interesante. Hay más lugares geniales en España, llenos de gente interesante también pero, lo bueno de Madrid, es que está lo suficientemente bien situada como para poder llegar de forma cómoda a prácticamente todos ellos.&lt;/p&gt;
&lt;p&gt;No descarto moverme en un futuro, pero de momento eso lo veo a bastante más largo plazo del que me hubiera imaginado hace cuatro años.&lt;/p&gt;
&lt;h2 id="del-remoto-a-presencial-y-vuelta-al-remoto"&gt;Del remoto a presencial y vuelta al remoto.&lt;/h2&gt;
&lt;p&gt;Antes de volver a trabajar por cuenta ajena en el 2018, había estado trabajando en modo totalmente remoto durante siete años. En esa etapa fui dueño completamente de mi tiempo, cambié de residencia varias veces y viajaba frecuentemente mientras trabajaba.&lt;/p&gt;
&lt;p&gt;No puedo explicar el cambio de trabajar de esta forma y llevar ese estilo de vida a volver a una oficina, con un horario, rodeado de cientos de personas, preparar tuppers… Mis primeras semanas fueron un reto continuo de adaptación.&lt;/p&gt;
&lt;p&gt;Cuando me mudé a Madrid, en Packlink (la empresa para la cual trabajaba antes de ser comprada por Auctane) teníamos dos días a la semana en remoto y fuimos dando pasos hacia adelante que nos vinieron muy bien cuando nos pilló el toro del COVID. Desde entonces somos remotos totalmente con opción de ir a la oficina. Esto se ha mantenido incluso después de experimentar la adquisición de la empresa.&lt;/p&gt;
&lt;p&gt;Soy un pleno defensor del trabajo en remoto y de la gestión de personas en remoto. Aunque hayamos experimentado un retroceso en comparación a lo ganado durante la pandemia, estoy plenamente convencido que en los trabajos en los que se pueda, los beneficios superan con creces a los inconvenientes, tanto para la empresa, como para los empleados.&lt;/p&gt;
&lt;h2 id="lo-del-inglés-como-idioma-de-trabajo"&gt;Lo del inglés como idioma de trabajo.&lt;/h2&gt;
&lt;p&gt;Hace más de diez años repetía esta frase entre otras más o menos pegadizas: &lt;em&gt;“el inglés es el mejor lenguaje de programación”.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ahora mismo, se me haría muy extraño volver a trabajar en un lugar en el que no se utilizase el inglés. Desde hace tiempo estoy más cómodo escribiendo en inglés sobre temas profesionales, a pesar de no ser mi idioma nativo y a pesar de no hacerlo de forma perfecta.&lt;br&gt;
He interiorizado el inglés como mi idioma por defecto para el ámbito profesional y esto se ha convertido en un principio personal bastante férreo.&lt;/p&gt;
&lt;p&gt;Por otro lado, he desarrollado también cero tolerancia de quien desanima, se burla o critica a personas que aun no teniendo un nivel avanzado de inglés, se lanzan a hablarlo, escribir artículos o dar charlas.&lt;/p&gt;
&lt;h2 id="lo-de-perder-recuperar-y-crear-hábitos"&gt;Lo de perder, recuperar y crear hábitos.&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“Observa tus acciones. Se transforman en hábitos. Observa tus hábitos. Se transforman en carácter. Observa tu carácter. Se transforma en tu destino.” Gandhi.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Durante 2020 estuve obsesionado con haber perdido la rutina de correr que tanto trabajo me costó recuperar años atrás. Durante ese año y el siguiente intenté sin éxito recuperar ese hábito.&lt;br&gt;
En Abril de este año contraté a un entrenador personal y finalmente he tenido éxito no sólo en recuperar esa rutina, sino en hacerlo madrugando, mantenerla mientras viajo, he recuperado también mi rutina de remo indoor y he añadido rutinas adicionales de fuerza.&lt;/p&gt;
&lt;p&gt;Como en otras cosas, tenía una perspectiva incorrecta cara a afrontar este problema. Cuando quieres conseguir crear, recuperar o eliminar un hábito, un problema frecuente suele ser obsesionarse por crear, recuperar o eliminar ese hábito en concreto. Los hábitos forman parte de un sistema formado por desencadenantes y ciclos de refuerzo.&lt;br&gt;
En lugar de gestionar hábitos, debemos gestionar los sistemas en los que los hábitos encajan. Esto es algo que me ha obsesionado en el último año.&lt;/p&gt;
&lt;p&gt;Levantarse a las 6:30 o 7 (no he sido nunca una persona especialmente madrugadora) y salir a correr me ha permitido de forma natural desencadenar un sistema de hábitos relacionados, algunos que había perdido sin ser consciente de ello y otros nuevos que a su vez, van desencadenando otros y curiosamente, haciendo menos apetecibles los que son más tóxicos.
Es sorprendente la resilencia de un sistema de hábitos encadenados.&lt;/p&gt;
&lt;p&gt;Por un lado, el libro de &lt;a href="https://www.amazon.es/H%C3%A1bitos-at%C3%B3micos-Autoconocimiento-James-Clear/dp/8418118032"&gt;Hábitos Atómicos&lt;/a&gt; de James Clear, me proporcionó una perspectiva valiosa para ser consciente de triggers y sistemas de hábitos y &lt;a href="https://www.goodreads.com/book/show/60033746-deshacer-la-ansiedad"&gt;Deshaciendo la ansiedad&lt;/a&gt; de Judson Brewer me dio un enfoque y herramientas para contrarestar los triggers de hábitos negativos.&lt;/p&gt;
&lt;p&gt;Y para recuperar el deporte, un entrenador personal es la mejor elección que he podido hacer. Hay cosas que no puedes hacer de forma efectiva tú solo.&lt;/p&gt;
&lt;p&gt;Aún me quedan hábitos por recuperar. El de escribir, el de escuchar más música o el de viajar en pequeñas escapadas aprovechando el remoto son algunos en los que estoy trabajado.&lt;/p&gt;
&lt;p&gt;Hasta que no empecé a estudiar psicología no entendí bien lo importante de “hacer consciente lo inconsciente”. Esta frase se la escuché a una persona hace años con un café y ha estado muy presente en mi mente durante todo este año.&lt;/p&gt;
&lt;h2 id="lo-del-estoicismo"&gt;Lo del estoicismo.&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;La vida es larga, si sabes cómo usarla.” Séneca.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Antes de recuperar de nuevo mis rutinas y hábitos, confiaba en exceso de mi capacidad de resilencia. A nada que hayamos leído a Taleb, especialmente su libro &lt;a href="https://www.goodreads.com/book/show/40941583-antifr-gil?from_search=true&amp;amp;from_srp=true&amp;amp;qid=vVjsXFlm0J&amp;amp;rank=1"&gt;Antifrágil&lt;/a&gt;, sabemos que esa aproximación tiene un recorrido limitado en momentos de estrés o de mucho cambio.&lt;/p&gt;
&lt;p&gt;Desde hacía años venía escuchando hablar sobre el estoicismo pero no me había detenido a leer sobre sus principios. Recuerdo una conversación con un amigo en el que me dijo “últimamente hay muchas personas fliplándose con el estoicismo”. Por mucho que hubiera querido sumarme a la crítica, me veía sin capacidad para responder ya que no había leído nada aún de Séneca, Epitecto o Marco Aurelio, por citar a los autores más conocidos.&lt;/p&gt;
&lt;p&gt;Este año tuve la oportunidad de parar en seco unas semanas y dedicarme a entrenar, leer y recargar energía que había perdido en los últimos años. Prioricé entre otras lecturas, libros de estos autores.&lt;/p&gt;
&lt;p&gt;Al leerles, me quedé con algunos de sus principios que los he interiorizado como míos y en algunos casos lo he llevado al plano profesional y han sido claves para afrontar situaciones complejas.&lt;/p&gt;
&lt;p&gt;Saber detectar rápidamente lo que está fuera de mi control, lo que no me aporta pero se lleva mi energía o atención y el no esperar a que una situación mejore o sea “ideal” para conseguir avanzar y conseguir objetivos, son algunas de las ventajas que he obtenido gracias a la perspectiva que he conseguido adentrándome en este tema, totalmente desconocido para mí.&lt;/p&gt;
&lt;p&gt;En alguna de esas lecturas invitaban a reflexionar a través de la pregunta “¿quién eres?”. Más allá de decir tu nombre y tu título profesional, ¿quién eres?
Hacerse cargo de la identidad de uno mismo y saber lo que realmente forma parte de ella de forma genuina es muy interesante para priorizar y ahorrar un montón de tiempo, energía, preocupación y frustración.&lt;/p&gt;
&lt;p&gt;Aunque no es estoicismo, pero está relacionado en cierto modo, no quería cerrar este titular sin mencionar la necesidad de gestionar nuestra atención.
Vivimos en una era en la que la &lt;a href="https://es.wikipedia.org/wiki/Econom%C3%ADa_de_la_atenci%C3%B3n"&gt;economía de la atención&lt;/a&gt; es clave y es peligroso vivir en modo automático sin gestionarla.&lt;br&gt;
El libro &lt;a href="https://www.goodreads.com/book/show/51515328-comerciantes-de-atenci-n"&gt;Los comerciantes de la atención&lt;/a&gt; de Tim Wu te da mucha perspectiva y un repaso histórico sobre este tema.&lt;/p&gt;
&lt;h2 id="lo-de-los-principios"&gt;Lo de los principios.&lt;/h2&gt;
&lt;p&gt;Una lectura que he sido reticente a leer desde hace tiempo y que creo que merece mucho la pena es &lt;a href="https://www.goodreads.com/book/show/2438466.Los_Siete_Habitos_de_La_Gente_Altamente_Efectiva"&gt;Los Siete Habitos de La Gente Altamente Efectiva&lt;/a&gt; de Cowey.&lt;br&gt;
El libro es mejor que el título o las portadas rancias que suele tener.&lt;/p&gt;
&lt;p&gt;Esta lectura me ayudó a ser consciente de cómo nuestros principios definen nuestro paradigma y cómo nuestro paradigma, define nuestra forma de ver la vida.&lt;/p&gt;
&lt;p&gt;Hacer conscientes buenos o malos hábitos que apoyan o desafían nuestros principios ayuda de forma drástica a tomar algo de control sobre nuestro paradigma. Según mi entendimiento, tomar control de nuestro paradigma es prácticamente equivalente a tomar control de nuestra vida.&lt;br&gt;
La sensación de cambiar con éxito un principio, ser consciente de ello y saber que eso tiene un impacto directo en tu realidad, es sencillamente brutal.&lt;/p&gt;
&lt;h2 id="lo-de-gestionar-personas-y-un-departamento-de-ingeniería"&gt;Lo de gestionar personas y un departamento de ingeniería.&lt;/h2&gt;
&lt;p&gt;En los últimos trece años he asumido roles de gestión y siempre los había compaginado con el trabajo de programación o en roles de liderazgo técnico. No fue hasta hace tres años cuando dejé completamente de programar en mi trabajo y mi rol se convirtió en un rol puro de gestión de personas y de ingeniería.&lt;/p&gt;
&lt;p&gt;No he parado de pensar en &lt;a href="https://charity.wtf/2017/05/11/the-engineer-manager-pendulum/"&gt;pendular&lt;/a&gt; en algún momento hacia un rol de líder técnico o individual contributor, por sentir envidia pura del impacto que realizan los roles de ingeniería pura. Sin embargo, este año tomé la decisión de mantenerme y seguir creciendo en roles de gestión pura.&lt;/p&gt;
&lt;p&gt;Los retos en gestión son muy distintos a los de ingeniería y se aprende cada día. No son roles nada agradecidos pero la parte buena es que las lecciones que aprendes, te las puedes llevar a muchos otros contextos.&lt;/p&gt;
&lt;p&gt;Como soy de la opinión (fuerte) de que los managers, directores y otros roles de gestión deben entender, ser capaces de aportar y estar al día de la tecnología, seguiré formándome y programando, pero en otro plano más personal sin esperar tener la agilidad de alguien que asume un rol puro de ingeniería de software.&lt;/p&gt;
&lt;p&gt;He escrito y seguiré escribiendo sobre tecnología y gestión en mi espacio de &lt;a href="https://asiermarques.medium.com/"&gt;Medium&lt;/a&gt;, algunas de las últimas cosas que he escrito:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/packlinktech/our-onboarding-process-at-packlink-engineering-108ad0182cd6"&gt;Our onboarding process at Packlink Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/packlinktech/the-path-to-our-career-path-8781e4565ae3?source=user_profile---------3----------------------------"&gt;The Path to our Career Path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://asiermarques.medium.com/implementing-a-workflow-for-your-architecture-decisions-records-ab5b55ee2a9d"&gt;Implementing a workflow for your Architecture Decisions Records&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/packlinktech/the-pursuit-of-software-teams-autonomy-how-we-created-an-internal-platform-at-packlink-62c66d90249a"&gt;The pursuit of software teams autonomy: how we created an Internal Platform at Packlink&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/packlinktech/implementing-a-maturity-framework-for-our-teams-at-packlink-a625b43d0262"&gt;Implementing a maturity framework for our teams at Packlink&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los libros que he leído y me han aportado en este campo son innumerables; creo que merecen una serie de artículos o entradas en este blog.&lt;/p&gt;
&lt;h2 id="lo-de-no-fliparse"&gt;Lo de no fliparse.&lt;/h2&gt;
&lt;p&gt;Asumiendo roles de liderazgo o de gestión es muy fácil fliparse. Con &lt;em&gt;fliparse&lt;/em&gt; me refiero a un patrón de comportamiento muy claro en el que perdemos humildad como grupo o individuos y nuestro ego no permite hacernos conscientes de partes críticas del contexto en el que actuamos.&lt;/p&gt;
&lt;p&gt;Un ejemplo claro se da cuando tenemos éxito, especialmente en un entorno complejo. En esos casos, si no analizamos de forma objetiva nuestro contexto y los pasos que hemos dado, podemos asumir conclusiones erróneas y no entender exactamente por qué hemos conseguido algo. Esos factores pueden suponer una diferencia para replicar ese éxito en un contexto similar.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/i-made-this.png" alt="I made this"&gt;&lt;/p&gt;
&lt;p&gt;Y uno de los peligros de no analizar de forma objetiva nuestro éxito tras un reto concreto, es creernos que hemos conseguido todo nosotros solos.&lt;/p&gt;
&lt;p&gt;Especialmente cuando tenemos que plantear una estrategia es importante no fliparnos a la hora de traernos lecciones supuestamente aprendidas; puede que recordemos haber construido cosas desde cero cuando en realidad partíamos de cimientos que estaban establecidos previamente gracias al trabajo anterior de otras personas.&lt;br&gt;
Utilizar o seguir el trabajo base de otras personas no significa que no haya mérito o trabajo detrás por nuestra parte, pero seguramente al plantear la misma solución en un contexto similar, si tenemos en cuenta la necesidad de este trabajo previo, acertaremos en conseguir el éxito que esperamos de una forma más precisa.&lt;/p&gt;
&lt;h2 id="lo-de-cambiar-de-opinión"&gt;Lo de cambiar de opinión.&lt;/h2&gt;
&lt;p&gt;Una de las premisas del libro &lt;a href="https://www.goodreads.com/book/show/55539565-think-again"&gt;Think again&lt;/a&gt; de Adam Grant, es la de estar preparados para cambiar de opinión. Recomiendo este libro sobre todo a personas que empiecen en el rol de manager y vengan de contextos en los que el liderazgo a base de “tener razón” estuviera muy presente.&lt;/p&gt;
&lt;p&gt;Mantenerse firme en una opinión o creencia puede ser nocivo a varios niveles pero lo fundamental es que nos evita aprender de los demás.&lt;/p&gt;
&lt;p&gt;Creo que cambiar de opinión se ve muchas veces como una falta de personalidad y líderes anclados en el pasado se mantienen con pánico en defensa de visiones que ellos consideran correctas sin retarse o dar mínima seguridad a otros para que les reten.&lt;/p&gt;
&lt;p&gt;De nuevo, creo que he tenido suerte en los últimos años de contar con personas que me han retado y me han mostrado lo equivocada que estaba mi opinión. Gracias a todos ellas, he aprendido un montón de cosas.&lt;/p&gt;
&lt;h2 id="lo-de-leer"&gt;Lo de leer.&lt;/h2&gt;
&lt;p&gt;Leer me da la vida. Es uno de mis vicios favoritos junto al café. Y lo mejor de todo es que ambos vicios se pueden disfrutar al mismo tiempo.&lt;/p&gt;
&lt;p&gt;Algo que también me encanta es leer libros con más personas y debatirlos. La experiencia de lectura se hace mucho más interesante y en el caso de ensayos u otras lecturas de no ficción, creo que es uno de mis métodos de aprendizaje favoritos. Me encanta la sensación de descubrir que muy a pesar de mi tremenda seguridad por lo contrario, no había entendido realmente el punto del autor sobre algo.&lt;br&gt;
Nadie es más inteligente que una comunidad y en este sentido, tengo la suerte de contar con más gente inquieta cerca para debatir lecturas.&lt;/p&gt;
&lt;p&gt;Deberíamos disfrutar de leer sin obsesionarnos con terminar un número concreto de lecturas al año.&lt;br&gt;
Sin ánimo de meterme en la forma en la que otros leen libros, observo mucha presión por terminar los libros que se empiezan; esos libros no van a desaparecer y no pasa nada por tener libros sin terminar durante años. A veces nos metemos mucha presión con las cosas equivocadas.&lt;/p&gt;
&lt;p&gt;Me gusta mucho esta &lt;a href="https://youtu.be/0MxPTqsd76E"&gt;reflexión de Borges&lt;/a&gt; al respecto.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;hr&gt;
&lt;p&gt;Básicamente estos son los titulares que tenía en mi mente ahora mismo. Mi idea es seguir escribiendo y detenerme de vez en cuando a repasar nuevos titulares que vayan surgiendo por el camino.&lt;/p&gt;
&lt;p&gt;Nos leemos pronto.&lt;/p&gt;</content:encoded></item><item><title>Culturas de ingeniería: comunicación y documentación</title><link>https://blog.asiermarques.com/2020/culturas-ingenieria-5/</link><pubDate>Sun, 25 Oct 2020 16:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2020/culturas-ingenieria-5/</guid><content:encoded>&lt;p&gt;Esta es la quinta y última entrada de una serie de artículos sobre culturas de ingeniería.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://asiermarques.com/2019/culturas-ingenieria-1/"&gt;1. De qué hablamos cuando hablamos de cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-2/"&gt;2. Por dónde empezar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-3/"&gt;3. Madurez de nuestra cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-4/"&gt;4. Cultura de feedback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5. Comunicación y documentación&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Cuando pensamos en las cualidades que debe tener un rol o cualquier persona para considerarse un buen profesional, la comunicación seguro que está entre las primeras.&lt;/p&gt;
&lt;p&gt;Una buena comunicación tiene un impacto directo en la cultura de nuestra organización y puede significar una diferencia crítica a la hora de garantizar buen rendimiento y salud en los equipos.&lt;/p&gt;
&lt;p&gt;En este artículo voy a repasar con vosotros aquellos aspectos que me parecen críticos a la hora de pensar en la comunicación como algo cultural en nuestra organización.&lt;/p&gt;
&lt;h2 id="qué-consideramos-comunicar-bien"&gt;¿Qué consideramos comunicar bien?&lt;/h2&gt;
&lt;p&gt;Un aspecto fundamental que a menudo viene a nuestras mentes cuando pensamos en qué es comunicar bien es la oratoria. Cuidar el tono, ser elocuente y tener la capacidad de improvisar mensajes complejos con un ritmo y emoción adecuados.&lt;/p&gt;
&lt;p&gt;La oratoria es una gran aptitud que a menudo se confunde con buena comunicación.&lt;/p&gt;
&lt;p&gt;La oratoria brinda muchas oportunidades a la hora de influenciar a las personas ya que es un arma muy poderosa para convencer, sobre todo durante las primeras interacciones con otros.&lt;br&gt;
Las personas que cuentan con una buena oratoria y buena comunicación tienen un impacto increíble en una organización y en la cultura.&lt;/p&gt;
&lt;p&gt;Sin embargo, gozar de buena oratoria sin pulir otros aspectos comunicativos puede tener un impacto negativo en la confianza a medio y largo plazo.&lt;br&gt;
En cuanto aparezcan de forma frecuente los problemas derivados de la falta de buenas prácticas en cuanto a comunicación se refiere, empezaremos a notar que las cosas no van bien.&lt;br&gt;
Hablaremos de algunas de estas prácticas a lo largo de este artículo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Candor is the key to collaborating effectively. Lack of candor leads to dysfunctional environments.&amp;rdquo;&lt;br&gt;
—Edwin Catmull&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La transparencia y claridad son otros aspectos que nos vienen a la mente cuando pensamos en una buena comunicación.&lt;/p&gt;
&lt;p&gt;Estos son aún más importantes cuando necesitamos comunicar en una situación complicada o solucionar problemas importantes dentro de nuestra organización: conflictos en los equipos, un problema de rendimiento de una persona, necesidades para que una persona crezca o transmitir feedback sobre aspectos que dificultan nuestro trabajo o que nos acarreen frustraciones que puedan derivar en plantearnos dejar la empresa por motivos que podrían haber sido fácilmente solucionables.&lt;/p&gt;
&lt;p&gt;Hay motivos emocionales que nos pueden llevar a no ser claros en las comunicaciones, algunos pueden ser relacionados con el miedo al conflicto o por encontrarnos en una cultura en la que es más frecuente el culpar a las personas que mejorar los procesos.&lt;/p&gt;
&lt;p&gt;Hay incluso motivos peores como el subestimar la necesidad de comunicación de algo &amp;ldquo;porque ya se entiende&amp;rdquo; o descuidar la transmisión de expectativas porque no se ven necesarias.&lt;br&gt;
Hacer challenge de los procesos de comunicación periódicamente es fundamental, básicamente porque &lt;strong&gt;la comunicación siempre tiene margen de mejora&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Las comunicaciones que no son claras o se producen a destiempo generan desconfianza, frustraciones, falta de cumplimiento de las expectativas que no se han llegado a transmitir de forma clara e impactan en las planificaciones generando conflictos entre los equipos. A su vez, estos errores pueden también impactar en nuestra cultura generando frustraciones e incluso problemas como ansiedad, sesgos y malas decisiones a nivel estratégico.&lt;/p&gt;
&lt;p&gt;Nos suele venir a la mente también la escucha activa como uno de los aspectos clave relacionados con la comunicación.&lt;br&gt;
Escuchar antes de hablar es una práctica que nos enseña mucho de nuestro entorno, personas que apreciamos y que nos ayuda a crecer día a día.&lt;/p&gt;
&lt;p&gt;Especialmente en roles relacionados con la gestión de personas y equipos, escuchar es clave para entender los problemas reales.&lt;br&gt;
Incluso cuando la persona que nos hable no tenga razón o esté desencaminada totalmente en lo que dice, es importante escuchar todo lo que necesita decirnos porque puede darnos pistas de problemas que ni siquiera puedan estar relacionados a priori con lo que se está hablando.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Sometimes creating a culture of listening is simply a matter of managing meetings the right way.&amp;rdquo;&lt;br&gt;
—Kim Scott. &lt;a href="https://www.amazon.es/Radical-Candor-Kickass-Without-Humanity/dp/1250103509"&gt;Radical Candor&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Una cultura sana tiene mucho de buena comunicación y sobre todo, escuchar todo lo que cada persona de la empresa tiene que decir.&lt;br&gt;
Al final, hemos contratado profesionales también para escuchar sus aportaciones ¿no?&lt;/p&gt;
&lt;p&gt;En las reuniones tomamos decisiones, vemos diferentes opciones e intentamos estar todos en la misma página. Es una oportunidad para asegurar que ciertos aspectos culturales como el de la escucha y el espacio para tener voz se produzcan.&lt;br&gt;
Escribí algunas ideas sobre estos y otro temas relacionados sobre cómo mejorar nuestras reuniones &lt;a href="https://asiermarques.com/2020/sobre-reuniones/"&gt;en este artículo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hay varios aspectos importantes de comunicación que afectan directamente a nuestra cultura, vamos a ver algunos de los que he encontrado más importantes.&lt;/p&gt;
&lt;h2 id="comunicar-decisiones-con-las-que-no-estamos-de-acuerdo"&gt;Comunicar decisiones con las que no estamos de acuerdo&lt;/h2&gt;
&lt;p&gt;Hay otro aspecto que creo importante en la comunicación, sobre todo en aquellos que son responsables de equipos o de transmitir la dirección a la que se va como organización: &lt;strong&gt;el disagree and commit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;El disagree and commit es una técnica importante para evitar que &amp;ldquo;todo sea un consenso&amp;rdquo; o que las decisiones se alarguen demasiado.&lt;br&gt;
Incluso cuando una decisión se tome en consenso, puede que renunciemos a pelear eternamente algunos puntos que nos parecen importantes o tengan impacto claro bajo nuestro punto de vista en el día a día.&lt;/p&gt;
&lt;p&gt;Aunque pueda parecer algo malo, el disagree and commit es una técnica muy positiva o al menos más positiva que la alternativa: no llegar a tomar decisiones.&lt;/p&gt;
&lt;p&gt;El disagree and commit consta de dos partes fundamentales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;disagree: expongo las razones por las que no estoy de acuerdo con tomar una decisión e intento dar una alternativa. Dar una alternativa es muy valioso en este punto porque aunque no se tome ese otro camino, muestra que había otras posibilidades encima de la mesa y nos puede ayudar a mejorar en el futuro. Sin alternativa ese disagree sería muy difícil de diferenciar de una simple queja.&lt;/li&gt;
&lt;li&gt;commit: me comprometo a ejecutar la decisión de forma profesional y haciendo todo lo posible para que tenga éxito.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La segunda parte es muy clave y relacionada con la comunicación. Comunicar a los equipos un camino a seguir con el que no estás de acuerdo es muy complicado y es un punto en el que es muy fácil fallar, sobre todo cuando son cosas que impactan a un equipo en el que estás participando como líder o manager.&lt;/p&gt;
&lt;p&gt;Las consecuencias de fallar en una comunicación de este tipo son muy graves, entre ellas las que he experimentado con frecuencia son&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear sesgo en el equipo con el foro en el que se toman las decisiones o con algunos managers en concreto, provocando inseguridades en los equipos o decisiones que van en contra de la dirección común acordada.&lt;/li&gt;
&lt;li&gt;Crear o hacer más patente una cultura de &amp;ldquo;ellos contra nosotros&amp;rdquo;, provocando conflictos entre departamentos o equipos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aunque es importante el disagree and commit, cada uno de nosotros debemos valorar si las decisiones empiezan a traspasar barreras éticas o que entran en conflicto con nuestros valores e integridad.&lt;br&gt;
En este punto, antes de provocar problemas como los que hemos visto, debemos plantearnos si es sano continuar en una cultura o empresa en la que no encajamos a esos niveles.&lt;/p&gt;
&lt;p&gt;Hay mucho sobre lo que leer sobre este tema, os recomiendo especialmente &lt;a href="https://managementforstartups.com/articles/the-hard-thing-about-disagree-and-commit/"&gt;este artículo de Cedric Chin sobre el tema&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="elegir-bien-los-canales-cuando-necesitamos-comunicar-algo"&gt;Elegir bien los canales cuando necesitamos comunicar algo&lt;/h2&gt;
&lt;p&gt;Normalmente cuando necesitamos comunicar algo que afecta a varias personas o equipos, el mensaje sufre un periodo de maduración durante el cual puede sufrir cambios.&lt;/p&gt;
&lt;p&gt;Dependiendo del contexto, naturaleza del mensaje o los propios receptores, comunicar un mensaje que está a medias o no totalmente hablado por todas las personas a las que les afecta, puede generar conflictos, desconfianza o decisiones precipitadas.&lt;/p&gt;
&lt;p&gt;Es muy frecuente escuchar cosas como &amp;ldquo;se ha escuchado X en una conversación de pasillo&amp;rdquo;, &amp;ldquo;estamos trabajando en esta propuesta pero parece que Y ya ha tomado una decisión&amp;rdquo;.&lt;br&gt;
Este tipo de rumores ocasionados por comunicaciones inexactas o no coordinadas son un problema grave que impacta en la cultura y en muchos contextos se asumen como algo &amp;ldquo;normal&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La realidad es compleja y a veces no podemos contar con el tiempo para afinar o consensuar bien un mensaje, pero debemos aprovechar las ocasiones en las que sí podemos hacerlo de forma controlada.&lt;/p&gt;
&lt;p&gt;Es importante definir los canales en los que se pueden dar ciertos mensajes e información y qué momento es el adecuado.&lt;/p&gt;
&lt;p&gt;Este es un aspecto clave y hay &lt;a href="https://opentextbc.ca/projectmanagement/chapter/chapter-15-communication-planning-project-management/"&gt;herramientas que nos pueden ayudar a planificar bien las comunicaciones&lt;/a&gt;, especialmente cuando estén relacionadas con anuncios de cambios de procesos o de la ejecución de una decisión crítica.&lt;/p&gt;
&lt;h2 id="comunicar-las-expectativas"&gt;Comunicar las expectativas&lt;/h2&gt;
&lt;p&gt;Algo muy peligroso a la hora de gestionar la comunicación es asumir que hay cosas que no son necesarias de comunicar, porque son de sentido común.&lt;br&gt;
Y una de las cosas en las que podemos fallar muy fácilmente es en la comunicación de las expectativas.&lt;/p&gt;
&lt;p&gt;Comunicar las expectativas que tenemos con las personas que entran en nuestro equipo y también con los roles que van a interactuar no sólo con equipos sino con otros departamentos es clave para asegurar un buen rendimiento y la autonomía, aspectos claves para tener una buena cultura.&lt;/p&gt;
&lt;p&gt;A veces nos puede ocurrir que esperamos cosas muy concretas de una persona o un rol y no terminamos de comunicarlas de forma clara, esto puede generar sesgos muy fácilmente cuando la otra parte ni siguiera ha tenido la oportunidad para demostrar que es capaz de hacer lo que se le pide porque simplemente no es consciente de que lo que se le está pidiendo.&lt;/p&gt;
&lt;p&gt;Tenemos herramientas como &lt;a href="https://medium.com/packlinkeng/the-path-to-our-career-path-8781e4565ae3"&gt;el Career Path&lt;/a&gt; y los valores de la empresa (y los del equipo) para dejar claras las expectativas pero sin duda, la herramienta más importante con la que podemos y debemos contar es el feedback.&lt;br&gt;
Comentamos más en detalle sobre &lt;a href="https://asiermarques.com/2020/culturas-ingenieria-4/"&gt;cómo crear una cultura de feedback en un artículo anterior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si hay algo en lo que no debemos relajarnos a la hora de asegurar una buena comunicación, es a la hora de dejar bien claras las expectativas que tenemos con una persona, equipo, rol o proceso.&lt;/p&gt;
&lt;h2 id="asegurar-un-lenguaje-común"&gt;Asegurar un lenguaje común&lt;/h2&gt;
&lt;p&gt;En su libro &lt;a href="https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215"&gt;Domain-Driven design: tackling the complexity in the hearth of software&lt;/a&gt;, Eric Evans escribió:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On a project without a common language, developers have to translate for domain experts.&lt;br&gt;
Domain experts translate between developers and still other domain experts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Developers even translate for each other.&lt;br&gt;
Translation muddles model concepts, which leads to destructive refactoring of code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The indirectness of communication conceals the formation of schisms —different team members use terms differently but don’t realize it.&lt;br&gt;
This leads to unreliable software that doesn’t fit together.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The effort of translation prevents the interplay of knowledge and ideas that lead to deep model insights.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;DDD nos ha mostrado una parte estratégica que podemos utilizar no sólo para construir software de una forma más efectiva, sino también para detectar formas de distribuir el trabajo reduciendo los problemas de comunicación y la carga cognitiva que pueden sufrir los ingenieros de software al lidiar con la complejidad.&lt;/p&gt;
&lt;p&gt;Uno de los principales orígenes de esa complejidad suele darse a la hora de entender los diferentes conceptos críticos en nuestro negocio. Y como la ley de Conway bien expresa, estos problemas de comunicación se unen a otros que impactan directamente en la arquitectura de nuestros sistemas y plataformas:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization&amp;rsquo;s communication structure.&amp;rdquo;&lt;br&gt;
—Melvin E. Conway&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Como parte de la gestión de la comunicación y la organización de nuestros equipos para evitar problemas de alineamiento entre ellos, un glosario común es una herramienta fundamental cara a entender los conceptos de la misma forma.&lt;/p&gt;
&lt;p&gt;Cuanto más común sea el ejercicio de aclarar estos conceptos y modelar basándonos en ellos, más problemas de comunicación nos ahorraremos en el día a día contribuyan a aumentar la complejidad en nuestros sistemas.&lt;/p&gt;
&lt;p&gt;En esta línea, es importante también asegurar que las definiciones y entendimiento de conceptos que usamos en nuestro día a día estén alineados con el entendimiento de la comunidad fuera de nuestra empresa.&lt;br&gt;
Por ejemplo, si empleamos el término &amp;ldquo;retrospectiva&amp;rdquo; como una dinámica que nada tiene que ver con cómo se conoce fuera de nuestra empresa estamos dificultando a que nuevos miembros que se incorporen a nuestros equipos conozcan nuestro contexto y por otro lado, vamos a tener problemas de gestión de expectativas en los equipos.&lt;/p&gt;
&lt;p&gt;Un último punto que quería añadir tiene su origen en una conversación que tuve hace tiempo con un amigo. Comentábamos sobre la típica frase que solemos utilizar, generalmente con la intención de dejar claro que en nuestros equipos no queremos héroes: &amp;ldquo;en nuestros equipos nadie puede ser imprescindible&amp;rdquo;.&lt;br&gt;
Generalmente todos conocemos el contexto y el por qué de comentar esto, pero debemos plantearnos cómo puede llegar a entenderse por alguien que no venga de una cultura similar a la nuestra: &amp;ldquo;¿significa eso que entonces todos somos prescindibles? Y si soy prescindible, ¿realmente les importo algo al resto de los compañeros que repiten ese mantra?&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Aunque nuestra intención sea buena, a veces debemos plantearnos si estamos dejando claro qué queremos conseguir con un concepto y si todo el mundo lo entiende de la misma forma.&lt;/p&gt;
&lt;h2 id="cultura-de-documentación"&gt;Cultura de documentación&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“If it is not written down, it does not exist.”&lt;br&gt;
—Philippe Kruchten&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cuando pensamos en documentación asumimos que nos estamos refiriendo a una parte concreta en un proceso dedicada a reflejar aspectos que consideramos importantes para otros compañeros.&lt;/p&gt;
&lt;p&gt;Hablar de una cultura de documentación va bastante más allá, concretamente a que la documentación sea algo natural que forme parte de nuestro trabajo en todo momento y no sólo en un espacio de tiempo dedicado para ello o en un único ámbito concreto.&lt;/p&gt;
&lt;p&gt;También es importante entender que &amp;ldquo;tener mucha documentación&amp;rdquo; no implica gozar de una buena cultura de documentación.&lt;/p&gt;
&lt;p&gt;Una buena cultura de documentación persigue estos beneficios:&lt;/p&gt;
&lt;h3 id="la-información-es-fácil-de-encontrar-y-de-descubrir-findability-y-discoverability"&gt;La información es fácil de encontrar y de descubrir (Findability y Discoverability)&lt;/h3&gt;
&lt;p&gt;Normalmente el primer remedio que nos encontramos cuando pensamos en cómo poder encontrar fácilmente (findability) la información que hemos ido registrando a lo largo de los años es una herramienta que conocemos bastante bien: el buscador.&lt;/p&gt;
&lt;p&gt;Los buscadores suelen ser la bala de plata en la que confiamos para asegurar que la información va a encontrarse cuando alguien la busca.&lt;/p&gt;
&lt;p&gt;Sin embargo, para encontrar algo, la persona debe saber qué debe buscar y también utilizar correctamente los patrones semánticos que le permitan tener un mayor éxito en su búsqueda.&lt;/p&gt;
&lt;p&gt;Por ello, cada vez se da más importancia a cómo de fácil es descubrir el contenido (discoverability) aun sin saber exactamente lo que estás buscando. Los filtrados, índices en cada sección de nuestra documentación, asegurar un único punto de verdad, gestionar la documentación deprecada, definir convenciones y estructuras de documentación comunes entre los diferentes equipos y proyectos nos ayudarán a mejorar la experiencia de obtención de información por nuestros compañeros.&lt;/p&gt;
&lt;h3 id="la-documentación-está-siempre-actualizada"&gt;La documentación está siempre actualizada&lt;/h3&gt;
&lt;p&gt;Hace algún tiempo escribí algunas &lt;a href="https://asiermarques.com/2019/documentacion-activa/"&gt;pautas sobre cómo podemos generar documentación técnica de forma automática con el objetivo de mantenerla viva&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hay que pensar que no todo es documentación técnica, algunos otros ámbitos como los action points de reuniones, decisiones de equipo e información de procesos de personas forman parte de una documentación importante. Debemos encontrar formas de que esta información esté igualmente actualizada, idealmente de forma automática.&lt;/p&gt;
&lt;h3 id="rotación-de-las-personas-encargadas-de-documentar"&gt;Rotación de las personas encargadas de documentar&lt;/h3&gt;
&lt;p&gt;El mejor mecanismo para que todas las personas del equipo sepan dónde y cómo se registra la información, es evitando que siempre sean los mismos los que documentan todo o ciertos aspectos específicos.&lt;/p&gt;
&lt;h3 id="conseguir-que-las-personas-de-nuestro-equipo-busquen-la-información-como-primer-impulso-antes-de-preguntar"&gt;Conseguir que las personas de nuestro equipo busquen la información como primer impulso antes de preguntar&lt;/h3&gt;
&lt;p&gt;Este es el punto más complejo de conseguir incluso atacando de forma efectiva los puntos anteriores. Sin embargo, este comportamiento es el que podemos tomar como referencia a la hora de asegurar que tenemos una buena cultura de documentación.&lt;/p&gt;
&lt;h2 id="comunicación-asíncrona"&gt;Comunicación asíncrona&lt;/h2&gt;
&lt;p&gt;Aunque para muchos la comunicación asíncrona era algo muy natural, especialmente para las personas que trabajan desde hace años en remoto, está empezando a ser una herramienta indispensable en la nueva realidad en la que nos encontramos.&lt;/p&gt;
&lt;p&gt;Es un paso adelante que conlleva mejorar nuestra &lt;a href="https://asiermarques.com/2020/sobre-reuniones/"&gt;gestión en las reuniones&lt;/a&gt; y también de la comunicación en general.&lt;/p&gt;
&lt;p&gt;La comunicación asíncrona nos hace ganar tiempo y nos da la libertad de organizarnos mejor, pero conlleva una serie de retos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gestionar la atención de los canales asíncronos: cada vez serán más las conversaciones que lleguen a través de diversos canales, incluso teniendo una única herramienta de mensajería&lt;/li&gt;
&lt;li&gt;Gestionar el impulso de contestar inmediatamente: a nivel social no todo el mundo maneja bien que no le contestes inmediatamente en una conversación como Whatsapp o Telegram, por lo que estamos condicionados a la hora de gestionar esto en un entorno profesional. Es clave acordar con nuestros compañeros las expectativas para mitigar esto.&lt;/li&gt;
&lt;li&gt;Evitar las conversaciones en las que hay un grupo parcial de los interesados o afectados por la misma: es la versión moderna de las conversaciones de pasillo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;A la hora de asegurar una buena comunicación debemos asumir que siempre hay margen de mejora en un abanico amplio de prácticas y conceptos a tener en cuenta.&lt;/p&gt;
&lt;p&gt;En este artículo he intentado recopilar algunos de esos aspectos que nos pueden impactar de forma directa cara a garantizar una buena cultura de ingeniería.&lt;/p&gt;</content:encoded></item><item><title>Sobre reuniones</title><link>https://blog.asiermarques.com/2020/sobre-reuniones/</link><pubDate>Sat, 18 Jul 2020 16:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2020/sobre-reuniones/</guid><content:encoded>&lt;p&gt;Hay mucho escrito sobre la eficiencia y buenas prácticas a la hora de gestionar reuniones en el ámbito profesional.&lt;/p&gt;
&lt;p&gt;Aún teniendo claras pautas importantes, las reuniones suelen ser motivo de queja y frustración para muchos profesionales. Hay ciertos personas que ven como algo normal tener su calendario copado de reuniones, con incluso varias de ellas solapadas entre sí, justificándolo con su rol, título o responsabilidad.
Desde hace años es conocido el lema &amp;ldquo;&lt;a href="https://www.forbes.com/sites/forbescoachescouncil/2019/07/26/is-busy-really-the-new-stupid/#326161ff16de"&gt;busy is the new stupid&lt;/a&gt;&amp;rdquo; iniciado por una &lt;a href="https://www.cnbc.com/2018/09/07/warren-buffett-taught-bill-gates-about-time-management-by-sharing-his-blank-calendar.html"&gt;conversación entre Bill Gates y Warren Buffet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En algunos contextos parece imposible reducir el número de reuniones y el mero hecho de plantearse rechazar una convocatoria puede ser un factor de estrés importante para una persona que no tiene claras las implicaciones que pueda tener el hacerlo, incluso si es imposible para ella acudir a dicha cita.&lt;/p&gt;
&lt;p&gt;Dada nuestra naturaleza social, las reuniones son necesarias y no deberían ser algo negativo, sino todo lo contrario.&lt;/p&gt;
&lt;p&gt;Quería escribir este artículo con algunas buenas prácticas que he ido aprendiendo con el tiempo y que creo que tienen un impacto significativo en cuanto a eficiencia, salud, cultura y respeto a las personas con las que trabajamos día a día.&lt;/p&gt;
&lt;h2 id="evitar-reuniones-y-promover-la-comunicación-asíncrona"&gt;Evitar reuniones y promover la comunicación asíncrona&lt;/h2&gt;
&lt;p&gt;La reuniones síncronas suponen una inversión de tiempo, atención y disponibilidad que se traduce en un alto coste económico.&lt;br&gt;
La dificultad para encontrar disponibilidad a la hora de agendar una reunión puede ser exponencial si los integrantes disponen de un calendario que suele estar precisamente completo de reuniones.&lt;/p&gt;
&lt;p&gt;Teniendo esto en cuenta, cuantas más reuniones o ceremonias síncronas podamos evitar, más efectivos seremos a la hora de encontrar huecos para aquellas reuniones que sí que merezcan esta inversión.&lt;/p&gt;
&lt;p&gt;Algunos ejemplos de reuniones que se pueden tratar como comunicación asíncrona:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un buen uso de la herramienta de gestión de proyectos para representar el estado y bloqueos de las tareas, en lugar de tener que hacer un &amp;ldquo;reporte&amp;rdquo; en una reunión o consumir tiempo de una daily para eso.&lt;/li&gt;
&lt;li&gt;Las propias daily o stand up pueden ser asíncronas si &lt;a href="https://slack.com/intl/es-es/slack-tips/daily-reminder-to-post-standup-in-channel"&gt;utilizamos Slack y sus workflow&lt;/a&gt;. También podemos utilizarlos para &lt;a href="https://slack.com/intl/es-es/slack-tips/get-feedback-no-meeting-required"&gt;pedir feedback de forma asíncrona&lt;/a&gt;, entre otras muchas cosas. Son una genial herramienta para automatizar y conducir de forma asíncrona un montón de mecánicas y rituales.&lt;/li&gt;
&lt;li&gt;Aclarar dudas directamente en la herramienta de documentación que utilicemos o mediante documentos compartidos en Google en lugar de fijar una reunión para ello.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prevenir-que-las-reuniones-duren-exactamente-una-hora-o-media-hora"&gt;Prevenir que las reuniones duren exactamente una hora o media hora&lt;/h2&gt;
&lt;p&gt;Un anti-patrón de productividad ya muy conocido es el de agendar reuniones con duraciones fijas por defecto de una hora u hora y media. Antes de agendar reuniones con un duración de una hora, piensa que es muy posible que los asistentes de esa reunión tengan otra que empiece justo después, sin disponer de tiempo para descansar mentalmente entre las dos ni gestionar el cambio de contexto.&lt;/p&gt;
&lt;p&gt;Esta falta de descanso puede ir incrementando el nivel de estrés de las personas a lo largo del día, especialmente cuando se trabaja en remoto y no hay un cambio de sala entre reuniones. Si entramos en esa dinámica podemos encontrarnos fácilmente con cuatro reuniones seguidas sin haber tenido ni cinco minutos para descansar la vista o incluso ir al baño.&lt;/p&gt;
&lt;p&gt;Esto no quiere decir que todas las reuniones deban ser de 50 minutos. Por ejemplo, si crees que la reunión va a durar una hora, quizás sea buena idea poner la reunión con una duración de una hora y veinte minutos. Esto va a asegurar que si la reunión termina antes o a tiempo, los asistentes tendrán asegurados al menos diez minutos de paz mental entre reuniones.&lt;/p&gt;
&lt;h2 id="ser-puntual-y-finalizar-a-tiempo"&gt;Ser puntual y finalizar a tiempo&lt;/h2&gt;
&lt;p&gt;Relacionado con el punto anterior, llegar tarde a una reunión puede suponer que esa reunión termine más tarde de lo acordado y provoque que vayas generando retrasos encadenados si tienes varias reuniones ese día sin espacio entre las mismas.
Además, es muy posible que ese retraso pueda ser considerado como una falta de respeto por el resto de los asistentes que han reservado su tiempo a sincronizarse contigo.&lt;/p&gt;
&lt;p&gt;De igual forma, debemos tener presente que si no terminamos la reunión en el tiempo establecido, estamos siendo en cierto modo egoístas con el tiempo de los demás, impactando en su disponibilidad y tiempo de forma directa.&lt;/p&gt;
&lt;p&gt;Si han quedado temas en el tintero, quizás debamos plantear otra reunión para comentarlos o buscar la resolución de los mismos mediante algún mecanismo asíncrono; alargar la reunión debe ser el último recurso ya que es posible que hay implicaciones al hacerlo de las que no seas plenamente consciente.&lt;/p&gt;
&lt;h2 id="al-agendar-la-reunión-dejar-claros-los-puntos-de-la-agenda-y-el-objetivo-de-la-misma"&gt;Al agendar la reunión, dejar claros los puntos de la agenda y el objetivo de la misma&lt;/h2&gt;
&lt;p&gt;Cuando agendas una reunión sin indicar una agenda de la misma, los asistentes no van a contar con la oportunidad para prepararse con antelación sobre los puntos que se van a discutir en la reunión. Esto impacta en la efectividad de la misma.&lt;/p&gt;
&lt;p&gt;De forma adicional, es buena idea establecer los objetivos o la expectativa principal de esa reunión. Algunos ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Vamos a tomar una decisión sobre [algo]&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Vamos a darnos feedback sobre estos puntos&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;No vamos a tomar una decisión, el objetivo es tener contexto y entendimiento común sobre [algo] y establecer siguientes pasos&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hay múltiples herramientas como Notion, Confluence que cuentan con plantillas para establecer notas de reuniones. Si no utilizas estas herramientas, puedes utilizar documentos de Google o cualquier otro sistema en el que se pueden compartir una simple tabla o a modo de listado qué puntos se van a tratar. De esta forma se puede utilizar el mismo documento como guía y tener documentado todo al final de la reunión.&lt;/p&gt;
&lt;p&gt;Esto también nos facilita discutir sobre esos puntos de forma asíncrona mediante comentarios, ahorrando tiempo de la reunión antes de que esta se produzca.&lt;/p&gt;
&lt;p&gt;Si la reunión es rápida o no hay una costumbre aún adquirida de preparar este tipo de documentos, un primer paso interesante que suele tener un impacto positivo suele ser simplemente indicar una descripción en la convocatoria que siga un formato parecido a este:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Driver: Nombre Apellidos

Objetivo: Establecer siguientes pasos para el proyecto

Agenda:

* Estado actual, 10&amp;#34;
* Conclusiones tras la primera iteración, 20&amp;#34;
* Siguientes pasos, 20&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si no eres la persona que organiza la reunión y ves que la misma no tiene agenda o una descripción, puede ser buena idea pedirle que prepare una o ayudarle a prepararla.&lt;/p&gt;
&lt;h2 id="decidir-quién-va-a-ser-el-driver-de-la-reunión-antes-de-la-misma"&gt;Decidir quién va a ser el driver de la reunión antes de la misma&lt;/h2&gt;
&lt;p&gt;Algo típico que suele ocurrir en un equipo es que siempre sea la misma persona la que modere o esté atento de cómo se desenvuelve la reunión.
Muchas veces suele coincidir que esa persona es la que agenda la reunión porque tenga el rol de manager o porque ya ha dinamizado alguna otra reunión antes.&lt;br&gt;
En otras ocasiones la reunión termina siendo conducida de forma improvisada por las personas con más iniciativa o facilidad de palabra del equipo.&lt;/p&gt;
&lt;p&gt;Para evitar esa improvisación y mejorar la eficiencia de la reunión, es muy recomendable que se sepa antes de la misma quién es la persona encargada de guiar esa reunión.&lt;/p&gt;
&lt;p&gt;Otra buena práctica es rotar esa responsabilidad entre los miembros del equipo para que no sea siempre la misma persona, dando la oportunidad a todo el mundo de poder conducir las reuniones. Esto evita dependencias y hace crecer a todos los miembros del equipo.&lt;/p&gt;
&lt;h2 id="asegurar-que-todo-el-mundo-está-conectado-con-lo-que-se-está-comentando-en-la-reunión-y-tiene-espacio-para-participar"&gt;Asegurar que todo el mundo está conectado con lo que se está comentando en la reunión y tiene espacio para participar&lt;/h2&gt;
&lt;p&gt;Antes de nada, es importante asegurar de que el tono y el lenguaje es inclusivo en las reuniones. Esto es muy importante y creo que es algo sobre lo que debemos dar feedback cuando no se produce o hay margen de mejora.&lt;/p&gt;
&lt;p&gt;Si hay asistentes que están trabajando desde casa, es buena idea crear una regla para dejar claro cuando alguien quiere hablar para prevenir el solapamiento entre los interlocutores o que unas personas eclipsen a las otras.&lt;br&gt;
Por ejemplo, se puede pactar que cuando alguien quiera añadir algo sobre un tema sobre el que dos personas están hablando, se levante la mano para que todo el mundo sepa que hay algo que decir y que no se quiere interrumpir una discusión.&lt;br&gt;
Cuando hay una discusión en la que varias personas están hablando a toda velocidad, puede haber alguien que no sepa cómo contribuir a esa conversación y deje de hacerlo si no hay un mecanismo de este tipo.&lt;/p&gt;
&lt;p&gt;Si hay personas de diferentes culturas en la reunión o alguien se siente muy incómodo al hablar, es buena idea estructurar la reunión para que cada asistente tenga unos minutos para comentar su punto de vista sobre un punto de la agenda, siguiendo un orden o mediante round-robin, por ejemplo.&lt;br&gt;
Suele ser importante también preguntar directamente sobre su punto de vista a las personas que han permanecido calladas durante una discusión o la conversación sobre algún punto concreto de la agenda.&lt;br&gt;
Esto último es importante también cuando esas personas han mostrado intención de meterse en una discusión pero ha sido eclipsada continuamente durante la misma.&lt;/p&gt;
&lt;p&gt;Además de todo esto, es importante asegurar buenas prácticas de comunicación. Estas mejorarán la eficiencia e inclusividad en las reuniones.&lt;/p&gt;
&lt;p&gt;Algunas de las más importantes para mi son las siguientes:&lt;/p&gt;
&lt;h3 id="promover-la-escucha-activa"&gt;Promover la escucha activa&lt;/h3&gt;
&lt;p&gt;Es importante asegurar que todas las personas puedan terminar de comunicar su mensaje sin ser interrumpidas en medio del mismo. Al margen de asegurar que las conversaciones en las reuniones sean sanas, saber escuchar es una habilidad que es muy valiosa de trabajar para dentro y fuera del aspecto profesional.&lt;/p&gt;
&lt;h3 id="mantener-el-scope-o-foco"&gt;Mantener el scope o foco&lt;/h3&gt;
&lt;p&gt;Este es el punto más importante para asegurar que una reunión sea productiva. A veces es un reto mantener el foco cuando hay mucha gente en una reunión, por lo que puede ser necesario hacer un esfuerzo extra en este punto.&lt;/p&gt;
&lt;h3 id="prevenir-que-actitudes-dogmáticas-o-posiciones-de-examinador"&gt;Prevenir que actitudes dogmáticas o posiciones de &amp;ldquo;examinador&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;Este punto está muy relacionado con la escucha activa. Tiene mucho que ver con saber entender el mensaje principal sin centrarse tanto en los detalles, dejando al lado prejuicios y sobre todo estar abiertos de mente a mensajes u opiniones que puedan ser muy diferentes a lo que estemos acostumbrados.&lt;/p&gt;
&lt;p&gt;Hay mucha oportunidad de crecimiento al evitar este tipo de posiciones y también pueden evitar frustraciones en personas que puedan traer un soplo de aire fresco al equipo.&lt;/p&gt;
&lt;h3 id="si-no-tienes-webcam-debes-hacer-un-esfuerzo-extra"&gt;Si no tienes webcam, debes hacer un esfuerzo extra&lt;/h3&gt;
&lt;p&gt;Cuando asistimos a una reunión en la que hay gente trabajando en otra localización y nuestra cámara no funciona, es clave hacer un esfuerzo extra para describir nuestras reacciones o ser consciente de nuestro tono al responder o hablar.
En estas situaciones la información que tienen los receptores es muy limitada y puede que los mensajes se malinterpreten con mucha facilidad&lt;/p&gt;
&lt;h2 id="asegurar-que-al-final-de-la-reunión-queden-documentados-tanto-las-decisiones-como-los-puntos-de-acción"&gt;Asegurar que al final de la reunión queden documentados tanto las decisiones como los puntos de acción&lt;/h2&gt;
&lt;p&gt;Es importante dejar documentado un registro de las decisiones tomadas durante la reunión y también las acciones o tareas que se han pactado realizar en la misma.&lt;/p&gt;
&lt;p&gt;De esta forma alguien que no haya podido atender a la reunión tiene contexto del resultado de la misma y también, todo el mundo sabe dónde puede consultar estas cosas para no confiar únicamente en su memoria.&lt;/p&gt;
&lt;p&gt;Los puntos de acción y decisiones deben ser claros, entendibles y fáciles de encontrar, además de contar con contexto para poder ser ejecutados sin ningún tipo de duda y entender las limitaciones o factores que han influido en los mismos.&lt;/p&gt;
&lt;h2 id="dar-feedback-sobre-la-reunión"&gt;Dar feedback sobre la reunión&lt;/h2&gt;
&lt;p&gt;Como hemos comentado, las reuniones son caras y por ello, todo feedback para mejorar cómo se llevan a cabo va a ser muy valioso tanto para las personas que han participado como para la cultura de la empresa a largo plazo.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;Las reuniones pueden tener un coste muy alto en varios aspectos y no siempre podemos sustituirlas en favor de comunicación asíncrona.&lt;/p&gt;
&lt;p&gt;Es importante hacer todo lo posible para sacar el máximo partido de las mismas, respetando el tiempo de las personas con las que trabajamos.&lt;/p&gt;</content:encoded></item><item><title>Culturas de ingeniería: cultura de feedback</title><link>https://blog.asiermarques.com/2020/culturas-ingenieria-4/</link><pubDate>Sat, 21 Mar 2020 16:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2020/culturas-ingenieria-4/</guid><content:encoded>&lt;p&gt;Esta es la cuarta entrada de una serie de artículos sobre culturas de ingeniería.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://asiermarques.com/2019/culturas-ingenieria-1/"&gt;1. De qué hablamos cuando hablamos de cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-2/"&gt;2. Por dónde empezar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-3/"&gt;3. Madurez de nuestra cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4. Cultura de feedback&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-5/"&gt;5. Comunicación y documentación&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://unsplash.com/photos/n2V4ZNflsHM"&gt;&lt;img src="https://blog.asiermarques.com/media/adi-goldstein-n2V4ZNflsHM-unsplash.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En esencia, el &lt;a href="https://en.wikipedia.org/wiki/Feedback"&gt;feedback&lt;/a&gt; es información que recibimos de un entorno o de un sistema al interactuar con el mismo.&lt;/p&gt;
&lt;p&gt;A nivel social, obtendremos feedback al interactuar con una o más personas o trabajando en un equipo que vaya en una dirección común siempre que existan mecanismos, voluntad o hábitos que nos los proporcionen.&lt;/p&gt;
&lt;p&gt;Dotar de mecanismos mediante los cuales las personas puedan recibir feedback tanto de sus managers como de sus compañeros, tendrá como resultado que estas confirmen que van en la dirección correcta y crezcan en puntos que aporten tanto al beneficio de la empresa como al suyo personal.&lt;/p&gt;
&lt;p&gt;Las empresas en los que el feedback sea uno de los aspectos más importantes y cuidados de su cultura, &lt;a href="https://officevibe.com/blog/infographic-employee-feedback"&gt;tienen muchas posibilidades de aumentar su retención de talento y detectar problemas&lt;/a&gt; mucho antes de que estos tengan un impacto crítico en el día a día.&lt;/p&gt;
&lt;h3 id="cómo-es-un-buen-feedback"&gt;Cómo es un buen feedback&lt;/h3&gt;
&lt;p&gt;Un buen feedback se centra en algo en concreto: un hecho o un comportamiento por ejemplo. Nunca se centra en una persona.
Esto es un punto importante ya si el centrar el feedback se centra en una persona y no en hechos o comportamientos concretos, nuestros prejuicios y los prejuicios de la persona receptora influirán negativamente eliminando toda posibilidad de que el ejercicio sea constructivo o sirva para algo.&lt;/p&gt;
&lt;p&gt;Otra característica de un buen feedback es el contexto y el momento. El contexto es crítico. Poner ejemplos dentro del contexto, servirá para que el mensaje se pueda aprovechar y entender completamente. Un ejemplo sin contexto puede ser fácilmente malinterpretado y tener consecuencias contraproducentes.&lt;/p&gt;
&lt;p&gt;El momento también es importante. Cuanto más alejado sea el momento del hecho y del contexto, menos efectivo será el feedback. Se suele decir que pasadas las primeras 48 horas de un hecho concreto, el feedback ya es tardío y su eficacia ha perdido valor.&lt;/p&gt;
&lt;p&gt;Acompañado al contexto, el impacto es algo importante a incluir en el feedback. Describir bien el impacto que ha tenido un comportamiento en el entorno o en otra persona ayuda a comprender mejor la importancia de corregir o mejorar el comportamiento.&lt;/p&gt;
&lt;h3 id="feedback-positivo-de-mejora-o-correctivo"&gt;Feedback positivo, de mejora o correctivo&lt;/h3&gt;
&lt;p&gt;El feedback puede ser positivo, de mejora o correctivo. Hago distinción entre mejora y corrección porque creo que es importante la diferencia de enfoque y objetivo deseado al darlo. Hablo de esto más adelante en esta sección.&lt;/p&gt;
&lt;p&gt;El feedback positivo parece que es el más sencillo de dar, pero curiosamente es el que menos se cuida. Es importante dar correctamente el feedback positivo para que sea útil.
Hablaremos más adelante sobre anti-patrones a la hora de dar feedback, pero es importante recalcar que el feedback positivo no es una palmada en la espalda, un elogio o reconocimiento o una herramienta para utilizar antes de dar otro feedback que es el que realmente queramos dar.&lt;br&gt;
Debemos tener en cuenta que el objetivo de dar este tipo de feedback, es que la persona mejore y no solo que se sienta bien al recibirlo.&lt;/p&gt;
&lt;p&gt;Cuando damos feedback positivo es muy importante recalcar el contexto y el impacto junto al hecho concreto sobre el cual estamos dando feedback. Es posible que la persona no le haya dado importancia a un hecho porque no comprende todo lo que ha desencadenado porque no tiene visión o simplemente porque no ha podido hacer seguimiento.
En estos casos el contexto es importante también para que esa persona entienda las circunstancias concretas en las que ese comportamiento ha tenido ese impacto positivo. De esta forma podrá seguir adoptándolo y reforzándolo en futuras ocasiones en las que el contexto sea similar.&lt;/p&gt;
&lt;p&gt;Cuando damos feedback de mejora, la idea es que la persona lo tenga presente para que reflexione y aplique libremente los cambios que vea necesarios con nuestra ayuda si fuese necesario. Este feedback va orientado a que la persona crezca.&lt;/p&gt;
&lt;p&gt;Cuando damos feedback correctivo, estamos especificando también qué comportamientos y cambios esperamos que esta persona aplique.
Este feedback suele darse cuando hay banderas rojas en la actitud o comportamiento y se precisa una corrección de cosas concretas antes de que provoquen problemas mayores que afecten al equipo o lleguen incluso a conllevar la necesidad de despidos.&lt;/p&gt;
&lt;h3 id="el-feedback-como-cultura"&gt;El feedback como cultura&lt;/h3&gt;
&lt;p&gt;El feedback es una herramienta fundamental alineada con una cultura basada en la &lt;a href="https://en.wikipedia.org/wiki/Kaizen"&gt;mejora continua&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cuando el feedback no es solo un hábito de ciertos managers o personas concretas que se preocupan por darlo o pedirlo, sino que es algo asumido por todas las personas de los equipos, podemos decir que el feedback en nuestra empresa, es cultural.&lt;/p&gt;
&lt;p&gt;Al disponer de feedback como cultura, podemos desarrollar y gozar de cosas tan importantes como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dar y recibir feedback es asumido como algo habitual y no se recibe como un ataque, sino como un regalo&lt;/li&gt;
&lt;li&gt;Surge la necesidad de tener una dirección clara porque se demanda feedback al respecto para poder conducir el feedback&lt;/li&gt;
&lt;li&gt;Las personas están más abiertas a escuchar y cuestionar si podrían aplicar mejoras a todo lo que hacen&lt;/li&gt;
&lt;li&gt;Las personas no se cortan a la hora de expresar si creen que algo se puede hacer mejor y disponen de espacio y mecanismos para hacerlo&lt;/li&gt;
&lt;li&gt;La comunicación se hace más eficiente y no se centra en lo negativo&lt;/li&gt;
&lt;li&gt;Los prejuicios se reducen&lt;/li&gt;
&lt;li&gt;Lo que se expone termina por generar cambio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para que el feedback sea efectivo y se interiorice en nuestra cultura, es muy importante hacer seguimiento del estado de las acciones de mejora propuestas tras conversar acerca del feedback.&lt;/p&gt;
&lt;h3 id="mecanismos-y-herramientas"&gt;Mecanismos y herramientas&lt;/h3&gt;
&lt;h4 id="reuniones-one-on-one"&gt;Reuniones one on one&lt;/h4&gt;
&lt;p&gt;La reunión de 1-1 es una herramienta ya conocida y muy asentada en muchas culturas, que es utilizada por managers y personas del equipo para construir una relación de confianza, dar feedback, establecer objetivos y hacer seguimiento de una persona.&lt;/p&gt;
&lt;p&gt;Para mí, estas reuniones no son opcionales y de hecho, creo que son las más importantes que se puedan tener como manager. Dependiendo del número de personas a las que estoy haciendo seguimiento en un determinado momento, me gusta tener 1-1 con cada persona cada dos o tres semanas, como máximo.&lt;/p&gt;
&lt;p&gt;Si hay que trabajar más directamente con una persona o corregir comportamientos, entonces veo imprescindible tener 1-1 semanales con la misma.&lt;/p&gt;
&lt;p&gt;Hay mucho escrito sobre cómo abordar 1-1 pero en mi opinión, lo importante es que se hagan sin forzar un guion ni una duración específicos. Tampoco han de ser necesariamente entre un manager y un miembro de un equipo; cualquiera debería poder convocar un 1-1 a cualquier miembro de la empresa cuando necesite comentar algo.&lt;/p&gt;
&lt;p&gt;Conozco entornos en los que poder reservar un tiempo periódico para hablar con las personas con las que trabajas es una odisea o incluso puede suponer un problema para la persona o para ti como manager.
En estos contextos donde no es amigable tener este tipo de reuniones y por tu circunstancia personal no puedas cambiar de trabajo, mi sugerencia es aprovechar descansos o huecos de café, comidas, viajes a clientes o incluso, llevar a la persona de cañas o coca colas después del trabajo si fuese necesario.
No es una solución ideal ya que no favorece la desconexión, pero conseguir establecer este tipo de espacios y mecánicas de forma oficial puede requerir convencer de ello en determinados foros, siendo una batalla a largo plazo. Mientras se persiguen estos cambios culturales, necesitaremos tomar tradeoffs.&lt;/p&gt;
&lt;p&gt;Mediante tradeoffs o no, siempre buscando la privacidad con la persona, creando un entorno seguro favorable a dar o recibir feedback para ambas partes.
En estas reuniones debemos dejar prejuicios fuera de ese espacio, agudizar nuestra escucha activa y ser precisos a la hora de dar feedback y receptivos a la hora de recibirlo.&lt;/p&gt;
&lt;p&gt;Los objetivos y expectativas de estas reuniones los deben consensuar las dos personas que van a participar en las mismas.
Como en todas las reuniones y siempre que sea posible, lo ideal es poder dejar escritos los temas más importantes que se quieran tratar antes de la reunión, para que la otra persona recopilase información o esté en contexto antes de la misma.&lt;/p&gt;
&lt;p&gt;Disponer de herramientas como un Career Path cuidado pueden ayudar a que el feedback pueda ser conducido también al crecimiento dentro de la empresa.&lt;/p&gt;
&lt;h4 id="feedback-360"&gt;&lt;a href="https://en.wikipedia.org/wiki/360-degree_feedback"&gt;&lt;strong&gt;Feedback 360&lt;/strong&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Esta mecánica consiste en recopilar feedback por parte de personas que han interactuado con la persona a la que se va a dar feedback.
Es una mecánica valiosa, sobretodo para que dicha persona disponga de feedback por parte de personas de diferentes áreas y con diferentes perspectivas que han trabajado con ella directamente.&lt;/p&gt;
&lt;h4 id="performance-reviews"&gt;Performance reviews&lt;/h4&gt;
&lt;p&gt;Las &lt;em&gt;performance reviews&lt;/em&gt; son las reuniones en las que se hace una recopilación de cómo ha sido la evolución de una persona a la hora de alcanzar sus objetivos.&lt;/p&gt;
&lt;p&gt;Me pareció interesante mencionar esta mecánica porque esta reunión debe ser un resumen final de todo lo que se haya visto durante las 1-1 periódicas y otras mecánicas como los Feedback 360.&lt;/p&gt;
&lt;p&gt;En muchas ocasiones he visto que estas reuniones existen al final del año sin haber dedicado tiempo durante el año a hacer seguimiento de la persona y por lo tanto, sin haber dado feedback previo que pudiese ayudar a la persona a alcanzar sus objetivos.
Para mí, esta reunión no tiene sentido sin un trabajo constante durante todo el año, que considero imprescindible en el rol de manager.&lt;/p&gt;
&lt;p&gt;Os dejo aquí &lt;a href="https://hr.mit.edu/performance/reviews"&gt;un artículo del MIT con recursos muy útiles sobre estas reuniones&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;De nuevo, disponer de un buen Career Path en la empresa, puede aumentar la eficacia de estas reuniones.&lt;/p&gt;
&lt;h4 id="retrospectivas"&gt;Retrospectivas&lt;/h4&gt;
&lt;p&gt;Las retrospectivas son una buena herramienta para dar y recibir feedback ya no a nivel personal, sino como equipo.&lt;/p&gt;
&lt;p&gt;Hay muchas mecánicas para conducir retrospectivas pero lo principal es recoger feedback tanto de lo que se ha hecho bien como de lo que se ha de mejorar como equipo.
Es importante que se haga seguimiento de los action point que se establezcan en las retrospectivas para que estas no caigan en saco roto, lo cual puede desmotivar al equipo y conseguir que el feedback más valioso vaya desapareciendo.&lt;/p&gt;
&lt;h4 id="postmortems"&gt;Postmortems&lt;/h4&gt;
&lt;p&gt;Los postmortem son un tipo de retrospectiva que se centra en un problema o catástrofe que hemos tenido y de la que queremos aprender para que no vuelva a ocurrir.&lt;/p&gt;
&lt;p&gt;Lo importante de los postmortem es que deben buscar lecciones aprendidas y no culpables. Al involucrar diferentes áreas o incluso empresas, esta debe ser la base principal y puede ser un reto al involucrar diferentes culturas en las que esta premisa no siempre se cumpla.&lt;/p&gt;
&lt;h3 id="antipatrones"&gt;Antipatrones&lt;/h3&gt;
&lt;h4 id="feedback-sandwich"&gt;Feedback sandwich&lt;/h4&gt;
&lt;p&gt;Este anti patrón es bastante conocido por lo altamente utilizado que es por algunos managers. Básicamente consiste en sacar un tema que introduce la conversación hacia algo en el que creamos que la persona pueda estar confortable o directamente dar un feedback positivo para después llegar a nuestro objetivo, que es dar un feedback de mejora o correctivo.&lt;/p&gt;
&lt;p&gt;Hay algunos libros de gestión que aconsejan el uso de esta práctica pero yo lo considero un anti patrón. La razón es básicamente que las personas con la que trabajamos no son estúpidas y al no serlo, no les va a gustar que les trates como tal.&lt;/p&gt;
&lt;p&gt;Por mi personalidad, me gustan las cosas directas y a la cara cuanto antes mejor, por lo que este tipo de prácticas no las considero para nada acertadas.&lt;/p&gt;
&lt;h4 id="feedback-tardío"&gt;Feedback tardío&lt;/h4&gt;
&lt;p&gt;Esperar más de 48 horas para dar feedback es un error típico también. Hay mil razones que nos impidan dar feedback en este rango de tiempo, pero debemos tener presente que cuánto más tiempo pase, el feedback será más inefectivo o incluso contraproducente.&lt;/p&gt;
&lt;h4 id="feedback-sin-ejemplos-concretos"&gt;Feedback sin ejemplos concretos&lt;/h4&gt;
&lt;p&gt;Dar feedback sin ejemplos puede llegar a malinterpretarse o generar confusión a la persona. Si el feedback es basándonos en algo que se haya escrito, debemos mostrárselo a la persona para que nos dé más información o comprenda a qué nos referimos.&lt;/p&gt;
&lt;p&gt;Si ha sido un comportamiento de otro tipo, es crítico dar el feedback cuanto antes para que no se olviden detalles importantes del objeto del feedback.&lt;/p&gt;
&lt;h4 id="feedback-para-culpabilizar"&gt;Feedback para culpabilizar&lt;/h4&gt;
&lt;p&gt;El patrón más importante a evitar es el feedback que realidad busca culpables en lugar de exponer un hecho o comportamiento concreto mediante ejemplos objetivos con los que poder trabajar.&lt;/p&gt;
&lt;h3 id="conclusión"&gt;Conclusión&lt;/h3&gt;
&lt;p&gt;En este artículo hemos visto a qué nos referimos con dar feedback y qué mecánicas existen para que forme parte de nuestra cultura.&lt;/p&gt;
&lt;p&gt;El feedback es una herramienta muy importante para crecer tanto a nivel personal como a nivel profesional.&lt;/p&gt;</content:encoded></item><item><title>Culturas de ingeniería: madurez de nuestra cultura</title><link>https://blog.asiermarques.com/2019/culturas-ingenieria-3/</link><pubDate>Thu, 05 Dec 2019 19:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2019/culturas-ingenieria-3/</guid><content:encoded>&lt;p&gt;Esta es la tercera entrada de una serie de artículos sobre culturas de ingeniería.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://asiermarques.com/2019/culturas-ingenieria-1/"&gt;1. De qué hablamos cuando hablamos de cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-2/"&gt;2. Por dónde empezar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3. Madurez de nuestra cultura&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-4/"&gt;4. Cultura de feedback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-5/"&gt;5. Comunicación y documentación&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este artículo vamos a ver diferentes estados de madurez en los que puede estar una cultura de tecnología.&lt;/p&gt;
&lt;p&gt;Esta escala de tres niveles está inspirada en la que se plantea en el libro &lt;a href="https://www.manning.com/books/elastic-leadership"&gt;Elastic Leadership de Roy Osherove&lt;/a&gt;.&lt;br&gt;
Me he tomado la libertad de adaptarlos un poco en base a mi experiencia y he añadido, en cada uno de ellos, algunos puntos que me resultan importantes.&lt;/p&gt;
&lt;p&gt;Hay que tener en cuenta que, aunque hablaremos de tres niveles, en la vida real no sólo hay blancos o negros y es posible que una misma empresa tenga estos diferentes niveles repartidos entre diferentes áreas, oficinas o equipos.&lt;/p&gt;
&lt;h2 id="supervivencia"&gt;Supervivencia&lt;/h2&gt;
&lt;p&gt;El peor escenario posible es una cultura de supervivencia. Cuando trabajamos en una cultura de este tipo, la sensación de caos es muy alta y tanto el estrés como el sobre-esfuerzo se vuelven algo implícito dentro de nuestro día a día.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/fine.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;En este tipo de entornos la rotación de personal suele ser muy alta y la ausencia de documentación unida a la presión de fechas, hace que surjan ciertos perfiles que hagan el papel de héroes, los llamados desarrolladores 10x o &lt;a href="https://asiermarques.com/2018/el-perfil-paracetamol/"&gt;el perfil paracetamol del que ya escribí por aquí&lt;/a&gt;.&lt;br&gt;
El mentoring básicamente se basa en un &amp;ldquo;quita que ya lo hago yo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Suele ser habitual que los equipos tengan cambios constantes de foco. Los proyectos se retrasan pero no se frena la nueva entrada de trabajo. La presión se hace muy fuerte y la sensación que los equipos perciben es la de estar en un constante periodo en el que todas las entregas sufren retrasos.&lt;/p&gt;
&lt;p&gt;En los entornos en los que esto se hace más latente, los stakeholders realizan sus peticiones directamente a los desarrolladores. No se priorizan las peticiones e incluso se hacen invisibles a los project managers, lo que impacta directamente en los proyectos en curso.&lt;br&gt;
Los retrasos constantes generan subidas a producción sin la calidad mínima necesaria lo que obliga a hacer rollbacks que saturan a los equipos con soporte a problemas urgentes en producción. Muchos de estos equipos ya han empezado otros proyectos nuevos que deben pararse de forma no oficial para atender peticiones sin ningún tipo de control ni prioridad.&lt;/p&gt;
&lt;p&gt;La comunicación se hace complicada y nunca hay tiempo para documentar. La documentación se deja para el final de los proyectos que queda como un mero entregable y destinada a quedarse obsoleta al no contemplar correcciones después de la entrega o incluso cuando se desarrollan evolutivos.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/trabajo.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Al haber problemas de comunicación, se sobrecargan las agendas de los project manager con reuniones para clarificar dudas o malentendidos pero no se cuenta con los desarrolladores para &amp;ldquo;no quitarles tiempo&amp;rdquo;.&lt;br&gt;
Los problemas de comunicación se hacen más graves y los desarrolladores terminan por entrar a reuniones cuando ya es demasiado tarde y tienen poco margen para actuar.&lt;/p&gt;
&lt;p&gt;Todo este panorama unido al estrés al que todas las personas del equipo están sometidas, hace que los errores de una persona terminen por adquirir su Nombre y Apellidos.&lt;br&gt;
Si esta persona no soluciona el problema de forma urgente, se la apartará con toda seguridad para que el paracetamol o héroe de turno solucione la papeleta sin tener tiempo de explicar o documentar lo que ha hecho para arreglar el problema.&lt;br&gt;
Esto hará que la persona no tenga la oportunidad de aprender de sus errores y simplemente cargue con la culpa sin que nadie aprenda nada valioso en el proceso.&lt;/p&gt;
&lt;p&gt;En un contexto así, nadie quiere arriesgarse a cometer un error o liderar un cambio que le pueda &amp;ldquo;enmarronar&amp;rdquo; a él o a un compañero.&lt;/p&gt;
&lt;p&gt;En algunas empresas tienen muy interiorizada esta forma de trabajar y normalmente acabaremos cansados de escuchar la siguiente frase para rechazar cualquier tipo de cambio:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Es que en esta empresa trabajamos así ™&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/dontknow.gif" alt=""&gt;&lt;/p&gt;
&lt;h3 id="cómo-salir-de-esta-situación"&gt;Cómo salir de esta situación&lt;/h3&gt;
&lt;p&gt;Esta es sin duda la peor situación de partida. El esfuerzo de cambiar una cultura de este tipo puede llegar a ser titánico y probablemente no dependa únicamente de nosotros solos.&lt;br&gt;
Aquí hay un requisito importante: la dirección de la empresa debe estar alineada con el cambio y asumir ciertas inversiones que hacen falta para poder cambiar las cosas.&lt;/p&gt;
&lt;p&gt;Los siguientes puntos son temas por los que empezar a trabajar. No pretendo que esto sirva de lección ya que cada contexto es un mundo muy particular.&lt;br&gt;
Este estado es el peor en el que puedes trabajar como manager y cualquiera que haya pasado por este tipo de cambio debería contar con nuestro más profundo respeto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introducir control y métricas&lt;/strong&gt;&lt;br&gt;
Si existe un contexto en el que tenga sentido la micro-gestión, es este. La introducción de decisiones y control del estado/progreso es fundamental pero tenemos que tener claro que esto es una medida a corto plazo mientras introducimos procesos que nos vayan permitiendo delegar ese control.&lt;/p&gt;
&lt;p&gt;En estas situaciones suele ser increible la cantidad de cosas que no funcionan bien sólo porque nadie se atreve a tomar una decisión, por muy obvio que sea el camino.&lt;/p&gt;
&lt;p&gt;Además de control, es clave introducir métricas. Si no tenemos métricas no sabremos realmente si los cambios que hacemos tienen un impacto positivo o negativo y guiaremos nuestras decisiones mediante meras sensaciones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priorizar&lt;/strong&gt;&lt;br&gt;
Tenemos que renunciar a ejecutar cosas de forma inmediata y sin criterio, a aprender a jugar bien con el tiempo. Si todo es urgente nada lo es.&lt;br&gt;
Debemos empezar a documentar por escrito las prioridades y hacerlas visibles a todo el equipo. Es crítico gestionar la entrada de trabajo para limitar el work in progress de los equipos. Es la mejor medida para poder entregar trabajo con cierto orden.&lt;/p&gt;
&lt;p&gt;Esto no depende de metodología, tanto waterfall como Kanban pueden funcionar si hay orden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conseguir tiempo para los equipos&lt;/strong&gt;&lt;br&gt;
En estos contextos, lo más importante que creo que debemos hacer es conseguir tiempo.&lt;br&gt;
Debemos detectar qué es lo que más roba tiempo a los equipos y reducirlo en la medida de lo posible.
Seguramente nos demos cuenta de que lo que más roba tiempo a los equipos son las reuniones innecesarias y las consultas por cosas que no están documentadas.&lt;/p&gt;
&lt;p&gt;Al introducir micro-gestión, los project manager necesitarán en todo momento conocer el estado de las tareas y de los proyectos. Podemos ganar tiempo si utilizamos correctamente nuestro gestor de tareas con un board de Kanban, en el que se puede ver y medir el trabajo en progreso.&lt;br&gt;
Por lo tanto, si hacemos daily meetings, estas pueden reducirse considerablemente si en lugar de comentar en lo que estamos trabajando, comentamos qué bloqueos tenemos (si hay alguno) y qué vamos a hacer en los próximos días, para que el resto de los integrantes de un equipo puedan detectar necesidades o cosas que les impacten.&lt;br&gt;
Incluso podríamos ahorrarnos esta daily, si cada miembro del equipo sube su resumen a un gestor de documentación. Los interesados podrán recibir una notificación cuando se añada ese resumen escrito.&lt;br&gt;
De esta forma nos ahorramos una reunión y ganamos en visibilidad que puede consultarse en asíncrono no sólo por los integrantes de un equipo, sino por otras personas de la empresa.&lt;/p&gt;
&lt;p&gt;Al igual que en este ejemplo, podemos poner normas estrictas del tipo &amp;ldquo;si no hay agenda en una reunión, con todos los topics que se van a hablar y un pequeño resumen de los mismos&amp;rdquo; de antemano, la reunión se cancela.&lt;/p&gt;
&lt;p&gt;Si conseguimos reducir una daily que se suele ir a 30 minutos a tan sólo 12 minutos, hemos ganado una hora y media a la semana para cada uno de los involucrados en esa reunión.&lt;br&gt;
Este tiempo lo pueden dedicar a aprender, dar charlas sobre tecnologías que se usen en la empresa, a que un compañero les explique cómo configura un entorno de desarrollo que a la vez puede hacerle ganar tiempo, a automatizar cosas que se hacen de forma manual, etc.&lt;br&gt;
Cuanto más tiempo ganemos y lo invirtamos en que los equipos se formen y automaticen procesos, más tiempo se ganará a medio y largo plazo.&lt;/p&gt;
&lt;p&gt;Debemos velar por que ese tiempo se dedique a aprendizaje y no a asumir más tareas de clientes o relacionadas con milestones de proyectos. Esto es de vital importancia. Por ello, esta estrategia debe ir acompañada de una buena priorización, mencionada en el punto anterior.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evitar los silos de conocimiento&lt;/strong&gt;&lt;br&gt;
En este escenario, los silos de conocimiento son muy habituales y nos impactan mucho. Cuando personas que han adquirido el conocimiento a través de trabajar en ciertos proyectos o resolviendo problemas relacionados con deuda técnica sin documentar se van de la empresa, tenemos un problema.&lt;/p&gt;
&lt;p&gt;En este contexto, lo ideal es detectar quiénes son los que tienen el conocimiento y establecer dinámicas para que distribuyan su conocimiento al resto de equipos.&lt;br&gt;
Una técnica importante y que podemos establecer de forma inmediata es introducir Pair-Programming en los proyectos.&lt;/p&gt;
&lt;p&gt;Otra cosa que deberíamos hacer es introducir documentación activa, es decir, documentación que se mantenga actualizada de forma automática. Escribí sobre &lt;a href="https://asiermarques.com/2019/documentacion-activa/"&gt;documentación activa en este artículo&lt;/a&gt;.&lt;br&gt;
En este estado crear mucha documentación de forma manual sin disponer de tiempo para mantenerla actualizada, además de ser muy costoso, es sin duda contraproducente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elegir las batallas&lt;/strong&gt;&lt;br&gt;
Si tienes el rol de actor de cambio en un contexto similar a este, debes armarte de paciencia y elegir las batallas una a una, asumiendo que cada paso va a ser como caminar en un río con una corriente colosal que va a estar continuamente desafiando tus decisiones.&lt;/p&gt;
&lt;h2 id="aprendizaje"&gt;Aprendizaje&lt;/h2&gt;
&lt;p&gt;En esta etapa los equipos empiezan a disponer de buenos mecanismos de organización y priorización del trabajo. Se ha conseguido tiempo para que los equipos puedan aprender y compartir de conocimiento.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/leaning.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Se puede decir que se está en un estado en el que los equipos dejan de preocuparse por sobrevivir; están centrados en mejorar y crecer de forma eficiente.&lt;/p&gt;
&lt;p&gt;Es importante tener en cuenta que es muy difícil llegar a este estado pero es muy fácil volver a un estado de supervivencia.&lt;br&gt;
Junto a la &lt;strong&gt;contratación de los perfiles correctos y alineados con este estado de madurez&lt;/strong&gt;, los siguientes puntos son críticos para fortalecer los pilares que se han construido.&lt;/p&gt;
&lt;h3 id="empezar-a-delegar-la-organización-en-el-equipo-y-soltar-control"&gt;Empezar a delegar la organización en el equipo y soltar control&lt;/h3&gt;
&lt;p&gt;Poco a poco los manager empiezan a delegar la toma de ciertas decisiones en el equipo. Si se viene de un estado de supervivencia, los miembros de los equipos estarán esperando que les digas exactamente qué deben hacer, cómo y en qué orden.&lt;/p&gt;
&lt;p&gt;Aunque probablemente siga siendo necesario un rol que priorice el trabajo, los equipos empiezan a tomar la responsabilidad de organizarse. Dependiendo de los perfiles con los que cuentan los equipos, este cambio no va a ser de la noche a la mañana y es responsabilidad del manager guiar y hacer un seguimiento pero sin estar tan encima con en una cultura de supervivencia.&lt;/p&gt;
&lt;p&gt;El objetivo es reducir la dependencia para que los equipos vayan auto-organizándose por sí mismos.&lt;/p&gt;
&lt;h3 id="cultura-blameless-y-error-friendly"&gt;Cultura blameless y error-friendly&lt;/h3&gt;
&lt;p&gt;En este punto los equipos empiezan a asumir riesgos controlados y no se centran en echar la culpa al responsable cuando dicha persona ha cometido un error.&lt;/p&gt;
&lt;p&gt;Cuando nos centramos en culpar, simplificamos en exceso y esto nos impide ver el origen real de un problema o un error lo que terminará por hacer que, con toda seguridad, se vuelva a repetir.&lt;/p&gt;
&lt;p&gt;Es un momento de probar cosas nuevas y se cometerán errores. Cuando estos se producen, se afrontan, se aprende de ellos y se introducen nuevos mecanismos o mejoras en los existentes para evitar que se produzcan de nuevo.&lt;/p&gt;
&lt;p&gt;Técnicas como postmortems, retrospectivas y otras formas de analizar el origen real de los errores, son fundamentales y no serán del todo efectivos si no son blameless.&lt;/p&gt;
&lt;h3 id="lenguaje-de-commitment"&gt;Lenguaje de commitment&lt;/h3&gt;
&lt;p&gt;Los equipos y no sólo los manager hablan con un lenguaje de compromiso, es decir, en lugar de comunicar un mensaje como &amp;ldquo;necesitaríamos hacer esto antes del año que viene&amp;rdquo; el mensaje suena más a un plan &amp;ldquo;nuestro objetivo es tener esto para principios de Diciembre&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pero no se llega al otro extremo tampoco. Por ejemplo, en lugar de decir que algo se subirá a producción el 6 de Diciembre a las 12:00, se dirá que se subirá a principios de Diciembre.&lt;/p&gt;
&lt;p&gt;En lugar de deadlines se habla de milestones y de retos.&lt;/p&gt;
&lt;p&gt;Siempre hay excepciones en las que se requiera un nivel alto de precisión, pero deberíamos cuestionarnos si la necesidad de esta no está fundada por otro tipo de problemas más profundos a nivel de comunicación y de organización.&lt;/p&gt;
&lt;p&gt;El objetivo es que el equipo piense en adquirir compromisos por ellos mismos, sin miedo a errar en la precisión ni en comunicar una fecha que puede no gustar a stakeholders que no tengan en cuenta la dificultad o recursos a la hora de haber creado una estimación o expectativa errónea.&lt;/p&gt;
&lt;h3 id="los-equipos-disponen-de-capacidad-para-solucionar-sus-problemas"&gt;Los equipos disponen de capacidad para solucionar sus problemas&lt;/h3&gt;
&lt;p&gt;En este estado los manager facilitan las herramientas para que los equipos empiecen a encontrar soluciones a los problemas por sí mismos.&lt;/p&gt;
&lt;p&gt;Esta fase es un reto para aquellos manager que han estado en modo supervivencia muchos años y al igual que otros miembros del equipos, seguramente requieran de cierto mentoring para adaptarse.&lt;/p&gt;
&lt;p&gt;Idealmente, cuando los equipos aprender a auto-organizarse, es interesante dar la capacidad de establecer retos en los 1:1 que puedan cumplirse en un tiempo dedicado a ello, fuera de los objetivos del día a día, para que las personas refuercen esas capacidades en un espacio seguro en el que el fallo no impacte en otros.&lt;/p&gt;
&lt;p&gt;Este tipo de iniciativas son importantes para llegar al estado óptimo en una cultura, que es una auto-organización real de los equipos.&lt;/p&gt;
&lt;h2 id="auto-organización"&gt;Auto-organización&lt;/h2&gt;
&lt;p&gt;En este estado los equipos son capaces de auto-organizarse, no tienen problemas para adquirir compromisos ni para ponerse retos, detectan los problemas que existen en su día a día y toman decisiones en equipo, sin requerir instrucciones externas ni una monitorización de estado continua por parte de una persona externa.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/defenders.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Los miembros del equipo diseñan sus propias métricas y el compromiso es tanto exigido como compartido por todos ellos.&lt;/p&gt;
&lt;p&gt;El estado de los proyectos es visible de forma centralizada y todo el mundo tiene el contexto y sabe lo que está haciendo el otro.&lt;/p&gt;
&lt;p&gt;También se conoce lo que va a llegar con suficiente antelación para haber madurado soluciones y detectado problemas antes de empezar.&lt;/p&gt;
&lt;p&gt;El trabajo de los managers se centra en aportar herramientas para que los equipos cada vez sean más independientes, haya procesos claros en los que el trabajo se reparta óptimamente, las personas crezcan en la empresa y dispongan de todo lo necesario para entregar trabajo de la forma más eficiente y saludable.&lt;/p&gt;
&lt;p&gt;Sigue habiendo retos y problemas a solucionar —nunca se llega a la perfección— pero la mejora continua es el pilar central en este estado.&lt;/p&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;En este artículo hemos visto tres niveles de madurez en los que puede encontrarse una cultura. Como hemos comentado al principio, hay muchos grises y una misma empresa puede llegar a tener equipos o areas en diferentes estados de madurez.&lt;/p&gt;
&lt;p&gt;Lo interesante es saber reconocerlos y poner los medios para ir creciendo todos juntos como equipo en cada contexto.&lt;/p&gt;</content:encoded></item><item><title>Culturas de ingeniería: por dónde empezar</title><link>https://blog.asiermarques.com/2019/culturas-ingenieria-2/</link><pubDate>Sun, 03 Nov 2019 22:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2019/culturas-ingenieria-2/</guid><content:encoded>&lt;p&gt;Esta es la segunda entrada de una serie de artículos sobre culturas de ingeniería.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://asiermarques.com/2019/culturas-ingenieria-1/"&gt;1. De qué hablamos cuando hablamos de cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2. Por dónde empezar&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-3/"&gt;3. Madurez de nuestra cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-4/"&gt;4. Cultura de feedback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-5/"&gt;5. Comunicación y documentación&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://unsplash.com/photos/VkwRmha1_tI"&gt;&lt;img src="https://blog.asiermarques.com/media/tim-arterbury-VkwRmha1_tI-unsplash-af469470-1403-4af8-b3e3-44de5e7d2c8e.jpg" alt="Culture"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="valores"&gt;Valores&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When your values are clear to you, making decisions becomes easier.&amp;rdquo;&lt;br&gt;
— Roy E. Disney&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He de reconocer que a lo largo de mi carrera, he sido bastante escéptico con la utilidad los valores y visión de la empresa.&lt;br&gt;
Me dejé llevar por los prejuicios alimentados por experiencias en determinados contextos, en los que los valores quedaban estáticos en una pared a modo de buenas intenciones o deseos, muy alejados de la realidad del día a día de los equipos.&lt;/p&gt;
&lt;p&gt;Con el tiempo, aprendiendo en otros contextos de trabajo distintos e intercambiando experiencias con otros colegas de profesión, me he convencido de que los valores son una herramienta clave para afianzar una buena cultura.&lt;/p&gt;
&lt;p&gt;Los valores deben estar documentados y deben ser actualizados cada cierto tiempo en base a la realidad de los equipos. Con valores alineados con esa realidad, podemos empezar a construir procesos, políticas y otras herramientas que hacen más fácil mantener nuestra cultura.&lt;/p&gt;
&lt;p&gt;Si no se ha hecho antes, documentar los valores comunes interiorizados por todos los equipos es una práctica muy sana para descubrir aquello que todos esperan del resto y hace que no sea tan importante que estén escritos en una pared para que todo el mundo los siga y demande seguirlos en cada decisión o proceso.&lt;/p&gt;
&lt;p&gt;Con los valores ya definidos, podemos empezar a construir nuestra cultura desde el principio: la contratación de las personas adecuadas.&lt;/p&gt;
&lt;h2 id="contratar"&gt;Contratar&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“Shaping your culture is more than half done when you hire your team.”&lt;br&gt;
— Jessica Herrin, Stella &amp;amp; Dot founder&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La base de todas cultura de empresa empieza por contratar a las personas correctas.&lt;/p&gt;
&lt;p&gt;El cultural fit es un factor crítico para determinar si es buena idea que la empresa y el candidato empiecen juntos una relación profesional.&lt;/p&gt;
&lt;p&gt;Es importante conocer qué expectativas tiene el candidato, a qué tipo de culturas está acostumbrado y si aceptaría un posible cambio. Evaluar el choque cultural en el caso de que un candidato proceda de otras culturas es algo clave cuando estás contratando.&lt;br&gt;
Hace unas semanas escribí sobre &lt;a href="https://asiermarques.com/2019/que-preguntar-entrevista/"&gt;qué preguntas me gustaría que me hiciese un candidato&lt;/a&gt;, precisamente por este motivo.&lt;/p&gt;
&lt;p&gt;En nuestro sector, los buenos profesionales pueden elegir dónde quieren trabajar entre muchas opciones. El salario es un factor, pero no es el único.&lt;br&gt;
Podemos encontrar fácilmente análisis que nos muestran cómo una buena cultura es decisiva tanto para conseguir captar talento como para retenerlo. Teniendo en cuenta esto, necesitamos cuidar algunas cosas de nuestro proceso.&lt;/p&gt;
&lt;p&gt;Es importante que en las ofertas que publiquemos, se perciban nuestra cultura y valores, además de las expectativas que tenemos al buscar a esa persona para nuestro equipo.&lt;/p&gt;
&lt;h3 id="la-ux-del-proceso-de-selección"&gt;La UX del proceso de selección&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;“We thought about our culture truly as a product”&lt;br&gt;
— Katie Burke, chief people officer at HubSpot.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Algunas empresas tratan su cultura como un producto en sí mismo, podemos ver ejemplos en &lt;a href="https://business.linkedin.com/talent-solutions/blog/company-culture/2019/why-hubspot-treats-culture-as-product-to-attract-candidates"&gt;Hubspot&lt;/a&gt; y en &lt;a href="https://www.youtube.com/watch?v=o1LeIf2BteU"&gt;Asana&lt;/a&gt;. Si seguimos el ejemplo, el proceso de contratación debe ser medible, iterable, guiado por feedback y con una UX cuidada al máximo.&lt;br&gt;
Hay que tener en cuenta que en nuestro un mercado, el coste de oportunidad a la hora de contratar talento es tremendamente alto.&lt;/p&gt;
&lt;p&gt;Idealmente, la persona que pase por nuestro proceso de selección debería percibir cómo sería el día a día en base a las pruebas y preguntas que le hagamos y percibir en todo momento si tiene un cultural fit adecuado y los skills que estamos buscando.&lt;/p&gt;
&lt;p&gt;Las entrevistas son una oportunidad para aprender mucho de uno mismo, el mejor feedback que un candidato puede darnos es que su tiempo ha sido productivo y ha aprendido durante el camino.&lt;/p&gt;
&lt;h3 id="el-proceso-de-selección-como-publicidad-de-la-cultura-de-tu-empresa"&gt;El proceso de selección como publicidad de la cultura de tu empresa&lt;/h3&gt;
&lt;p&gt;Todo contacto con un candidato es una oportunidad para dar a conocer nuestra cultura. Por ello, en los procesos de selección hay que tener especial cuidado de la imagen que estamos dando.&lt;/p&gt;
&lt;p&gt;Ten por seguro que si a una persona le ha gustado tu proceso va a contarlo a su gente de confianza y esa gente puede que forme parte del talento que estás buscando. Si la impresión es negativa, la voz se va a correr como la pólvora.&lt;/p&gt;
&lt;h3 id="cuidar-el-feedback"&gt;Cuidar el feedback&lt;/h3&gt;
&lt;p&gt;Si un candidato pide feedback, en mi opinión debemos dárselo lo mejor que podamos. Esta persona ha invertido su tiempo y si recordamos el punto anterior, ganamos más dándoselo que omitiéndolo.&lt;/p&gt;
&lt;p&gt;Como candidato, si te dan feedback, recíbelo con generosidad. No hay nada peor para un entrevistador que confirmar su decisión de no seleccionar a una persona, cuando esta le demuestra que no encaja bien la crítica.&lt;/p&gt;
&lt;h3 id="evitar-héroes-x10"&gt;Evitar héroes x10&lt;/h3&gt;
&lt;p&gt;La época de los rock star del software ya ha pasado, o al menos en culturas de empresas que quieran ser escalables y no tener un ambiente tóxico.&lt;br&gt;
Se ha escrito mucho sobre perfiles que trabajan mejor solos y que son capaces de arreglar lo que el resto de los equipos no pueden y subir código a producción mucho más rápido que el resto.&lt;br&gt;
La realidad es que estos perfiles generan silos de conocimiento, dependencia y son los únicos que se atreven a lidiar con la deuda técnica que a menudo ellos mismos generan.&lt;/p&gt;
&lt;p&gt;Si pensamos a largo plazo y sobretodo en una cultura de trabajo en equipo, los soft skills, en especial la comunicación, aceptación de la crítica, capacidad de aprendizaje, son más valiosos en las personas que se incorporen. Si nos fijamos en estas cosas, llegaremos más lejos que con perfiles 10x.&lt;/p&gt;
&lt;h2 id="el-on-boarding"&gt;El On-Boarding&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/onboarding-e170a82a-29cb-4a12-b3f9-c071d46b7135.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Tras cerrar el proceso de contratación, comienza el proceso de onboarding.&lt;/p&gt;
&lt;p&gt;El onboarding es una pieza clave de la cultura de una empresa ya que es el momento en el que la persona que entre va a evaluar si ha tomado una buena decisión o no a la hora de decantarse por nuestra empresa y también es un momento en el que debe aprenderlo todo sobre nuestra forma de trabajar.&lt;/p&gt;
&lt;p&gt;Al formar parte de la cultura, debe estar documentado por varios motivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No recaiga siempre en la misma persona y cualquier persona del equip,o independientemente de su rol, pueda saber gestionarlo y mejorarlo&lt;/li&gt;
&lt;li&gt;Todos los procesos de onboarding se hagan de la misma forma&lt;/li&gt;
&lt;li&gt;Que el primer día la persona tenga todo listo para empezar a trabajar&lt;/li&gt;
&lt;li&gt;Se puedan anticipar necesidades y la reserva de huecos en el calendario de los involucrados&lt;/li&gt;
&lt;li&gt;Dar mayor seguridad a la persona que se incorpora&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En un buen onboarding toda persona que entre debería tener todo lo necesario para poder hacer su trabajo el primer día, conocer los valores de la empresa, saber qué se espera de ella en su primer mes y tener espacio de tiempo para conocer los procesos de la empresa, otros departamentos y aprender las dinámicas del día a día.&lt;/p&gt;
&lt;h3 id="cómo-documentar-nuestro-on-boarding"&gt;Cómo documentar nuestro On Boarding&lt;/h3&gt;
&lt;p&gt;Independientemente de qué herramienta utilicemos para documentarlo, el onboarding debe tener en cuenta lo que se necesita hacer antes de que la persona entre y lo que esta va a hacer desde el primer día hasta que el on-boarding haya finalizado.
Idealmente, cualquiera del equipo debería poder acceder y actualizar esa documentación, de tal forma que cualquiera del equipo, podría asumir el preparar el on-boarding y tener claro todo lo que se necesita dejar listo antes del día en el que esa persona se incorpore.&lt;/p&gt;
&lt;p&gt;El primer día en una empresa nueva siempre es un día especial pero también es un día en el que estás muy perdido con todo, tienes la sensación de no ser capaz de recordar ninguno de los nombres de tus compañeros y en muchos casos, el síndrome del impostor te puede hacer pasar una mala jugada.
Cuanto mejor cuidemos la parte del onboarding de una persona, mejor será su experiencia y antes se integrará en el día a día.&lt;/p&gt;
&lt;p&gt;Por otro lado, debemos pensar que durante sus primeros días, la persona va a saber si su elección ha sido buena o mala. En este sentido, no hay nada peor para una persona nueva que estar esperando días a tener su equipo de trabajo, que la metan en un proyecto directamente sin tener contexto ni interiorizados los procesos de trabajo, que no le presenten a nadie de otros departamentos ni le expliquen lo que estos hacen, que nadie le diga qué esperan de ella o de su rol en la empresa&amp;hellip;&lt;/p&gt;
&lt;p&gt;Lo ideal es que la persona tenga un sitio en el que poder consultar sus primeros pasos a modo checklist, un listado de los recursos más importantes a consultar en cuanto a nuestra cultura y vaya conociendo el funcionamiento no sólo de su departamento, sino el del resto de la empresa.
Todo ello debe suceder en un espacio de tiempo seguro en el que el resto de equipos de la organización sepan que esa persona está en su tiempo de onboarding y no esperen que sea productivo hasta que este tiempo finalice.&lt;/p&gt;
&lt;h3 id="buddies"&gt;Buddies&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://hbr.org/2019/06/every-new-employee-needs-an-onboarding-buddy"&gt;El buddy&lt;/a&gt; es un rol ya conocido en diferentes culturas que cuidan de su onboarding y tiene como objetivo acompañar a las personas que llegan en sus primeros días o en lo que dure el onboarding.&lt;/p&gt;
&lt;p&gt;El objetivo de los buddies es el de dar contexto y ayudar en todo lo que la nueva persona necesite, pero hay que tener en cuenta su carga de trabajo antes de asignarles este rol. Si no se tiene en cuenta esto, habra un impacto directo en el equipo en el que el buddy forme parte y la experiencia del onboarding para la persona que entre no será la misma.&lt;/p&gt;
&lt;h2 id="el-off-boarding"&gt;El Off-Boarding&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/offboarding-b05f6363-a750-46f7-b3af-edbdc2349f28.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Tarde o temprano, llega el momento en el que alguien del equipo decide dejar la empresa y buscar nuevos retos.
Al igual que hemos hecho con el onboarding, debemos cuidar cómo decir adiós a ese profesional que ha aportado a la empresa y gestionar todo lo relativo a su baja digital en la misma.&lt;/p&gt;
&lt;p&gt;En el offboarding, es importante cuidar todo lo que consideremos importante en los últimos días de esa persona: recoger feedback, asegurar el traspaso de conocimiento, informar a clientes y proveedores, organizar una despedida en condiciones&amp;hellip; todo depende de cómo nos gustaría que esa persona recuerde el cierre de su etapa trabajando con nosotros.&lt;/p&gt;
&lt;p&gt;Por último, una vez que esa persona se haya ido, es importante dar de baja los accesos pertinentes y gestionar los recursos a los que dicha persona tiene acceso.&lt;/p&gt;
&lt;p&gt;Al igual que hemos documentado el onboarding, es necesario documentar también este proceso para que cualquiera en la empresa sepa cómo gestionarlo y siempre se haga de la misma forma, sin que nos dejemos ningún paso importante.&lt;/p&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;El primer paso a la hora de construir una cultura pasa por conocer cuáles son los valores de todo el equipo y contratar a las personas adecuadas.&lt;/p&gt;
&lt;p&gt;Para ello, debemos comunicar muy bien qué buscamos en esas personas y destacar aspectos importantes de nuestra cultura.&lt;/p&gt;
&lt;p&gt;Una vez que alguien ha tomado la decisión de unirse, debemos cuidar la experiencia de sus primeros días para que se pueda adaptar y sepa qué es lo que esperamos de ella.&lt;/p&gt;
&lt;p&gt;Por último, no debemos descuidar cómo es la experiencia cuando una persona decide irse de la empresa.&lt;/p&gt;
&lt;h2 id="referencias-y-recursos-relacionados"&gt;Referencias y recursos relacionados&lt;/h2&gt;
&lt;p&gt;Lo que he comentado en este artículo está inspirado en mi experiencia de los últimos años y en especial en lo que aplicamos en &lt;a href="https://packlink.es"&gt;Packlink&lt;/a&gt; (&lt;a href="http://jobs.packlink.com/"&gt;estamos contratando&lt;/a&gt; por cierto).&lt;br&gt;
Existen muchos más recursos que hablan sobre este tema, aquí he recopilado unos cuantos. Iré actualizando esta lista a medida que vaya encontrando más:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xala3pa.github.io/blog/onboarding/"&gt;Alvaro Salazar habla del proceso de onBoarding en Lookiero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hbr.org/2019/06/every-new-employee-needs-an-onboarding-buddy"&gt;Un post sobre la importancia de los buddies en el proceso de onboarding de Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.softwareadvice.com/resources/employee-offboarding-checklist/"&gt;Un buen artículo sobre Offboardings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.inc.com/ilya-pozin/build-your-company-culture-through-values-not-things.html"&gt;Artículo en Inc: Build Your Company Culture Through Values, Not Things&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Culturas de ingeniería: de qué hablamos cuando hablamos de cultura</title><link>https://blog.asiermarques.com/2019/culturas-ingenieria-1/</link><pubDate>Tue, 22 Oct 2019 22:07:01 +0000</pubDate><guid>https://blog.asiermarques.com/2019/culturas-ingenieria-1/</guid><content:encoded>&lt;p&gt;Esta es la primera entrada de una serie de artículos sobre culturas de ingeniería.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1. De qué hablamos cuando hablamos de cultura&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-2/"&gt;2. Por dónde empezar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2019/culturas-ingenieria-3/"&gt;3. Madurez de nuestra cultura&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-4/"&gt;4. Cultura de feedback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.asiermarques.com/2020/culturas-ingenieria-5/"&gt;5. Comunicación y documentación&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://unsplash.com/photos/gfVofr15ICc"&gt;&lt;img src="https://blog.asiermarques.com/media/vitaliy-lyubezhanin-gfVofr15ICc-unsplash.jpg" alt="Culture"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En Julio de 2018, &lt;a href="https://blog.linkedin.com/2018/june/26/workplace-culture-trends-the-key-to-hiring-and-keeping-top-talent"&gt;Linkedin publicó este artículo en su blog&lt;/a&gt; en el que se mostraban datos interesantes que exponían cómo una buena cultura ayuda a un candidato a decidirse por entrar en una empresa, sobre otros factores como la cantidad económica o un cargo/título que supuestamente le posicione mejor en el mercado.&lt;br&gt;
Por si esto no fuese suficiente, también se mostraban qué factores de una buena cultura impactaban directamente en la retención del talento.&lt;/p&gt;
&lt;p&gt;En varias ocasiones, he visto debatir sobre el término cultura como algo que sólo pueden alcanzar ciertas empresas, refiriéndose exclusivamente a lo que idealmente sería una buena cultura de empresa, siempre bajo el criterio subjetivo de los interlocutores.&lt;br&gt;
Sin embargo, &lt;strong&gt;todas las empresas tienen su propia cultura&lt;/strong&gt;. Quizás podamos considerar que en una empresa no se tenga una &amp;ldquo;buena&amp;rdquo; cultura o una cultura &amp;ldquo;madura&amp;rdquo; o podamos definirla como una cultura &amp;ldquo;tóxica&amp;rdquo; pero indudablemente, se tiene una sobre la cual se puede trabajar.&lt;/p&gt;
&lt;p&gt;Hay multitud de frases que pueden definir a qué llamamos cultura, pero mi favorita es sin esta de Courtney Chapman, actual Administrative Business Partner de Google:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Company Culture is the product of a company’s values, expectations and environment.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En 2006, &lt;a href="https://en.wikipedia.org/wiki/Mark_Fields_(businessman)"&gt;Mark Fields&lt;/a&gt; -presidente de Ford por entonces- atribuyó la frase &lt;strong&gt;“culture eats strategy for breakfast”&lt;/strong&gt; a Peter Drucker.&lt;br&gt;
&lt;a href="https://quoteinvestigator.com/2017/05/23/culture-eats/"&gt;Aunque no está probado que fuese realmente de Drucker&lt;/a&gt;, esta frase ha ganado mucho protagonismo en los últimos años y viene a decir que además de una buena estrategia, es importante crear culturas en las que los equipos tomen la responsabilidad por ellos mismos de alcanzar los objetivos de negocio ya que son los que más cercanos están a la realidad del día a día.&lt;/p&gt;
&lt;h2 id="algunos-términos-y-buzzwords"&gt;Algunos términos y buzzwords&lt;/h2&gt;
&lt;p&gt;En la actualidad, existen una serie de buzzwords que a menudo se asocian con una buena cultura, o al menos, con una cultura alineada con las preocupaciones y formas de trabajar que buscan actualmente los ingenieros de software y de sistemas.&lt;/p&gt;
&lt;h3 id="agile"&gt;Agile&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Build projects around motivated individuals.&lt;br&gt;
Give them the environment and support they need, and trust them to get the job done.&amp;rdquo;&lt;br&gt;
&lt;a href="https://agilemanifesto.org/principles.html"&gt;Manifesto for Agile Software Development&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Agile es algo que está en la mente de todos en nuestro sector desde hace años. Aunque normalmente el término se asocia a metodologías concretas, &lt;strong&gt;ser una empresa agile es una cultura en sí mismo&lt;/strong&gt;.&lt;br&gt;
Esta frase implica muchas cosas pero lo principal es llegar a diseñar mecánicas que nos permitan mejorar de forma continua.&lt;/p&gt;
&lt;p&gt;Aunque normalmente se da el protagonismo a las metodologías agile y a sus dinámicas, estas no son más que propuestas de formas de trabajo. Ninguna metodología agile va a ser eficaz si nuestra cultura no está alineada con &lt;a href="https://agilemanifesto.org/principles.html"&gt;los principios del Manifiesto Agile&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="cultura-agile-de-spotify"&gt;Cultura agile de Spotify&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Yvfz4HGtoPc"&gt;Spotify publicó una serie de videos&lt;/a&gt; sobre su cultura en el 2014 que se hicieron virales en la comunidad de desarrollo.&lt;br&gt;
Estos vídeos consiguieron que términos que se utilizaban internamente en la compañía, se adoptasen en los departamentos de ingeniería de otras empresas como términos casi de facto a la hora de organizar equipos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Squads&lt;/strong&gt;&lt;br&gt;
Los squads son equipos independientes, autosuficientes y auto-organizados que son capaces de entregar valor a producción por ellos mismos.&lt;br&gt;
Cada squad decide cómo trabaja y qué metodología aplica.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chapters&lt;/strong&gt;&lt;br&gt;
Los chapters son áreas de especialidad: frontend, backend, QA, infraestructura&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tribes&lt;/strong&gt;&lt;br&gt;
Las tribus son agrupaciones de squads por contexto de negocio. Dentro de una tribu, los miembros del equipo pueden cambiar de squad sin necesidad de cambiar de manager.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guilds/Gremios&lt;/strong&gt;&lt;br&gt;
Los gremios son grupos abiertos de estudio e investigación, cross squads y cross tribus. De esta forma, independientemente de en qué squad estén, las personas en la empresa disponen del tiempo y de la posibilidad de investigar sobre temas que les interesen y que estén alineados con los objetivos de la empresa. Esto fomenta la innovación, el trabajar con otras personas fuera de tu equipo y la posibilidad de aprender aportando valor.&lt;/p&gt;
&lt;p&gt;Lo importante del ejemplo de Spotify no son estos términos y forma de distribuir los equipos, sino la iniciativa que tomaron para ir más allá de metodologías a la hora de forjar su cultura.&lt;/p&gt;
&lt;h3 id="holocracia"&gt;Holocracia&lt;/h3&gt;
&lt;p&gt;La holocracia u holacracia, se hizo famosa gracias a empresas como Netflix, Medium o Zappos. Basándose en conceptos de &lt;a href="https://en.wikipedia.org/wiki/Sociocracy"&gt;sociocracia&lt;/a&gt;, se busca que los equipos sean auto-organizados en lugar de buscar un modelo jerárquico tradicional.&lt;/p&gt;
&lt;p&gt;A menudo se confunde la holocracia con un modelo &amp;ldquo;ausente de jefes&amp;rdquo;, sin embargo, los líderes si que existen pero sus equipos no son tan dependientes de ellos como lo serían en una estructura jerárquica clásica.&lt;/p&gt;
&lt;p&gt;En la holocracia se busca que las personas asuman roles en lugar de tener &amp;ldquo;cargos&amp;rdquo; o &amp;ldquo;títulos&amp;rdquo; concretos.&lt;br&gt;
Cada persona puede asumir diferentes roles dependiendo del contexto o de los objetivos de la empresa en cada momento. Para poder hacerlo, los roles deben estar muy bien definidos y se deben conocer muy bien las aptitudes de cada persona en el equipo.&lt;/p&gt;
&lt;p&gt;Podemos encontrar un ejemplo de holocracia en Zappos, que incluso ha creado &lt;a href="https://www.zapposinsights.com/"&gt;una plataforma dedicada a ofrecer servicios de formación&lt;/a&gt; a otras empresas que deseen llegar con con éxito a una cultura de Holocracia.&lt;/p&gt;
&lt;h3 id="culturas-de-trabajo-en-remoto"&gt;Culturas de trabajo en remoto&lt;/h3&gt;
&lt;p&gt;Una cultura preparada para ofrecer full remote ofrece muchas ventajas y flexibilidad tanto a la empresa como a sus trabajadores. También elimina barreras -que son cada vez más altas- a la hora de contratar y retener talento.&lt;/p&gt;
&lt;p&gt;Llegar a una cultura en remoto no es fácil ya que supone muchos retos a la hora de gestionar equipos distribuídos, especialmente si estos se encuentran en zonas horarias distintas, además de tener muy interiorizados procesos de entrega continua, documentación y comunicación.&lt;/p&gt;
&lt;p&gt;Sin embargo, llegar a una cultura de este tipo, mejorará nuestros procesos, facilitará el crecimiento de nuestro equipo de ingeniería y dotará de madurez en muchos aspectos a los procesos de negocio.&lt;/p&gt;
&lt;p&gt;Pablo Carranza, Head of Engineering en Cabify, explica muy bien qué conlleva &lt;a href="https://medium.com/cabify-product/on-site-friendly-fba1f9ba69dc"&gt;gestionar una cultura full remote&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Es interesante también echar un vistazo al canal de YouTube de Gitlab, donde los equipos &lt;a href="https://www.youtube.com/watch?v=83trq40wczg&amp;amp;list=PLFGfElNsQthZ12EUkq3N9QlThvkf3WGnZ"&gt;hacen públicas sus reuniones&lt;/a&gt; y hasta disponen de un &lt;a href="https://www.youtube.com/playlist?list=PLFGfElNsQthYYlad7vtTUt3wXKQUTsZWz"&gt;mini curso para Managers&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="devops"&gt;DevOps&lt;/h3&gt;
&lt;p&gt;DevOps es otro término que encontramos en culturas de trabajo actuales y también trae consigo un montón de retos a la hora de aplicarlo.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/DevOpsCulture.html#"&gt;En una cultura alineada con el concepto DevOps&lt;/a&gt;, los equipos de desarrollo y de sistemas comparten una actitud de responsabilidad común hacia el mantenimiento de la plataforma y del software que corre en ella, facilitando la colaboración entre las personas con roles en esos diferentes áreas.&lt;/p&gt;
&lt;p&gt;En estas culturas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las personas en operaciones son involucradas lo antes posible en el proyecto de desarrollo.&lt;/li&gt;
&lt;li&gt;Ambas partes, desarollo y sistemas, son conscientes de las necesidades mutuas para alcanzar los objetivos de negocio.&lt;/li&gt;
&lt;li&gt;Se eliminan barreras a la hora de entregar el código a producción o aportar mejoras tanto en procesos como en la plataforma.&lt;/li&gt;
&lt;li&gt;Como consecuencia, algunos aspectos como la observabilidad y monitorización de la plataforma mejoran notablemente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;Toda empresa tiene una cultura, que es el resultado de los valores, formas de trabajo y visión que los equipos han interiorizado durante los años.&lt;/p&gt;
&lt;p&gt;En la actualidad, existen varios movimientos y conceptos que bien aplicados, pueden hacen mejorar la cultura de nuestra empresa y hacer de la misma, el mejor lugar posible para trabajar.&lt;/p&gt;</content:encoded></item><item><title>Qué preguntar en tu próxima entrevista de trabajo</title><link>https://blog.asiermarques.com/2019/que-preguntar-entrevista/</link><pubDate>Wed, 16 Oct 2019 19:47:01 +0000</pubDate><guid>https://blog.asiermarques.com/2019/que-preguntar-entrevista/</guid><content:encoded>&lt;p&gt;Las entrevistas de trabajo son bidireccionales, es decir, los entrevistadores están a ambos lados de la mesa. Esto es especialmente cierto en el sector tecnológico.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/itcrowd.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Una de las partes más importantes de una entrevista es el turno de preguntas del entrevistado.&lt;/p&gt;
&lt;p&gt;Para el candidato, es una oportunidad única para obtener información sobre el día a día que va a disfrutar &amp;ndash;o sufrir&amp;ndash; en su futuro puesto de trabajo.&lt;br&gt;
Para los entrevistadores, se trata de una oportunidad para conocer mejor las inquietudes e intereses del candidato. Es muy raro que un candidato no haga preguntas, sobretodo en perfiles senior.&lt;/p&gt;
&lt;p&gt;Siempre que he hecho entrevistas, independientemente del lado de la mesa en el que me encuentre, me vienen a la mente de forma recurrente una serie de preguntas que me gustaría hacer o que me hicieran.&lt;/p&gt;
&lt;p&gt;Las siguientes, son una selección de las mismas.&lt;/p&gt;
&lt;h3 id="qué-pasa-si-cometo-un-error"&gt;¿Qué pasa si cometo un error?&lt;/h3&gt;
&lt;p&gt;Todos cometemos errores y probablemente, acaben en producción.&lt;/p&gt;
&lt;p&gt;Es importante asegurarse de que la empresa cuente con mecanismos que eviten que un gran número de los mismos puedan llegar a producción y en el caso de que lo hagan, los sistemas y plataforma puedan recuperarse sin mayor problema.&lt;/p&gt;
&lt;p&gt;Por otro lado, es importante detectar si en la empresa a la que aplicas, los errores son castigados sin ningún tipo de piedad.&lt;br&gt;
En una cultura donde no se pueda fallar de forma segura, las personas se lo van a pensar dos veces antes de proponer iniciativas o soluciones que no les hayan pedido y el crecimiento e innovación están condenados al fracaso.&lt;/p&gt;
&lt;h3 id="qué-se-espera-de-mí-y-de-mi-rol-si-entro-en-el-equipo"&gt;¿Qué se espera de mí y de mi rol si entro en el equipo?&lt;/h3&gt;
&lt;p&gt;Aunque los roles suelen seguir unas pautas generales a la hora de definirse, hay matices importantes que pueden variar su significado entre diferentes culturas de empresa.&lt;br&gt;
Es importante saber si lo que nosotros entendemos que vamos a hacer coincide con lo que la empresa espera que hagas.&lt;/p&gt;
&lt;h3 id="cómo-podría-ser-mi-progresión-en-la-empresa"&gt;¿Cómo podría ser mi progresión en la empresa?&lt;/h3&gt;
&lt;p&gt;Es importante conocer qué opciones vas a tener cara a crecer en la empresa y con qué medios vas a poder contar para conseguir llegar a tus objetivos.&lt;/p&gt;
&lt;p&gt;Esta pregunta debería darte información muy valiosa sobre cómo vas a poder recibir feedback para conocer si vas por el buen camino a la hora de crecer en la empresa.&lt;/p&gt;
&lt;h3 id="cómo-es-el-proceso-desde-que-se-crea-una-tarea-hasta-que-esta-se-encuentra-disponible-en-producción"&gt;¿Cómo es el proceso desde que se crea una tarea hasta que esta se encuentra disponible en producción?&lt;/h3&gt;
&lt;p&gt;Es muy importante conocer cómo de pulidos están los mecanismos que nos van a permitir trabajar en equipo, con la calidad y normalización que el equipo espera y también, poder entregar el trabajo que hacemos a los usuarios finales de nuestro software.&lt;/p&gt;
&lt;p&gt;Plantear cuestiones del tipo &amp;ldquo;¿cómo se gestionan los rollbacks y se hace seguimiento de los mismos?&amp;rdquo;, &amp;ldquo;¿cómo se analiza el impacto de lo que se entrega?&amp;rdquo;, entre otras, demuestra madurez y preocupación por los procesos de trabajo.&lt;/p&gt;
&lt;h3 id="cuál-es-vuestro-proceso-de-definición-de-las-tareas"&gt;¿Cuál es vuestro proceso de definición de las tareas?&lt;/h3&gt;
&lt;p&gt;La definición de las tareas es de las cosas más peleadas por equipos de software de todo el mundo.&lt;/p&gt;
&lt;p&gt;Una empresa que cuente con una buena definición de tareas, tiene mucho ganado y puede ser un lugar muy interesante en el que trabajar.&lt;/p&gt;
&lt;h3 id="cuál-es-vuestro-stack-tecnológico"&gt;¿Cuál es vuestro stack tecnológico?&lt;/h3&gt;
&lt;p&gt;Al margen de lo que ponga en la oferta de trabajo, preguntar por el stack tecnológico nunca está de más.&lt;/p&gt;
&lt;p&gt;Como entrevistado, siempre he agradecido que me hablasen no sólo de lo más interesante del stack, sino también de la parte legacy que todas las empresas que tengan un mínimo recorrido, deben gestionar.&lt;/p&gt;
&lt;h3 id="cómo-se-afronta-la-documentación-en-la-empresa"&gt;¿Cómo se afronta la documentación en la empresa?&lt;/h3&gt;
&lt;p&gt;La documentación es importante a muchos niveles en una empresa pero en concreto en una empresa de software, es clave.&lt;/p&gt;
&lt;p&gt;Sin documentación, los silos de conocimiento se fortalecen, la definición de las tareas se hace más complicada de conseguir y la barrera de entrada a los productos en desarrollo se puede convertir en un handicap muy complicado de gestionar.&lt;/p&gt;
&lt;p&gt;En culturas de trabajo en remoto o empresas en las que hay equipos ubicados en diferentes zonas geográficas, la documentación es uno de los factores clave para poder trabajar y comunicar de forma asíncrona.&lt;/p&gt;
&lt;p&gt;Además de generar documentación, es importante que esté bien estructurada y haya mecanismos que permitan encontrarla y mantenerla viva.&lt;/p&gt;
&lt;p&gt;Conocer cómo de madura es la empresa en este sentido puede ser muy valioso en una entrevista.&lt;/p&gt;
&lt;h3 id="existen-iniciativas-de-formación-en-la-empresa"&gt;¿Existen iniciativas de formación en la empresa?&lt;/h3&gt;
&lt;p&gt;Toda cultura de ingeniería debería dar importancia a la formación de sus equipos y es significativo si esta se facilita en horario de trabajo.&lt;/p&gt;
&lt;h3 id="hay-posibilidad-de-trabajar-en-remoto"&gt;¿Hay posibilidad de trabajar en remoto?&lt;/h3&gt;
&lt;p&gt;Esta es una de las preguntas que más se hacen actualmente.&lt;/p&gt;
&lt;p&gt;El trabajo en remoto es un símbolo de confianza y madurez de los procesos de trabajo y comunicación en la empresa.&lt;br&gt;
Además, una buena cultura de remoto proporciona una mejor calidad de vida gracias a la flexibilidad que aporta por lo que se ha convertido en la primera e incluso única opción para muchos candidatos.&lt;/p&gt;
&lt;p&gt;Tanto si estás interesado como si no en trabajar en remoto, esta pregunta es importante para conocer la opinión de la empresa en este sentido, cómo de maduros puedan llegar estar sus procesos y qué pasos se han dado para avanzar en este sentido.&lt;/p&gt;
&lt;h3 id="perks"&gt;Perks&lt;/h3&gt;
&lt;p&gt;Si la empresa ofrece perks es de recibo preguntar por ellos y cómo se puede disfrutar de los mismos.&lt;/p&gt;
&lt;p&gt;Encontrar reticencia a la hora de explicarlos puede ser un bad smell y que esa empresa no pueda ser todo lo buena opción que pueda parecer a priori.&lt;/p&gt;
&lt;h3 id="cómo-es-el-ambiente-de-trabajo"&gt;¿Cómo es el ambiente de trabajo?&lt;/h3&gt;
&lt;p&gt;Al final, en el trabajo es donde más tiempo vamos a invertir en el día a día.&lt;br&gt;
El ambiente de trabajo es clave para una buena cultura de empresa y facilita enormemente que el trabajo salga adelante.&lt;/p&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;Como candidato, hacer preguntas en una entrevista es importante, te permite conocer mucho más en detalle aspectos importantes de tu futuro trabajo más allá de lo que hayas podido investigar por tu cuenta.&lt;br&gt;
Como entrevistador, es muy interesante recibir preguntas cara a conocer mejor los intereses y preocupaciones de la persona que va a entrar en tu equipo.&lt;/p&gt;
&lt;p&gt;Al final, una entrevista es en ambas direcciones y cuanto más conozca una parte de la otra, más seguro va a ser el éxito de la contratación para ambas partes.&lt;/p&gt;</content:encoded></item><item><title>Documentación activa</title><link>https://blog.asiermarques.com/2019/documentacion-activa/</link><pubDate>Sun, 14 Apr 2019 19:34:01 +0000</pubDate><guid>https://blog.asiermarques.com/2019/documentacion-activa/</guid><content:encoded>&lt;p&gt;Durante los últimos años he tenido varias experiencias tratando de implantar una cultura de documentación en distintas empresas y equipos con los que he trabajado.&lt;/p&gt;
&lt;p&gt;Este artículo es un resumen de las charlas que he impartido en los últimos dos años basadas en dichas experiencias con el fin de explicar qué es la documentación activa y por qué puede ser clave para implantar una cultura de documentación de forma efectiva en una empresa o un equipo de desarrollo de software.&lt;/p&gt;
&lt;h3 id="nuestro-concepto-clásico-de-documentación"&gt;Nuestro concepto clásico de documentación&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/Screenshot%202019-04-14%20at%2012.31.46.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Una de las razones principales por las que documentar es una tarea que se percibe como “cara” en tiempo y esfuerzo radica en nuestro concepto de generación de la misma. Esto se une a malas experiencias que hayamos podido sufrir al crearla o consumirla.&lt;/p&gt;
&lt;p&gt;Cuando pensamos en documentación, asociamos en nuestra mente la necesidad de recibir o crear un documento. Este documento será un “entregable” en formato docx, pdf o similar.&lt;/p&gt;
&lt;p&gt;Si dicho documento está escrito con mimo, es decir sin una prisa evidente por terminarlo tras haberlo dejado para la fase final del proyecto, nos quedará asegurarnos de que dicho documento se mantenga actualizado en el tiempo. Con este fin, se suele incluir una tabla al principio del mismo, para registrar los cambios que se vayan produciendo en el.&lt;/p&gt;
&lt;p&gt;Una vez entregado y concluido el proyecto (al menos en principio) en nuestra mente únicamente quedará la esperanza disfrazada de expectativa de que dicho documento se mantenga actualizado cada vez que se realice un cambio o actualización en nuestro producto. &lt;strong&gt;Pero esto rara vez ocurre&lt;/strong&gt; y lo sabemos.&lt;/p&gt;
&lt;p&gt;Tenemos varios problemas con esta forma de trabajar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La documentación está en un formato final que puede ser copiado, alterado y editado en una de sus copias. Esto nos provoca inseguridad al no saber con certeza que disponemos de la versión más actualizada del documento.&lt;/li&gt;
&lt;li&gt;El formato a veces nos obliga a consumir información crítica con una herramienta de software concreta. Y también a duplicar la información si debemos entregar la documentación a diferentes destinatarios en diferentes formatos, haciendo más compleja la gestión y control de las versiones.&lt;/li&gt;
&lt;li&gt;La documentación está ligada a un entregable. Si la persona que gestiona el proyecto no tiene suficiente experiencia o la cultura tecnológica de la empresa no da pie a incluir requisitos de documentación en el &lt;a href="https://en.wikipedia.org/wiki/Scrum_(software_development)#Definition_of_done_(DoD)"&gt;definition of done&lt;/a&gt; de una tarea, es posible que en el mejor de los casos, este trabajo quede en la fase final en el Gantt (o en un falso “agile sprint”) del proyecto. Esta fase de “documentación y pruebas” suele coincidir con retrasos en funcionalidad comprometida en fechas haciendo que sea el peor momento para redactar algo con un mínimo de cariño.&lt;/li&gt;
&lt;li&gt;Otra posibilidad es que nuestra documentación sea el resultado de un análisis realizado en una fase previa al inicio del proyecto. Este documento puede darnos cierto contexto del origen pero nunca nos podrá dar ningún tipo de fiabilidad de que nos sirva para algo tras finalizar el desarrollo por la propia naturaleza del desarrollo del software. Nunca vamos a estar a salvo de cambios, redefiniciones y descubrimientos continuos.&lt;/li&gt;
&lt;li&gt;Esta documentación estará alejada del código de nuestro proyecto, por lo que con el tiempo, el punto único de verdad será el código que tenemos en producción. Perderemos contexto del por qué de la implementación realizada y del impacto real en el negocio y otros componentes de la arquitectura o productos de software con los que nuestro desarrollo se comunique o integre.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Es muy fácil que nuestra documentación se enfríe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pongamos un ejemplo típico en el que nos llega una especificación en formato docx para construir un servicio que va a estar disponible mediante una API REST.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/Screenshot%202019-04-14%20at%2013.06.00.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;A partir de dicho documento, creamos la especificación en Open Api y mediante la misma, comenzamos a desarrollar el servicio.&lt;/p&gt;
&lt;p&gt;Nuestros compañeros de front utilizan esa especificación para generar mocks automáticamente y no tener que esperar a que terminemos el servicio para poder empezar a construir su aplicación web progresiva.&lt;/p&gt;
&lt;p&gt;Resulta que nos damos cuenta de que no se había contemplado una necesidad en el comportamiento de nuestra API.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/Screenshot%202019-04-14%20at%2013.09.56.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Aplicamos el cambio en el código y en la especificación para que nuestros compañeros de front puedan volver a generar sus mocks y puedan trabajar teniendo en cuenta este cambio.&lt;/p&gt;
&lt;p&gt;Al hacer esto, nuestra especificación inicial se vuelve automáticamente obsoleta.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/Screenshot%202019-04-14%20at%2013.12.29.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;En este momento, nuestro punto único de información reside en la especificación del Open API y no en el documento. Sin embargo, el Open API recoge cierta información, pero no toda, perdiendo información sobre el comportamiento y requisitos de negocio.&lt;br&gt;
La situación se vuelve mucho peor si ni siquiera contásemos con la especificación del Open API.&lt;/p&gt;
&lt;p&gt;Cuando pasen los años y otro equipo de desarrollo que no disponga de toda la información que se ha ido omitiendo durante ese tiempo asuma el desarrollo del mismo, no les quedará más remedio que volverse arqueólos del software.&lt;/p&gt;
&lt;h3 id="arqueología-de-software"&gt;Arqueología de software&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/1IaR.gif" alt=""&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Software archaeology or software archeology is the study of poorly documented or undocumented legacy software implementations, as part of software maintenance.&lt;br&gt;
Software archaeology, named by analogy with archaeology, includes the reverse engineering of software modules, and the application of a variety of tools and processes for extracting and understanding program structure and recovering design information.&lt;br&gt;
— Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La anterior cita, además de en la Wikipedia, forma parte de este interesante &lt;a href="http://herraiz.org/papers/english/icsm05short.pdf"&gt;paper de Gregorio Robles, Jesus M. Gonzalez-Barahona e Israel Herraiz&lt;/a&gt; además de hablarse sobre ello en el libro &lt;a href="https://www.goodreads.com/book/show/2950819-eating-the-it-elephant"&gt;Eating the IT Elephant: Moving from Greenfield Development to Brownfield de Richard Hopkins y Kevin Jenkins&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si llevamos un tiempo en el desarrollo de software, seguramente hayamos heredado más de una vez un proyecto sin documentación o peor aún, con documentación poco fiable. En otras situaciones, debemos migrar un desarrollo existente para poder actualizarlo, mejorar su mantenimiento o quizás poder a llegar a incluir alguna funcionalidad nueva sin que impacte en el resto de funcionalidades o el sistema del que esa pieza forma parte.&lt;/p&gt;
&lt;p&gt;La única solución para conocer con seguridad qué hace ese software y cual es su impacto a nivel global, es estudiar sus entrañas y empezar a cubrir con tests de caja negra para ir ganando control y &lt;a href="https://www.igi-global.com/dictionary/shared-understanding/26788"&gt;entendimiento compartido&lt;/a&gt; del equipo sobre el mismo.&lt;/p&gt;
&lt;p&gt;Sobra decir que esto es un proceso caro. Incluso con la idea de crear una estrategia de refactoring o en el caso más extremo, la re-escritura total del proyecto, ese tiempo de análisis puede llegar a ser más caro en tiempo o recursos que la propia ejecución del proyecto. A pesar de todo, esta inversión será necesaria para no encontrarnos con la misma situación en el futuro.&lt;/p&gt;
&lt;p&gt;En estas situaciones es donde se ve claro el valor de tener una documentación bien actualizada y eliminar toda &amp;ldquo;isla de conocimiento&amp;rdquo;. Pero esto no es fácil e implica cambios de cultura en el trabajo del equipo.&lt;/p&gt;
&lt;h3 id="cómo-empezar"&gt;Cómo empezar&lt;/h3&gt;
&lt;p&gt;En todo momento estoy haciendo referencia en un cambio de cultura. &lt;strong&gt;Cambiar una cultura no es nada sencillo&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Un cambio de cultura implica pensar a largo plazo, estar alineados como equipo y tener margen de acción. No todos los entornos son favorables.&lt;/p&gt;
&lt;p&gt;Incluso en entornos ágiles de verdad, es complicado añadir una cultura de documentación de entrada y sin preparación. Por esto considero clave el introducir documentación activa en los procesos de Integración continua.&lt;/p&gt;
&lt;p&gt;Una vez conseguido esto, podemos ir mejorando e introduciendo más mecanismos, roles y protocolos para mejorar nuestra documentación y la cultura de equipo.&lt;/p&gt;
&lt;h3 id="introduciendo-pipelines-de-documentación-activa"&gt;Introduciendo pipelines de documentación activa&lt;/h3&gt;
&lt;p&gt;La documentación activa nos permite conseguir varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar documentación automáticamente a partir de especificaciones o contratos que ya tenemos que definir obligatoriamente para que nuestro software funcione o se integre con otros sistemas&lt;/li&gt;
&lt;li&gt;Tener un único punto de verdad que se actualice constantemente&lt;/li&gt;
&lt;li&gt;No depender de formatos entregables finales&lt;/li&gt;
&lt;li&gt;Que nuestra documentación forme parte de nuestro ciclo de integración y entrega continuos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/Screenshot%202019-04-14%20at%2015.28.27.png" alt=""&gt;&lt;/p&gt;
&lt;h4 id="markdown-como-formato-central"&gt;Markdown como formato central&lt;/h4&gt;
&lt;p&gt;Markdown nos ofrece muchas ventajas para ser utilizado como documentación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es independiente de formato, es un lenguaje simple de marcado basado en texto plano&lt;/li&gt;
&lt;li&gt;Hay muchísimas utilidades para generar entregables en PDF, Docx, HTML&lt;/li&gt;
&lt;li&gt;Hay opciones de CMS maduras que nos permiten generar portales de documentación a partir de archivos Markdown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En varias ocasiones hemos seguido la estrategia de generar portales de documentación con herramientas como &lt;a href="https://vuepress.vuejs.org/"&gt;VuePress&lt;/a&gt; a partir de archivos de markdown que se organizaban dentro de una carpeta /docs que la raíz del proyecto.&lt;/p&gt;
&lt;p&gt;Esos archivos podían ser escritos a mano, pero también podían incluir transformaciones de otros formatos como Swagger, JSON Schema e incluso Gherkin a formato Markdown.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/documentacion-activa/pipeline.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Tanto la documentación escrita como la documentación activa pasan por el mismo pipeline que entraría en un ciclo de Integración Continua.&lt;/p&gt;
&lt;p&gt;De esta forma conseguimos regenerar de forma automática tanto el portal de documentación como los formatos entregables en cada actualización del código y de documentación que se mergee en la rama master (o de desarrollo, según nuestra estrategia).&lt;/p&gt;
&lt;p&gt;Podemos complicar el pipeline tanto como nos apetezca, por ejemplo incluyendo la indexación de toda la documentación en un servicio de búsqueda centralizada para poder encontrar cualquier información de forma más sencilla.&lt;/p&gt;
&lt;p&gt;Cada pipeline dependerá de las necesidades concretas de cada equipo.&lt;/p&gt;
&lt;p&gt;Como nota curiosa, otros sectores están empezando a crear sus propios pipelines con una idea similar. En el artículo &lt;a href="https://marianaeguaras.com/la-edicion-como-edicion-continua/"&gt;La edición como edición continua&lt;/a&gt; de Ramiro Santa Ana Anguiano, podemos ver cómo se puede aplicar esto a la edición tradicional.&lt;/p&gt;
&lt;h4 id="qué-podemos-utilizar-como-documentación-activa"&gt;¿Qué podemos utilizar como documentación activa?&lt;/h4&gt;
&lt;p&gt;Seguramente como equipo ya estaremos escribiendo documentación sin ser conscientes de ello.&lt;/p&gt;
&lt;p&gt;Para hacer viable nuestro trabajo escribimos tests unitarios y de integración, especificaciones, contratos, recetas de despliegue u orquestación de infraestructura… todo ello puede hacernos comprender en detalle los requisitos, finalidad y objetivos de negocio de los mismos.&lt;/p&gt;
&lt;p&gt;Algunas de estas herramientas pueden ser las siguientes:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open API/Swagger&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.openapis.org/"&gt;Open API&lt;/a&gt; es una evolución de &lt;a href="https://swagger.io/"&gt;Swagger&lt;/a&gt; para especificar APIs REST, WebHooks y posiblemente &lt;a href="https://github.com/OAI/OpenAPI-Specification/issues/523"&gt;Websockets&lt;/a&gt; en el futuro.&lt;/p&gt;
&lt;p&gt;Esta herramienta nos permite generar documentación en varios formatos e incluso código de clientes para consumir nuestro API y mocks partiendo de una especificación escrita en formato YAML.&lt;/p&gt;
&lt;p&gt;Open API es muy maduro gracias a la adopción que ha tenido Swagger en los últimos años y podemos gozar de compatibilidad con diferentes frameworks y tecnologías disponibles.&lt;/p&gt;
&lt;p&gt;También contamos con la posibilidad de transformar directamente el archivo YAML a formato Markdown gracias a &lt;a href="https://github.com/rmariuzzo/markdown-swagger"&gt;esta herramienta de Rubens Mariuzzo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AsyncAPI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt; es una iniciativa similar a Open API pero que desarrolla una especificación para APIs de mensajería o comunicación asíncrona.&lt;/p&gt;
&lt;p&gt;Documentar los payloads de los eventos de nuestro sistema es algo fundamental sobretodo en arquitecturas orientadas a eventos como las que se basan en Microservicios.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JSON Schema&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JSON Schema es una herramienta muy útil para especificar y validar documentos JSON que van a ser integrados o almacenamos en un sistema.&lt;/p&gt;
&lt;p&gt;Algunos servicios de mensajería y bases de datos documentales soportan JSON Schema para validar lo que se envía a ellos antes de aceptarlos. En servicios que no los soporten suele ser buena práctica validarlos desde el lado del consumidor o productor del mensaje en nuestra aplicación.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/adobe/jsonschema2md"&gt;Existe una herramienta de Adobe&lt;/a&gt; que nos permite convertir archivos JSON Schema complejos a archivos Markdown.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gherkin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Gherkin es un lenguaje creado para escribir especificaciones que además nos sirvan como tests automáticos de aceptación.&lt;br&gt;
Aunque se creó bajo el paraguas de la herramienta &lt;a href="https://en.wikipedia.org/wiki/Cucumber_(software)"&gt;Cucumber&lt;/a&gt; del ecosistema Ruby, Gherkin es independiente de tecnología y frameworks, lo cual lo hace muy versátil y aceptado de forma general en la comunidad de desarrollo.&lt;/p&gt;
&lt;p&gt;Al ser una herramienta para probar nuestro software, tenemos la oportunidad perfecta para usarlo como documentación que debe estar continuamente actualizada.&lt;/p&gt;
&lt;p&gt;Para aprovechar todo su potencial, lo ideal es seguir la metodología &lt;a href="https://en.wikipedia.org/wiki/Specification_by_example"&gt;Specification by example&lt;/a&gt;.&lt;br&gt;
Esta metodología aplicada a Gherkin considero que es la mejor práctica para disponer de documentación de negocio siempre viva.&lt;/p&gt;
&lt;p&gt;Uno de los mejores libros que he leído sobre la misma es &lt;a href="https://www.amazon.com/Bridging-Communication-Gap-Specification-Acceptance/dp/0955683610"&gt;Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing&lt;/a&gt; de Gojko Adzic.&lt;/p&gt;
&lt;p&gt;Un ejemplo de feature de Gherkin sería este:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gherkin" data-lang="gherkin"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;Feature:&lt;/span&gt;&lt;span class="nf"&gt; Free shipping
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; We want to offer free shipping in orders sent within our country at this moment.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; The minimun quantity for a free shipping must be 100€
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;Scenario Outline:&lt;/span&gt;&lt;span class="nf"&gt; Orders over $100 should be shipped for free
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; Given &lt;/span&gt;&lt;span class="nf"&gt;items worth &lt;/span&gt;&lt;span class="nv"&gt;&amp;lt;purchase&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt; in John&amp;#39;s cart
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;And &lt;/span&gt;&lt;span class="nf"&gt;shipment to &lt;/span&gt;&lt;span class="nv"&gt;&amp;lt;country&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;When &lt;/span&gt;&lt;span class="nf"&gt;John proceeds to checkout
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;Then &lt;/span&gt;&lt;span class="nf"&gt;he should be offered &lt;/span&gt;&lt;span class="nv"&gt;&amp;lt;shipping&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;Examples:&lt;/span&gt;&lt;span class="nf"&gt; Restrict free shipping to Spain&lt;/span&gt;&lt;span class="k"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; country&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; purchase&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; ES&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 99€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; ES&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 100€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; free shipping&lt;/span&gt;&lt;span class="k"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;Examples:&lt;/span&gt;&lt;span class="nf"&gt; Other countries don&amp;#39;t have free shipping&lt;/span&gt;&lt;span class="k"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; country&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; purchase&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nv"&gt; shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Canada&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 99€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Canada&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 100€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Poland&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 99€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Poland&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 100€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Egypt&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 99€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Egypt&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 100€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Japan&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 99€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; Japan&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 100€&lt;/span&gt;&lt;span class="k"&gt; |&lt;/span&gt;&lt;span class="s"&gt; 5€ shipping&lt;/span&gt;&lt;span class="k"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como vemos, además de dejar claro en los ejemplos el comportamiento que queremos conseguir y asegurar en nuestro software, tenemos la posibilidad de añadir todo el contexto que queramos.&lt;/p&gt;
&lt;p&gt;He trabajado mucho con Gherkin en los últimos años y es una de mis herramientas favoritas. Existen muchas técnicas que se pueden utilizar para escribir un buen Gherkin que sirva como guía de usuario y documentación de negocio, además de servir como tests de aceptación.&lt;br&gt;
El libro &lt;a href="https://www.amazon.com/Writing-Great-Specifications-Specification-Example/dp/1617294101"&gt;Writing Great Specifications: Using Specification By Example and Gherkin&lt;/a&gt; de Kamil Nicieja es un gran recurso para aprenderlas.&lt;/p&gt;
&lt;p&gt;Hay herramientas como &lt;a href="http://www.picklesdoc.com/"&gt;Pickles&lt;/a&gt; que permite generar diferentes formatos a partir de Gherkin con Markdown embebido.&lt;br&gt;
También podemos transformar Gherkin en Markdown cada archivo feature gracias a &lt;a href="https://github.com/raviqqe/gherkin2markdown"&gt;gherkin2markdown&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Otras herramientas que pueden servir como documentación activa&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Archivos .env&lt;/li&gt;
&lt;li&gt;Archivos de herramientas de gestión de dependencias, requisitos y mantenimiento como package.json, pom.xml o composer.json&lt;/li&gt;
&lt;li&gt;docker-compose.yaml&lt;/li&gt;
&lt;li&gt;JavaDoc/PHPDoc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nos puede interesar o no llegar a incluirlas en nuestra documentación, pero todas estas y otras similares nos pueden ayudar a dejar visible y de forma centralizada información relevante acerca de nuestro proyecto.&lt;/p&gt;
&lt;h3 id="otro-tipo-de-documentación-no-activa"&gt;Otro tipo de documentación no activa&lt;/h3&gt;
&lt;h4 id="archivos-readme"&gt;Archivos Readme&lt;/h4&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Los archivos README de los repositorios son una oportunidad para dar información relevante de un sólo vistazo en cada repositorio de código.
Cuidarlos es esencial, y no sólo en proyectos Open Source.&lt;/p&gt;
&lt;p&gt;Dependiendo de nuestras necesidades y del proyecto puede ser interesante incluirlos en nuestro pipeline.&lt;/p&gt;
&lt;h4 id="adr-architectural-decision-records"&gt;ADR: Architectural decision records&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://adr.github.io/"&gt;Los ADR&lt;/a&gt; son una potente herramienta para anotar las decisiones que tomamos a nivel técnico.
Se basan en archivos Markdown con la siguiente estructura:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# ID-1. Markdown format
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Date: 2016-02-12
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Status
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Accepted
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Context
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;The decision records must be stored in a plain text format:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; This works well with version control systems.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; It allows the tool to modify the status of records and insert
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hyperlinks when one decision supercedes another.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Decisions can be read in the terminal, IDE, version control
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; browser, etc.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;People will want to use some formatting: lists, code examples,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;and so on.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;People will want to view the decision records in a more readable
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;format than plain text, and maybe print them out.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Decision
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Record architecture decisions in [&lt;span class="nt"&gt;Markdown format&lt;/span&gt;](&lt;span class="na"&gt;https://daringfireball.net/projects/markdown/&lt;/span&gt;).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Consequences
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Decisions can be read in the terminal.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Decisions will be formatted nicely and hyperlinked by the
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;browsers of project hosting sites like GitHub and Bitbucket.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Tools like [&lt;span class="nt"&gt;Pandoc&lt;/span&gt;](&lt;span class="na"&gt;http://pandoc.org/&lt;/span&gt;) can be used to convert
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the decision records into HTML or PDF.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Los ADR son clave para anotar también la deuda técnica que vamos asumiendo en nuestro proyecto y sus consecuencias.&lt;/p&gt;
&lt;p&gt;Existen herramientas como &lt;a href="https://github.com/npryce/adr-tools"&gt;adr-tools&lt;/a&gt; que nos facilitan la creación de estos archivos.&lt;/p&gt;
&lt;h4 id="glosarios"&gt;Glosarios&lt;/h4&gt;
&lt;p&gt;Los glosarios surgen de la necesidad de documentar términos no sólo para tener un entendimiento compartido por nuestro equipo y otros equipos de otras áreas de la empresa, sino también para modelar y nombrar aspectos de dominio de nuestro software.&lt;/p&gt;
&lt;p&gt;Gestionar glosarios no es una tarea sencilla ya que además de exponer de qué se trata cada término, hay que detallar en qué contextos se utiliza y cuáles son los términos a los que equivale en otros.&lt;/p&gt;
&lt;p&gt;Si partimos de cero, es posible que nuestro glosario sea más sencillo de componer en el caso de tener una disciplina o procedimiento para ir documentándolo y consensuándolo a medida que surgen las dudas.&lt;/p&gt;
&lt;p&gt;En contextos en los que se parta de un software en producción en el que no ha habido un ejercicio de documentar el glosario, nos tocará recopilar términos a los que nuestro software ya esté acoplado, documentarlos y asociarlos a los términos que finalmente acordemos en el equipo.&lt;/p&gt;
&lt;h4 id="convenciones-y-nomenclatura"&gt;Convenciones y nomenclatura&lt;/h4&gt;
&lt;p&gt;Unas de las mejores prácticas que he visto aplicar es la de elaborar convenciones a la hora de nombrar diferentes aspectos de nuestro software, documentar dichas decisiones y comunicarlas a otros equipos para que también las sigan.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si todos los topics de Kafka o colecciones de Mongo siguen la misma estructura de nombres, incluyendo información útil (dependiendo de nuestros intereses) como la versión y nombre de entorno, el impacto en el día a día a medio y largo plazo es muy importante tanto para nuestro equipo como para otros equipos con los que colaboremos.&lt;/p&gt;
&lt;h3 id="retos-adicionales"&gt;Retos adicionales&lt;/h3&gt;
&lt;p&gt;Hemos hablado de muchas cosas en este artículo y las mismas no están libres de retos.&lt;/p&gt;
&lt;h4 id="versionado"&gt;Versionado&lt;/h4&gt;
&lt;p&gt;El principal reto de utilizar contratos y especificaciones es el gestionar el versionado de los mismos.&lt;/p&gt;
&lt;p&gt;El versionado nos implica bastante trabajo y en algunas ocasiones complejidad extra ya que por norma general debemos mantener compatibilidad con clientes u otros componentes que utilicen versiones anteriores y que no siempre puedan tener el ritmo de actualización que nosotros tenemos.&lt;br&gt;
Sin embargo, también nos da mucho más control y nos reduce los problemas de escalado a largo plazo.&lt;/p&gt;
&lt;h4 id="implicaciones-al-compartir-el-repositorio-de-la-documentación-con-el-del-código"&gt;Implicaciones al compartir el repositorio de la documentación con el del código&lt;/h4&gt;
&lt;p&gt;Tenemos que tener en cuenta que quizás nuestra documentación sufre cambios pero nuestro código no.&lt;br&gt;
En algunos contextos, tenemos que gestionar este tipo de cosas para que no se nos dispare el ciclo de generación de un artefacto con una versión nueva por cada cambio de documentación integrado en nuestro repositorio.&lt;/p&gt;
&lt;p&gt;Hay aproximaciones como separar la documentación en una rama aparte o utilizar los sistema de wiki que incluyen servicios como Github o Gitlab.&lt;/p&gt;
&lt;h4 id="asegurar-el-mantenimiento-de-la-documentación-no-activa"&gt;Asegurar el mantenimiento de la documentación no activa&lt;/h4&gt;
&lt;p&gt;Tarde o temprano tenemos que asegurar que la documentación no activa esté actualizada.&lt;/p&gt;
&lt;p&gt;Este es uno de los grandes retos que tenemos al documentar y por lo que la mejor estrategia debe ser aprovechar al máximo posible todo recurso que pueda servirnos como documentación activa.&lt;/p&gt;
&lt;p&gt;Tarde o temprano tendremos que evaluar si necesitamos incluir roles en nuestro equipo que se encarguen de este trabajo e incluso dispongan de dedicación total para mantener la documentación.&lt;/p&gt;
&lt;p&gt;Esto dependerá mucho de nuestra empresa, proyectos y necesidades.&lt;/p&gt;
&lt;h3 id="conclusión"&gt;Conclusión&lt;/h3&gt;
&lt;p&gt;En este artículo he tratado de transmitir de forma resumida gran parte de los puntos críticos que he visto en mi experiencia en los últimos años introduciendo culturas de documentación en diferentes equipos con los que he trabajado.&lt;/p&gt;
&lt;p&gt;La documentación activa puede ser un gran recurso para tener una buena base de partida y complementaria a una documentación que implique más inversión de recursos.&lt;/p&gt;</content:encoded></item><item><title>El perfil paracetamol</title><link>https://blog.asiermarques.com/2018/el-perfil-paracetamol/</link><pubDate>Wed, 20 Jun 2018 11:37:01 +0000</pubDate><guid>https://blog.asiermarques.com/2018/el-perfil-paracetamol/</guid><content:encoded>&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/Paracetamol-skeletal.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Hace algunos años, compartía con un gran amigo y colega del sector varios botellines casi congelados de 1906 en una de las geniales terrazas que hay por Alameda de Hércules en Sevilla. En una de las conversaciones surgió que en su equipo había dos personas que cuando no estaban, el trabajo parecía no salir adelante.&lt;/p&gt;
&lt;p&gt;Cuando había algún bloqueo o problema, por mínimo que fuese, el resto de sus compañeros tenían la costumbre de esperar a que llegasen esas personas que, lejos de sentirse &amp;ldquo;honrados&amp;rdquo; con su gran medalla de héroes, estaban hasta los mismísimos de que todo aparentemente dependiese de ellos.&lt;/p&gt;
&lt;p&gt;Esta fue la primera ocasión en la que utilicé el término paracetamol para describir perfiles que &amp;ldquo;gozaban&amp;rdquo; de este rol.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un perfil paracetamol oculta el dolor del equipo cuando hay problemas, por lo que muy pocas personas en la empresa son conscientes de que estos problemas existen hasta que estas personas no están o se van de la empresa.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El perfil paracetamol es muy distinto a otros perfiles heroicos que se sienten cómodos generando dependencias. Estas personas normalmente suelen ser gente extraordinariamente generosa, autodidacta y disponen de alta capacidad resolutiva. Precisamente por estas capacidades y su actitud de ayuda directa ante los problemas, si no se ponen los medios para detectar su sobrecarga de trabajo y limitarla, las consecuencias podrán ser problemáticas para ellos pero especialmente críticas para la empresa.&lt;/p&gt;
&lt;p&gt;Existen formas para evitar que se pueda crear una cultura paracetamol-first en una empresa, las siguientes son algunas que he visto funcionar a lo largo de mi carrera profesional.&lt;/p&gt;
&lt;h3 id="cultura-de-documentación"&gt;Cultura de documentación&lt;/h3&gt;
&lt;p&gt;Una empresa, sobretodo una empresa que crea productos de software, no se puede permitir centralizar el conocimiento en islas humanas.&lt;/p&gt;
&lt;p&gt;Crear una cultura de documentación en la empresa es algo vital para evitar dependencias a nivel de conocimiento.&lt;/p&gt;
&lt;p&gt;Esta documentación debe ser fácilmente accesible y actualizada. Y debe cubrir desde aspectos organizativos y de procedimientos de la organización hasta las especificaciones técnicas de cada proyecto.&lt;/p&gt;
&lt;p&gt;Metodologías y herramientas de documentación activa a nivel de código o producto de software como &lt;a href="https://es.wikipedia.org/wiki/Desarrollo_guiado_por_comportamiento"&gt;BDD&lt;/a&gt; (Aplicando StoryBDD y cuidando las narrativas), &lt;a href="https://en.wikipedia.org/wiki/Specification_by_example"&gt;SBE&lt;/a&gt; e incluso &lt;a href="https://swagger.io/"&gt;Swagger&lt;/a&gt; (o &lt;a href="https://apiblueprint.org/"&gt;Blueprint&lt;/a&gt;) son muy útiles para exponer la funcionalidad de los productos de forma automatizada.&lt;/p&gt;
&lt;p&gt;A nivel de repositorios, todos los proyectos deberían contar con:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/PurpleBooth/109311bb0361f32d87a2"&gt;Un buen Readme&lt;/a&gt; con un índice que recoja los siguientes puntos&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cómo arrancar el proyecto&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cómo probar el proyecto&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Qué dependencias tiene el proyecto&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Qué versión y requisitos tiene este proyecto&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En una empresa dedicada 100% a producto, debería haber una persona dedicada a asegurar esta cultura y gestionar esta labor.&lt;/p&gt;
&lt;p&gt;La cultura de documentación no implica sólo documentar los proyectos o formas de trabajo, sino también el consultar la documentación antes de coger el teléfono o levantarse de la silla para interrumpir al compañero.&lt;/p&gt;
&lt;p&gt;Este punto es especialmente importante si se trabaja de forma remota, con equipos distribuidos o en proyectos open source.&lt;/p&gt;
&lt;h3 id="medir-los-cambios-de-foco-y-limitar-el-wip"&gt;Medir los cambios de foco y limitar el WIP&lt;/h3&gt;
&lt;p&gt;En metodologías como Kanban y Scrum el WIP, work in progress, es uno de los conceptos más importantes y que permiten mejorar la eficiencia de un equipo.&lt;/p&gt;
&lt;p&gt;Normalmente en los entornos paracetamol-first el WIP no se limita en absoluto, de hecho puede tender al infinito. Es clave que el foco no se diluya en varias tareas simultáneas. Limitar por ejemplo a una o dos tareas concurrentes por cada miembro del equipo suele ser una buena práctica para conseguirlo.&lt;/p&gt;
&lt;p&gt;Otra medida útil es medir las interrupciones que tiene cada miembro del equipo. Cuando se hace y se presentan los datos en las retrospectivas al final de cada sprint, muchas veces sobran las palabras.&lt;/p&gt;
&lt;h3 id="hacer-partícipe-al-equipo-en-las-decisiones-y-diseño-de-soluciones"&gt;Hacer partícipe al equipo en las decisiones y diseño de soluciones&lt;/h3&gt;
&lt;p&gt;En mi opinión, todo desarrollador de software debería tener el skill o rol de arquitectura de software. Hacer partícipe de la visión global a todos los equipos es algo fundamental para que las personas no se queden limitadas o &amp;ldquo;cómodas&amp;rdquo; en su nicho.&lt;/p&gt;
&lt;p&gt;En SCRUM existe el rol de Scrum Master. Cuando surge algún problema o necesidad de toma de decisión, el Scrum Master no debe lanzarse a solucionar el problema directamente; en su lugar debe guiar al equipo para que entre todos, encuentren la mejor solución, aunque ella o él la tengan clara. Hagamos SCRUM o no, me parece muy interesante esto y creo que es muy valioso para evitar estos perfiles.&lt;/p&gt;
&lt;h3 id="evitar-ser-líderes-paracetamoles"&gt;Evitar ser líderes paracetamoles&lt;/h3&gt;
&lt;p&gt;El peor paracetamol es un dueño de la empresa al que le cuesta delegar o un líder que se carga peso de ejecución, ocultándolo al equipo y a las métricas.&lt;/p&gt;
&lt;p&gt;Cuando eres el dueño de tu negocio y te apasiona lo que haces puedes caer muy fácilmente en esto y hacer que tu empresa dependa enteramente de ti.&lt;/p&gt;
&lt;p&gt;Es importante desconectar y medir la productividad a nivel de entrega de valor cuando tú no estás en tu negocio.&lt;/p&gt;
&lt;p&gt;Muchas personas creen que su equipo no es productivo cuando ellos no están físicamente en la oficina, pero la realidad es que no han puesto los medios para que estas personas puedan serlo o no disponen de la suficiente información para poder hacer su trabajo.&lt;/p&gt;
&lt;h3 id="exigir-y-respetar-el-tiempo-fuera-del-trabajo"&gt;Exigir y respetar el tiempo fuera del trabajo&lt;/h3&gt;
&lt;p&gt;Los perfiles paracetamoles son propensos al &lt;a href="https://es.wikipedia.org/wiki/Trabaj%C3%B3lico"&gt;workaholismo&lt;/a&gt; y por ello es importante que no se extienda una cultura en la empresa en la que se promuevan invertir horas extras o trabajo fuera de un rango horario.&lt;/p&gt;
&lt;p&gt;Se suele decir que el máximo productivo de un desarrollador es de seis horas al día. Debería ser un objetivo que durante esas seis horas ese profesional tenga el foco puesto en entregar valor y optimizar la gestión de los proyectos para que esto sea la norma principal.&lt;/p&gt;
&lt;h3 id="todas-las-herramientas-e-información-deberían-ser-fácilmente-accesibles"&gt;Todas las herramientas e información deberían ser fácilmente accesibles&lt;/h3&gt;
&lt;p&gt;Si hay impedimentos para poder disponer de la información o herramientas para realizar el trabajo, por ejemplo si se necesitan utilizar desde una aplicación móvil o fuera de la red local de la oficina, es muy posible que ese trabajo se delegue en otras personas y por lo general, en una cultura paracetamol-first, siempre serán las mismas.&lt;/p&gt;
&lt;h3 id="cultura-de-trabajo-en-remoto"&gt;Cultura de trabajo en remoto&lt;/h3&gt;
&lt;p&gt;No todas las empresas ni personas tienen por qué trabajar con una cultura de remote-first, pero establecer los mecanismos para hacerlo puede asegurar que todos los puntos anteriores se cumplan.&lt;/p&gt;
&lt;p&gt;En una cultura remota es clave el medir y gestionar la comunicación de forma asíncrona, cada miembro del equipo debe poder realizar su trabajo de forma autosuficiente y contar con toda la información para poder hacerlo, por lo que no es un buen entorno en el que puedan crearse perfiles paracetamoles.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="apuntes-interesantes"&gt;Apuntes interesantes&lt;/h4&gt;
&lt;p&gt;Dejo por aquí algunas opiniones y apuntes interesantes que he recibido por Twitter sobre este artículo.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;</content:encoded></item><item><title>Principios SOLID</title><link>https://blog.asiermarques.com/2018/principios-solid/</link><pubDate>Sun, 29 Apr 2018 15:49:13 +0000</pubDate><guid>https://blog.asiermarques.com/2018/principios-solid/</guid><content:encoded>&lt;p&gt;A pesar de que existe mucho material escrito sobre este tema, en mi día a día me encuentro con software diseñado desde cero sin tener en cuenta algunos o ninguno de los principios SOLID.&lt;/p&gt;
&lt;p&gt;Los principios SOLID son la base para diseñar software que sea flexible, testeable y fácil de mantener.&lt;/p&gt;
&lt;p&gt;Algunos están ya bastante asumidos por la comunidad de desarrollo, otros no tanto.&lt;/p&gt;
&lt;p&gt;En este artículo explicaré cada uno de estos principios con simples ejemplos que representan escenarios típicos de nuestro día a día.&lt;/p&gt;
&lt;h3 id="single-responsability"&gt;Single responsability&lt;/h3&gt;
&lt;p&gt;Una clase debería tener una única responsabilidad.&lt;/p&gt;
&lt;p&gt;Este principio quizás sea aparentemente el más sencillo de entender. Aun así, son frecuentes las implementaciones que se lo saltan, incluso de forma intencionada.&lt;/p&gt;
&lt;p&gt;Un ejemplo de implementación que se lo salta es la de Active Record que se implementa en el ORM de RubyOnRails, cuyos modelos suelen ser propensos a atraer responsabilidades ajenas a las que deberían tener.&lt;/p&gt;
&lt;p&gt;Un ejemplo parecido de esto sería este código&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Message&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;setFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt; &lt;span class="nv"&gt;$person&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;setTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt; &lt;span class="nv"&gt;$person&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En este código, vemos que una clase mensaje implementa el método &amp;ldquo;send&amp;rdquo; para enviarse a sí mismo. Sin embargo, esta responsabilidad debería ser delegada en un objeto cuya labor sea enviar.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$user1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Asier&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$user2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Thor&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// componemos el mensaje
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$message&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$user1&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$message&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$user2&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// enviamos el mensaje mediante un Sender
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SMSSender&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$message&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;EmailSender&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$message&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como vemos en el código anterior, la primera ventaja de separar en responsabilidades nuestro código reside en que podemos tener flexibilidad a la hora de trabajar con nuestros mensajes sin cambiar el código de las clases que los representan.&lt;/p&gt;
&lt;p&gt;En un principio quizás hayamos definido que nuestros mensajes se enviasen por email, pero si quisiéramos enviar por otros medios, deberíamos hacer cambios en nuestra clase Mensaje para poder implementar cambios en este sentido.&lt;/p&gt;
&lt;p&gt;En muchas ocasiones, el aplicar estas modificaciones a las clases para poder mantener responsabilidades que no son las suyas las hacen magnéticas a más responsabilidades.&lt;/p&gt;
&lt;p&gt;Por ejemplo si seguimos la estrategia de mantener responsabilidades en la clase Mensaje, esta podría también ser susceptible de implementar el método &amp;ldquo;save&amp;rdquo;, para guardar el mensaje en base de datos. O el método &amp;ldquo;print&amp;rdquo; para imprimirlo. Sin embargo, el otorgar de estas responsabilidades a la clase Message, conllevaría saltarse este patrón corriendo el peligro de limitar la flexibilidad, propiciar la aparición de código redundante a futuro (por ejemplo: necesidad de implementar métodos &amp;ldquo;save&amp;rdquo; o &amp;ldquo;send&amp;rdquo; en diferentes clases que no tienen ninguna base común entre ellas, utilizando la herencia de forma incorrecta con clases abstractas) y aumentar el coste de mantenimiento de nuestro software.&lt;/p&gt;
&lt;h3 id="open-close"&gt;Open-close&lt;/h3&gt;
&lt;p&gt;El principio abierto-cerrado es para mí una de las lecciones más importantes que he aprendido como desarrollador de software.&lt;/p&gt;
&lt;p&gt;El objetivo a conseguir es hacer extensible tu código sin tener que modificarlo.&lt;/p&gt;
&lt;p&gt;Pongamos el siguiente ejemplo que no respeta este principio:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SenderFactory&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sms&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SmsSender&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;email&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;EmailSender&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$factory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SenderFactory&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$factory&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sms&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$message&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En esta típica clase de Factoría, tenemos un Switch/Case para crear cada uno de los Sender a los que dará soporte. Si quisiéramos añadir un nuevo tipo de Sender, deberíamos añadir otro case más para el mismo, teniendo que modificar la clase por cada extensión.&lt;/p&gt;
&lt;p&gt;Para conseguir respetar el principio Abierto-Cerrado, deberíamos seguir los siguientes pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crear una interfaz para los objeto Sender&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;SenderInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Crear un sistema para poder añadir de forma externa las diferentes implementaciones de Senders en la factoría. Un ejemplo simplificado (no utilizar en producción):&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SenderFactory&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nv"&gt;$_senders&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;isset&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;_senders&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;_senders&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;thrown&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;there is any sender for &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;addSender&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$senderClass&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;_senders&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$sender&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;De esta forma podríamos añadir de forma externa sin preocuparnos de tener que tocar el código de la factoría:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$senderFactory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SenderFactory&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$senderFactory&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;addSender&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sms&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;SmsSender&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$senderFactory&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;addSender&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;email&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;EmailSender&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$senderFactory&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sms&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$sender&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$message&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="liscov-sustitution"&gt;Liscov sustitution&lt;/h3&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Bárbara Liskov&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;p&gt;El principio de sustitución de Liscov es uno de los que más frecuentemente se suelen saltar.&lt;/p&gt;
&lt;p&gt;Básicamente lo que dicta es que si una clase hereda de otra, el funcionamiento de la aplicación no debería verse afectado si esta es sustituida por su clase padre.&lt;/p&gt;
&lt;p&gt;Esto también relativo a las interfaces. Si una clase que implementa una interfaz es sustituida por otra que implementa esa interfaz, el comportamiento no debería verse afectado.&lt;/p&gt;
&lt;p&gt;Esto conlleva varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los métodos públicos de la clase hija y padre deberían ser exactamente los mismos&lt;/li&gt;
&lt;li&gt;Los métodos deberían devolver los mismos tipos de datos&lt;/li&gt;
&lt;li&gt;Lo que se exprese en un método abstracto o no, en la clase padre o la interfaz, debería ser lo que este método realice, sin sorpresas extrañas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un ejemplo sobre este último punto: si tenemos esta interfaz&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;SenderFactoryInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;addSender&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;SenderInterface&lt;/span&gt; &lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Esperamos que las clases que implementen la SenderFactoryInterface puedan crear un Sender que hayamos cargado en la misma.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SenderFactory&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;SenderFactoryInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createFromProtocol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;checkIfMeetsSomeCondition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$protocol&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;thrown&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Exception&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Protocol not supported&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;....&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En este ejemplo vemos que hay una condición interna en el método createFromProtocol que decide si funcionar o no con un tipo de protocolo. Esto viola el principio de sustitución de Liscov ya que otra clase que implemente SenderFactoryInterface no tiene por qué contemplar esa condición y esto puede derivar en inestabilidad del sistema al cambiar de SenderFactory.&lt;/p&gt;
&lt;p&gt;La idea como conclusión es que debe respetarse lo que define una interfaz o una clase padre, sin añadir ni exponer funcionalidad adicional que esté fuera esa definición.&lt;/p&gt;
&lt;h3 id="interface-segregation"&gt;Interface segregation&lt;/h3&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Robert Martin&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;p&gt;Al seguir el principio de Segregación de interfaces debemos asegurarnos de que una dependencia que inyectemos en una clase no muestre métodos que no se necesiten o no tengan sentido para lo que pretendemos hacer.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si tenemos una interfaz que define cómo podemos extraer y guardar datos de un sistema de almacenamiento:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;StorageManagerInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getItems&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;EntityInterface&lt;/span&gt; &lt;span class="nv"&gt;$item&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y tenemos una clase que necesite leer datos de ese sistema para imprimirlos:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PrintService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printLines&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;StorageManagerInterface&lt;/span&gt; &lt;span class="nv"&gt;$storage&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dentro del método printLines no nos interesa guardar nada en el sistema de almacenamiento. De hecho, sería peligroso hacerlo en ese método, ya que se supone que no vamos a hacer ninguna manipulación, sólo deberíamos imprimir los datos que nos traigamos del sistema de almacenamiento.&lt;/p&gt;
&lt;p&gt;Para no saltarnos el principio de Segregación de interfaces, deberíamos separar las operaciones de lectura y escritura en dos interfaces distintas. Si por alguna razón necesitásemos ambas operaciones en alguna clase, podríamos tener otra interfaz que implemente dichas interfaces.&lt;/p&gt;
&lt;p&gt;Nuestro PrintService ahora ya tiene únicamente los métodos que necesita como vemos en el siguiente ejemplo.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;StorageReaderInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getItems&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;StorageeWriterInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;EntityInterface&lt;/span&gt; &lt;span class="nv"&gt;$entity&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;StorageManagerInterface&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;StorageReaderInterface&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;StorageWriterInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PrintService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printLines&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;StorageReaderInterface&lt;/span&gt; &lt;span class="nv"&gt;$storage&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="dependency-inversion"&gt;Dependency inversion&lt;/h3&gt;
&lt;p&gt;La idea de la inversión de dependencias es que nuestro código dependa siempre de abstracciones, no de clases concretas.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// incorrecto
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;NotificationService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;EmailSender&lt;/span&gt; &lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// correcto
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;NotificationService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;SenderInterface&lt;/span&gt; &lt;span class="nv"&gt;$sender&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En el ejemplo superior vemos cómo respetar este principio y que al inyectar la interfaz SenderInterface, le damos más flexibilidad pudiendo cambiar en un futuro el tipo de Sender sin tener que modificar el código.&lt;/p&gt;
&lt;p&gt;Sin embargo, pasar una interfaz no es lo único recomendable. Suele ser habitual que utilicemos interfaces de un framework que utilicemos para desarrollar nuestro código.&lt;/p&gt;
&lt;p&gt;Esto nos genera una dependencia con el framework, lo cual puede ser un problema si luego queremos reutilizar código separándolo en un paquete independiente.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LoggerService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Framework\EventDispatcherInterface&lt;/span&gt; &lt;span class="nv"&gt;$dispatcher&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lo ideal sería crear nuestra propia interfaz e implementarla en una clase que haga uso de la interfaz que nos provee el framework. Esto nos permite cambiar en un futuro de framework sin que nuestro código se vea afectado.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FrameworkEventDispatcher&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;EventDispatcherInterface&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Framework\EventDispatcherInterface&lt;/span&gt; &lt;span class="nv"&gt;$dispatcher&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LoggerService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;EventDispatcherInterface&lt;/span&gt; &lt;span class="nv"&gt;$dispatcher&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$logger&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;LoggerService&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;FrameworkEventDispatcher&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="conclusión"&gt;Conclusión&lt;/h3&gt;
&lt;p&gt;Los principios SOLID nos permiten diseñar nuestro software para que después de evolucionarlo y mantenerlo durante años no se convierta en una mala partida de Tetris.&lt;/p&gt;
&lt;p&gt;Si tenemos la mente abierta incluso podemos aplicarlos fuera del código o incluso del mundo del software, en otras disciplinas y artes creativas.&lt;/p&gt;</content:encoded></item><item><title>Cambio de mochila</title><link>https://blog.asiermarques.com/2018/cambio-de-mochila/</link><pubDate>Sun, 22 Apr 2018 16:08:31 +0000</pubDate><guid>https://blog.asiermarques.com/2018/cambio-de-mochila/</guid><content:encoded>&lt;p&gt;Tengo una especie de ritual cada vez que cambio de etapa profesional y consiste en cambiar también de mochila. No se trata de algo metafórico, literalmente cambio la mochila en la que suelo llevar el portátil.&lt;/p&gt;
&lt;p&gt;Este año he elegido cambiar de mochila. Es la tercera vez que lo hago. Después de diez años como autónomo, tres empresas creadas y siete años trabajando en remoto, desde Febrero he comenzado una nueva etapa profesional.&lt;/p&gt;
&lt;p&gt;A final del verano del año pasado tomé la decisión de apostar por el cambio y ha sido interesante el participar en procesos de selección de varias empresas, algunas no españolas.&lt;/p&gt;
&lt;p&gt;Vivimos en un momento increíble en el que trabajar como desarrolladores de software. Las empresas están cambiando hacia modelos más eficientes, distanciándose de formas de trabajar obsoletas que van radicalmente en contra de modelos actuales como el trabajo en remoto con equipos distribuidos y la mejora continua.&lt;/p&gt;
&lt;p&gt;Buscaba ser partícipe aportando a este cambio y también, afrontar retos tecnológicos realmente ambiciosos. Y actualmente los estoy encontrando en &lt;a href="https://www.versia.com/"&gt;Versia&lt;/a&gt;, como responsable del área de arquitectura de software.&lt;/p&gt;
&lt;p&gt;No puedo decir que este cambio sea sencillo, pero tampoco es que estuviese acostumbrado a cosas sencillas. Pasar de trabajar desde un pueblo en mitad de viñedos en La Rioja a una oficina con doscientas personas desarrollando software está siendo un reto de adaptación bastante interesante.&lt;/p&gt;
&lt;p&gt;Este año he empezado también a mentorizar tanto a nivel de desarrollo como a nivel de gestión de producto. No lo había hecho en serio hasta la fecha, pero es muy enriquecedor.&lt;/p&gt;
&lt;p&gt;Debo mencionar que también he cambiado en la forma en la que veo a la comunidad de desarrollo de software en España.&lt;/p&gt;
&lt;p&gt;Cada vez conozco a más desarrolladores con ganas de trabajar mejor y preocupados no sólo por adquirir conocimiento en herramientas tecnológicas sino también en mejorar de forma sincera sus soft-skills a nivel emocional. Y al margen de sueldos, estos perfiles no aceptan trabajar de cualquier forma.&lt;/p&gt;
&lt;p&gt;Esto fuerza a que las empresas españolas deban espabilar para conseguir y retener talento. Otras empresas de fuera de España que se están afincando en Barcelona y el sur de España están viendo una oportunidad en esto y se empieza a notar en la comunidad, lo cual creo que es algo positivo.&lt;/p&gt;
&lt;p&gt;Sin embargo también veo más postureo de buenrollismo y charlas orientadas a currículum. Me faltan charlas fuera de palabras clave actuales, más relacionadas con producto desde la experiencia real, refactoring de proyectos legacy críticos&amp;hellip; y también me falta escuchar a más personas que normalmente no suelen estar tanto en el radar.&lt;/p&gt;
&lt;p&gt;Y en este sentido, esperamos también aportar desde &lt;a href="http://elcomite.net"&gt;elComité&lt;/a&gt; nuestro granito de arena. Desde hace un año estamos trabajando en este sentido y nos gusta también hacerlo en compañía de otras comunidades, fuera incluso de Euskadi.&lt;/p&gt;
&lt;p&gt;De momento, esto es todo. Llevaba tiempo sin escribir en el blog, en parte por la duda de si este tipo de entradas aportan valor.&lt;/p&gt;
&lt;p&gt;Todo feedback es bienvenido :)&lt;/p&gt;</content:encoded></item><item><title>Cosas que he aprendido en 2016</title><link>https://blog.asiermarques.com/2016/cosas-aprendido-2016/</link><pubDate>Mon, 19 Dec 2016 14:50:33 +0000</pubDate><guid>https://blog.asiermarques.com/2016/cosas-aprendido-2016/</guid><content:encoded>&lt;p&gt;**El equilibrio lo es todo. **&lt;/p&gt;
&lt;p&gt;Es el verdadero éxito. Pero no quiero sonar como un abraza-árboles, creo que se puede tener los pies en la tierra, buena economía y satisfacer tus necesidades creativas. &lt;a href="https://sivers.org/balance"&gt;Esta misma semana Derek Sivers ha escrito sobre el tema&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Con salud y conocimiento, tú pones las reglas de cómo vas vivir.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Y relacionado&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si algo es demasiado difícil puede ser un síntoma de que lo estás haciendo mal.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Que algo te resulte demasiado difícil durante un periodo largo de tiempo, es un síntoma de que posiblemente estés obcecado en hacerlo de una forma enrevesada y haya un camino más fácil o puede que otro momento más adecuado.&lt;/p&gt;
&lt;p&gt;**Actualmente, para hacer funcionar un negocio SaaS (Software como servicio) necesitas un canal de venta. **&lt;/p&gt;
&lt;p&gt;Sin un canal de venta, vas a tener únicamente un producto SaaS difícil de vender.&lt;/p&gt;
&lt;p&gt;No obstante, aunque vendas poco, puede ser factible alcanzar tu objetivo si este es simplemente conseguir una vía adicional de ingresos recurrentes en lugar de buscar crecer exponencialmente como quien buscó &lt;a href="https://es.wikipedia.org/wiki/El_Dorado"&gt;El Dorado&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pero hay que saber qué es lo que quieres y si quieres un negocio que crezca, necesitas un canal de venta sí o si.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las personas que viven, cambian.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Y hay momentos en los que puedes encontrarte (de verdad) con personas que ya estaban a tu lado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Todo el que hace, merece respeto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nada más que añadir.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La constancia es la mejor aptitud.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La constancia hace que las cosas se hagan y crezcan. Y que las personas que la aplican, crezcan también.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Twitter mola, si eliminas todo el input negativo.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mi relación amor odio con Twitter ha llegado a su fin. He aceptado que ya no se puede usar como lo usábamos en el 2007 y he tomado la decisión de hacer unfollow a toda persona que era constante en expresar negatividad.&lt;/p&gt;
&lt;p&gt;No me malinterpretéis, no me gusta la falsa positividad, de hecho la aborrezco y creo que es la raíz del odioso postureo actual. Sin embargo, creo que entrar a Twitter a aportar negatividad, quejas o cosas similares exclusivamente es lo fácil, sobre todo si no van acompañados de autocrítica.&lt;/p&gt;
&lt;p&gt;En ese sentido me gusta más instagram y me resulta curioso ver que personas que se quejaban continuamente de todo en Twitter, en instagram parecen felices. Que sea real o no, es su problema, pero no me apetece estar en un canal para consumir mal rollo.&lt;/p&gt;
&lt;p&gt;Yo he pecado de esto también e intento no caer en ello. Obviamente esta es simplemente mi opinión.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;El feminismo es lo más importante que debes respetar como ser humano en estos momentos.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sobre todo si no estás a gusto cuando ves actitudes claramente machistas o crees que el feminismo es una palabra mal elegida, es importante (y enriquecedor) abrir la mente y leer sobre el tema.&lt;/p&gt;
&lt;p&gt;Probablemente te hayas encontrado con postureo (en Twitter), con quien escribe barbaridades (sin poner su nombre real) para provocar a quien no está en su misma línea de pensamiento, con quien se fustiga (en Twitter) por ser hombre, con quien lo mezcla con otros temas como política, veganismo etc. y con quien sube vídeos diciendo gilipolleces como que los &amp;ldquo;&lt;a href="https://www.google.es/webhp?hl=es#hl=es&amp;amp;q=los+feministas+follan+mejor"&gt;feministas follan mejor&lt;/a&gt;&amp;rdquo; o &amp;ldquo;&lt;a href="https://www.youtube.com/watch?v=3x2ehw7rdNU&amp;amp;t=10m26s"&gt;tienen más sexo&lt;/a&gt;&amp;rdquo;. Yo he visto las cosas de forma distinta cuando he empezado a ignorar todo esto.&lt;/p&gt;
&lt;p&gt;Existe literatura escrita sobre el tema, pero para mí lo más interesante ha sido el conocer e investigar figuras femeninas que han hecho cosas relevantes a lo largo de la historia(relacionadas o no con el feminismo) y fueron obviadas totalmente e incluso asesinadas miserablemente.&lt;/p&gt;
&lt;p&gt;También hablar con mujeres de todo tipo sobre su visión de este tema te va a aportar cosas que igual todavía no ves de forma clara. Poco a poco vas a entender realmente que nos han educado según una cultura con base fuertemente católica que no respetaba la igualdad y empezarás a ver más cosas sutiles en tu día a día que no te van a gustar, con las que no estás cómodo, al igual que no te gusta ni estás cómodo con el machismo más evidente.&lt;/p&gt;
&lt;p&gt;Aunque hay quien es agresivo a la hora de hablar este tema, en mi opinión no tienes por qué estar de acuerdo con todas las opiniones sobre el mismo, pero el que abras los ojos es importante para que el mundo sea mejor y seamos mejores como sociedad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;YouTube es un canal muy potente e interesante.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La verdad es que una cosa que este año he investigado y me resulta bastante interesante, hay contenido muy bueno si lo sabes buscar y tengo previsto hacer pruebas con este canal durante el año que viene.&lt;/p&gt;</content:encoded></item><item><title>Trabajar en remoto</title><link>https://blog.asiermarques.com/2016/trabajar-en-remoto/</link><pubDate>Mon, 20 Jun 2016 00:28:16 +0000</pubDate><guid>https://blog.asiermarques.com/2016/trabajar-en-remoto/</guid><content:encoded>&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/10748111_1534441890135825_555708309_n-e1466380886787.jpg" alt="10748111_1534441890135825_555708309_n"&gt;&lt;/p&gt;
&lt;p&gt;Hace unas semanas leí un genial artículo de &lt;a href="http://jurgenappelo.com/"&gt;Jurgen Appelo&lt;/a&gt; que llevaba el título &amp;ldquo;&lt;a href="https://www.linkedin.com/pulse/stop-remote-working-jurgen-appelo"&gt;Stop remote working&lt;/a&gt;&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En dicho artículo el autor defiende la idea de que a veces se dice que decimos que trabajamos en remoto, como si estuviésemos trabajando en un sitio diferente al que deberíamos trabajar. Y es que si podemos trabajar desde cualquier lugar con conexión a Internet y visado, &lt;strong&gt;el mundo entero debería ser nuestra oficina&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Estamos hartos de escuchar el término &amp;ldquo;nómada digital&amp;rdquo; como si fuese una doctrina a seguir, pero realmente esto es solo una elección en la forma en la que trabajas. No necesitas ser un nómada, ni trabajar en remoto pero si quieres, puedes hacerlo.&lt;/p&gt;
&lt;p&gt;De hecho hay personas que no quieren trabajar en remoto. Muchas personas valoran el ir a una oficina y ver cada día a las personas con las que trabaja en equipo. Esto es muy respetable y de hecho comprensible, es muy importante ver físicamente a las personas con las que trabajas. Comentaré más adelante en detalle sobre esto.&lt;/p&gt;
&lt;p&gt;También hay personas que no están preparadas para hacerlo. Yo mismo no lo estaba la primera vez que estuve trabajando como empleado en remoto y también como autónomo. Tuve que aprender con el tiempo, sufriendo las consecuencias de malas prácticas en cuanto horarios, elección de clientes/proyectos y comunicación.&lt;/p&gt;
&lt;p&gt;Valoro mucho haber pasado por la experiencia ya que con la misma he conseguido finalmente tener control sobre mi vida mejorando como profesional y también como persona.&lt;/p&gt;
&lt;p&gt;Esta experiencia también me ha hecho fijarme en otras aptitudes distintas a las técnicas y más cercanas a las personales cuando elijo con quién quiero trabajar, ya sean clientes, proveedores, socios o colaboradores.&lt;/p&gt;
&lt;p&gt;En los últimos años he trabajado con muchos clientes, incluso con reticentes a trabajar en remoto. Es cierto que aún queda mucho para que sea lo normal no solo en España, sino en todo el mundo. Creo que esta reticencia es algo cultural y de hecho, la cultura de la propia empresa ha de adaptarse poco a poco a este cambio.&lt;/p&gt;
&lt;p&gt;Cuando trabajamos de esta forma, desde fuera muchas veces pareciese que estemos totalmente solos. Que estuviésemos inmersos en una clase de burbuja-locura que de un momento a otro nos vaya a provocar una especie de &amp;ldquo;fiebre de la cabaña&amp;rdquo;, como a Jack Torrance en El Resplandor.&lt;/p&gt;
&lt;p&gt;Pero la realidad es que lejos de trabajar solos, tenemos un ecosistema virtual montado en el que pasan muchas cosas cada día. Estamos en constante comunicación con profesionales de diferentes culturas y países, resolvemos varios problemas a lo largo de la jornada y todo ello sin dejar enfriar el café.&lt;/p&gt;
&lt;p&gt;Voy a centrarme en explicar mi punto de vista sobre algunas de las cosas que más me suelen preguntar sobre este tema y después os presentaré un proyecto en el que hemos estado trabajando &lt;a href="http://twitter.com/arketipo"&gt;Diego Rodriguez&lt;/a&gt; y yo en las últimas semanas con el objetivo de que si quieres, puedas &lt;strong&gt;trabajar en una ciudad distinta cada día&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="herramientas"&gt;Herramientas&lt;/h3&gt;
&lt;p&gt;Creo que nunca hemos tenido tantas opciones y herramientas que faciliten la comunicación entre los miembros de un equipo. Tenemos Slack, Trello, Evernote, Basecamp, Telegram y un largo etcétera de opciones con app móvil multiplataforma y mensajería IM. Incluso tenemos teléfono.&lt;/p&gt;
&lt;p&gt;Pero el problema no está en la herramienta, sino en la comunicación. Existiendo comunicación, puede servir perfectamente un archivo de texto plano compartido por dropbox.&lt;/p&gt;
&lt;p&gt;Dicho esto, personalmente prefiero Evernote o Slack junto a Skype o appear.in, pero hay miles de opciones más.&lt;/p&gt;
&lt;h3 id="comunicación"&gt;Comunicación&lt;/h3&gt;
&lt;p&gt;Es clave que la gente con la que trabajes sepa comunicar bien, tanto por escrito como por audio. Esto también incluye clientes y proveedores.&lt;/p&gt;
&lt;p&gt;La comunicación es algo caro en dinero, en tiempo y a veces, también en salud.&lt;/p&gt;
&lt;p&gt;Para mí comunicar bien se puede resumir en lo siguientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No mentir&lt;/li&gt;
&lt;li&gt;Si hay algún problema, necesitas ayuda o hay algo que no sabes hacer, decirlo cuanto antes.&lt;/li&gt;
&lt;li&gt;Si utilizas la ironía o eres &amp;ldquo;gracioso&amp;rdquo;, tener en cuenta la cultura del receptor, que puede no estar acostumbrado a tus bromas. Especialmente si no le estás viendo la cara.&lt;/li&gt;
&lt;li&gt;Si no se entiende algo, preguntar, aunque sea quinientas veces.&lt;/li&gt;
&lt;li&gt;No divagar e ir al grano cuando se está discutiendo algo en concreto.&lt;/li&gt;
&lt;li&gt;Y lo más importante, no guardar silencio durante días por verse saturado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sensación-de-avance"&gt;Sensación de avance&lt;/h3&gt;
&lt;p&gt;Este es el punto en el que más insisto cuando trabajo con más gente en remoto, y va muy unido al tema de la comunicación.&lt;/p&gt;
&lt;p&gt;Lejos de buscar tener un control obsesivo de cada parte del proyecto, considero importante compartir y actualizar todas las tareas en las que el equipo está trabajando, indicando quién está encargándose de cada una. También es importante ver cuáles se han completado.&lt;/p&gt;
&lt;p&gt;Que cada miembro del equipo vea que se están haciendo cosas y quién está haciendo qué, creo que es lo más importante para tener motivación y la sensación de que el barco está realmente en ruta avanzando hacia algún sitio .&lt;/p&gt;
&lt;p&gt;En metodologías ágiles existe el concepto de &amp;ldquo;&lt;a href="https://proyectosagiles.org/reunion-diaria-de-sincronizacion-scrum-daily-meeting/"&gt;daily&lt;/a&gt;&amp;rdquo;, una reunión breve en la que el grupo se reúne diez minutos cada día para ver lo que se ha hecho, lo que se va a hacer y si hay algún problema a solucionar.&lt;/p&gt;
&lt;p&gt;En algunas ocasiones, no es posible reunirse cada día, pero sí que veo crítico hablar cada semana al menos.&lt;/p&gt;
&lt;p&gt;Aunque trabajemos en remoto, también es importante verse en persona cada cierto tiempo. Por muy acostumbrado que estés trabajando solo, nada te carga más las pilas y te da la sensación de estar realmente en un equipo que el ver físicamente a las personas con las que trabajas día a día. No solo para firmar en una notaría cosas o discutir sobre cómo implementar una funcionalidad, sino también para recordar batallitas compartiendo unas cervezas.&lt;/p&gt;
&lt;h3 id="horarios"&gt;Horarios&lt;/h3&gt;
&lt;p&gt;Realmente esto es lo que menos me preocupa cuando trabajo con más gente en remoto.&lt;/p&gt;
&lt;p&gt;Aunque viene siempre bien una ventana de al menos una hora en la que coincidamos, tampoco es algo relevante para mí si hay buena comunicación por escrito.&lt;/p&gt;
&lt;p&gt;Como nota personal y aunque sea tentador, si que recomiendo no trabajar de noche. Es genial no tener interrupciones telefónicas o de otro tipo, pero también tu vida social puede verse tocada, siendo muy fácil caer en una rutina en la que pasen días sin que hables con otras personas.&lt;/p&gt;
&lt;p&gt;Cuando tengo que realizar labores que me exijan foco o creatividad como por ejemplo programar o diseñar, he aprendido que es mejor tener horarios para responder mensajes de email, llamadas o de mensajería y respetarlos rigurosamente antes que quedarse toda una noche programando.&lt;/p&gt;
&lt;h3 id="lugares-y-personas"&gt;Lugares y personas&lt;/h3&gt;
&lt;p&gt;Yo no soy nómada. Aunque me suelo mover bastante, por lo general suelo estar trabajando y viviendo de continuo en una ciudad determinada y luego cambio al cabo de un par de años. Me gusta esta libertad y seguramente en algún punto de mi vida decida quedarme en una ciudad ya &amp;ldquo;para siempre&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Normalmente si no vivo con nadie más, suelo acondicionar parte de mi casa como si fuese una oficina y trabajar allí en los horarios que me haya puesto ese día. Quizás vaya a alguna cafetería alguna mañana, aprovecho para quedar con alguien y matar alguna tarea desde allí antes de que llegue.&lt;/p&gt;
&lt;p&gt;Si vivo con alguien más, entonces suelo buscar con quien compartir oficina o algún coworking en el que haya un mínimo de vida, aunque prefiero lo primero. Si vivo con más gente me resulta muy complicado trabajar en casa, a menos que esa persona no esté en casa durante mi horario de trabajo.&lt;/p&gt;
&lt;p&gt;Independientemente del lugar en el que trabaje en mi ciudad/pueblo &amp;ldquo;base&amp;rdquo;, sí que me gusta viajar puntualmente y moverme a otras localidades, trabajando durante unos cuantos días o incluso una semana desde las mismos.&lt;/p&gt;
&lt;p&gt;Personalmente este cambio de contexto me carga mucho las pilas, ya que no solo conozco ciudades o pueblos que de otra forma igual no visitaría en modo turista, sino que puedo conocer a nivel profesional personas que están trabajando día a día en ellas, organizando comunidades y otro tipo de iniciativas interesantes.&lt;/p&gt;
&lt;p&gt;Esta experiencia es un tipo de &lt;a href="http://www.urbandictionary.com/define.php?term=Workation"&gt;workation&lt;/a&gt; forzada y fiel a la definición del término, suele ser muy productiva tanto a nivel de trabajo como a nivel personal.&lt;/p&gt;
&lt;h3 id="por-qué-hemos-creado-rentmydeskcom"&gt;Por qué hemos creado &lt;a href="http://rentmydesk.com/"&gt;rentmydesk.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Tanto Diego como yo creemos que herramientas tipo linkedin cojean en la parte de conectar realmente a las personas en el mundo real y esto es algo muy importante en RentMyDesk.&lt;/p&gt;
&lt;p&gt;Para las empresas cada vez es más importante conseguir captar talento para sus equipos, buenos proveedores (diseñadores, traductores, programadores, escritores&amp;hellip;) y también obviamente, clientes. Con una herramienta así pueden recibir visitas de personas que cumplen con sus criterios viéndolas trabajar desde su misma oficina y compartir puntos de vistas profesionales.&lt;/p&gt;
&lt;p&gt;Por otro lado, los freelances y otros profesionales acostumbrados a trabajar en remoto, pueden organizarse viajes a ciudades que quieran visitar, conociendo, trabajando y compartiendo cafés con personas y empresas que están haciendo cosas en esos lugares. También es una buena alternativa a trabajar en el aeropuerto mientras esperas a tu vuelo con un café de discutible calidad.&lt;/p&gt;
&lt;p&gt;Ya tenemos un MVP desarrollado en beta privada. Si tienes un hueco en tu oficina y te apetece rentabilizarlo o atraer talento, ponte en contacto con nosotros. El servicio es totalmente gratuito.&lt;/p&gt;</content:encoded></item><item><title>El buen desarrollador de software</title><link>https://blog.asiermarques.com/2016/buen-desarrollador-software/</link><pubDate>Sun, 05 Jun 2016 21:56:19 +0000</pubDate><guid>https://blog.asiermarques.com/2016/buen-desarrollador-software/</guid><content:encoded>&lt;p&gt;&lt;img src="https://blog.asiermarques.com/media/Strip-Faire-payer-la-formation-650-finalenglish-1-1.jpg" alt="Strip-Faire-payer-la-formation-650-finalenglish-1 (1)"&gt;&lt;/p&gt;
&lt;p&gt;Llevo un tiempo pensando en lo que es para mí ser un buen desarrollador de software y los puntos que nos pueden hacer ser justo lo contrario.&lt;/p&gt;
&lt;p&gt;Desde hace bastantes años trabajo y comparto proyectos con un número variado de profesionales, bien personas o agencias a las que delego trabajo o bien que me lo delegan ellos a mí. Este texto se basa en esta experiencia.&lt;/p&gt;
&lt;p&gt;Por otro lado debo decir que, algunas de las cosas &amp;ldquo;malas&amp;rdquo; que destaco en este texto no solo las he visto en otros profesionales, sino que también las he visto en mí mismo cuando empezaba bastantes años atrás o al cometer errores a lo largo de mi carrera profesional.&lt;/p&gt;
&lt;p&gt;Por lo tanto es una visión muy personal de nuestro mundo y no pretendo tener la razón absoluta. Los comentarios siempre se agradecen.&lt;/p&gt;
&lt;h4 id="no-tener-una-actitud-de-gilipollas"&gt;No tener una actitud de gilipollas&lt;/h4&gt;
&lt;p&gt;Somos unos privilegiados al dedicarnos a desarrollar software en estos momentos. Podemos asegurar que no hay paro en nuestro sector y que siendo inquietos, actualizándonos y currándonoslo un poco podemos trabajar desde prácticamente cualquier sitio del planeta (siempre que tengamos visado y conexión a Internet).&lt;/p&gt;
&lt;p&gt;Es posible que en un futuro esto cambie y que mucho del trabajo o tipo de proyectos que estamos realizando en estos momentos se podrán sustituir por APIs o servicios cloud. Pero el presente es el que es y se puede vivir genial desarrollando software.&lt;/p&gt;
&lt;p&gt;Pero este privilegio no nos da derecho a comportarnos como cretinos. Chantajeando a quien nos contrata o criticando en público a quien oferta porque en Londres cobrarías en triple y te irían a buscar a casa en un taxi de esos negros molones. Hablaré de este tema más en detalle más adelante en esta misma entrada.&lt;/p&gt;
&lt;p&gt;Dominar el framework javascript de moda no te da derecho a ir por la vida con la actitud de un &lt;a href="http://www.imdb.com/title/tt0412142/"&gt;House&lt;/a&gt; desarrollador de software. House era un payaso pero al menos salvaba vidas (en la ficción).&lt;/p&gt;
&lt;h4 id="mejor-un-trabajador-responsable-que-un-ninja"&gt;Mejor un trabajador responsable que un ninja&lt;/h4&gt;
&lt;p&gt;Puedes cambiar el término &amp;ldquo;ninja&amp;rdquo; por lo que desees, incluidas siglas de certificaciones oficiales.&lt;/p&gt;
&lt;p&gt;Al final de lo que se trata es de sacar trabajo adelante. Y de poco sirven las charlas que hayas dado, los tags que uses en Twitter o las pegatinas que tengas en tu Mac.&lt;/p&gt;
&lt;p&gt;Tener capacidad de respuesta es algo muy valioso en un desarrollador para mí, mucho más importante que sus títulos o marca personal.&lt;/p&gt;
&lt;p&gt;Es muy habitual la decepción que puedes llevarte al comprobar como una persona que es rockstar en Twitter u otros escenarios, desaparece en mitad de un proyecto para finalmente salir del mismo porque se ha visto saturado o simplemente no le gusta que se use una tecnología o herramienta X. Me parecen actitudes de chavales de catorce años. Sin ánimo de ofender a los chavales de catorce años.&lt;/p&gt;
&lt;p&gt;Al final lo que se desea es tener en tu equipo gente con la que puedas contar. Puede que no controlen a un nivel brutal la última versión de Angular o hayan participado en un proyecto de gran tráfico o que hayan escrito libros sobre la última librería javascript de moda que dentro de dos años no utilizará nadie, pero es que la mayoría de las ocasiones tampoco hace falta.&lt;/p&gt;
&lt;p&gt;Lo que sí hace falta son profesionales responsables que acaben el trabajo de forma correcta y sin tonterías.&lt;/p&gt;
&lt;h4 id="comunicación"&gt;Comunicación&lt;/h4&gt;
&lt;p&gt;La comunicación es otro valor clave.&lt;/p&gt;
&lt;p&gt;A todos nos surgen imprevistos, nos equivocamos o puede que pase algo fuera de nuestro control que nos impida hacer nuestro trabajo. Comunicar cuanto antes cualquier imprevisto ayuda a poder resolver la situación, callarse siempre es una mala opción.&lt;/p&gt;
&lt;p&gt;Lo mismo que si una frase o acto de otra persona en el equipo te sienta mal o no estás motivado por algún problema.&lt;/p&gt;
&lt;p&gt;Personalmente valoro mucho quien sabe comunicarse cuando las cosas van mal o hay presión en un proyecto. El coste de comunicación es un precio muy alto que se puede pagar al trabajar con un equipo o una persona equivocados.&lt;/p&gt;
&lt;p&gt;Saber comunicar correctamente tus ideas cuando trabajas en equipo, escribir bien y expresarte bien es una habilidad que en mi opinión nos hace mejores desarrolladores.&lt;/p&gt;
&lt;p&gt;Esto me parece especialmente importante cuando se trabaja en remoto. Cuando no ves la cara del otro ni escuchar su voz, el texto lo es todo. Es crítico en estos contextos cuidar mucho cómo escribimos.&lt;/p&gt;
&lt;p&gt;Comunicar también es escuchar.&lt;/p&gt;
&lt;p&gt;Algunos podemos tener carácter, prejuicios por falta de perspectiva o simple cabezonería, somos humanos. Muchas veces incluso teniendo experiencia caemos en estas cosas. Y muchas veces, debatimos con ímpetu aun estando equivocados.&lt;/p&gt;
&lt;p&gt;Creo que tanto si eres el que argumenta estando o no equivocado como si eres el receptor, debes escuchar lo que esa persona te está diciendo, sobre todo si tiene experiencia. Las lecciones más valiosas las aprendemos cuando estamos equivocados y cuando nos argumentan el por qué. Y son doblemente valiosas cuando el/la que nos alecciona tiene menos experiencia que nosotros.&lt;/p&gt;
&lt;p&gt;Y aunque en ese momento no lo veamos, sin duda quedará en nuestra mente y será un recurso muy valioso cuando toque darse cuenta de nuestro error.&lt;/p&gt;
&lt;h4 id="pragmatismo-vs-curriculum-oriented-development"&gt;Pragmatismo VS curriculum oriented development&lt;/h4&gt;
&lt;p&gt;No es &amp;ldquo;sexy&amp;rdquo; (y madre mía con lo de &amp;ldquo;sexy&amp;rdquo; para hablar de frameworks y lenguajes&amp;hellip;) desarrollar una API REST en php y mysql, teniendo Go, lenguajes como Erlang y OTP que existen desde los 80 pero que las hemos descubierto hace cuatro años o bases de datos como MongoDB que &amp;ldquo;escalan&amp;rdquo;, &amp;ldquo;son rápidas&amp;rdquo; (porque sí y ya está) y que las usan en esa empresa que tiene un &amp;ldquo;CEOfounder&amp;rdquo; de 24 años.&lt;/p&gt;
&lt;p&gt;Estás desarrollando un producto y lo que importa es el valor. Entregar el máximo valor, con la calidad mínima necesaria consumiendo la menor cantidad de recursos de tiempo y dinero.&lt;/p&gt;
&lt;p&gt;La tecnología es algo crítico pero no es lo más importante. Son nuestras herramientas, pero ya está. Nuestro recurso más valioso es la capacidad de crear con ellas usando nuestro criterio. El dominio de las mismas es importante, entrenar con ellas es importante, pero no tan importante como el entregar y entender lo que estamos desarrollando.&lt;/p&gt;
&lt;p&gt;Creo que un desarrollador orientado a la herramienta no es un buen desarrollador, es mi opinión personal y mi opinión como cliente.&lt;/p&gt;
&lt;p&gt;Por otro lado valoro también mucho el pragmatismo.&lt;/p&gt;
&lt;p&gt;Está muy bien que la plataforma web tenga una arquitectura basada en servicios con una implementación de Inyección de dependencias muy currada y que también, se haya tenido en cuenta la separación de orígenes de datos para poder distribuir la carga entre varios frontales web, varios servidores de lectura y escritura a nivel de base de datos y las operaciones pesadas gestionadas por sistemas de colas asíncronas. Todo esto está muy bien. Pero al final si el proyecto es nuevo y va a tener un crecimiento natural, es posible que no se vaya a necesitar orquestar una arquitectura de ese tipo en seis máquinas o instancias virtuales en la nube de turno y puede que con un servidor en un hosting tradicional vayamos sobrados.&lt;/p&gt;
&lt;p&gt;No necesitamos añadir coste al cliente de mantenimiento de sistemas o coste extra de servicios cloud porque a nosotros nos ponga cachondos tener una arquitectura de las que salen en blogs como &lt;a href="http://highscalability.com/"&gt;High Scalability&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Y por último: el pasar de frameworks, ORMs y complicar el mantenimiento por trucos de rendimiento cuando no tienes este tipo de problemas, personalmente me parece condenar al proyecto a tener que reescribirse en un futuro por la cantidad de esfuerzo que puede suponer hacer cambios mínimos y el terror también de subirlos a producción.&lt;/p&gt;
&lt;h4 id="trabajando-por-cuenta-ajena-y-las-ofertas-de-trabajo"&gt;Trabajando por cuenta ajena y las ofertas de trabajo&lt;/h4&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Muchas veces me quedo atónito al escuchar las experiencias que han tenido empresarios con su equipo técnico en ciudades como Madrid, Londres o San Francisco.&lt;/p&gt;
&lt;p&gt;Cretinos sin ningún tipo de escrúpulos que hacen chantaje a sus empleadores amenazando con irse de la empresa porque han recibido en el último mes un montón de peticiones de amistad de recluiters en linkedin.&lt;/p&gt;
&lt;p&gt;Chantajes que van desde imponer el uso de una tecnología/frameworks &amp;ldquo;o se van&amp;rdquo;, irse sin avisar ni decir nada una tarde de la oficina porque tenían un partido de fútbol o simplemente porque había un evento en la oficina molona de turno de Madrid.&lt;/p&gt;
&lt;p&gt;La verdad me sorprende el aguante de sus jefes por miedo a perder &amp;ldquo;talento&amp;rdquo; o capacidad de ejecución, reteniendo un equipo tóxico a ese nivel.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Que cierre su empresa si no sabe llevarla&amp;rdquo; He llegado a leer esto cuando un empleador anuncia una oferta de trabajo por debajo de los 32000 euros anuales a un desarrollador, sin entrar a valorar su nivel.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;En Londres me pagarían X&amp;rdquo; Pues ve a Londres y disfruta de este sueldo. Es posible que al irte, la gente que contrata a programadores en este país se de cuenta del vacío que has dejado, la gente que organiza eventos deje de hacerlo porque ya no merece la pena y el mercado del desarrollo y de Internet en España se colapse. Que se jodan, por no valorar el talento que alguien que va a comisión ha visto en tus aptitudes de Linkedin.&lt;/p&gt;
&lt;p&gt;Pero desde luego yo no quiero trabajar con gente así. De hecho no quiero personas así a mi lado.&lt;/p&gt;
&lt;p&gt;Montar un negocio se ha convertido en un espectáculo en el que cualquiera puede opinar sin vivir la experiencia de hacerlo. Pero la realidad es que los ataques a empresarios que están empezando y ofrecen sueldos humildes, no mejora el mercado.&lt;/p&gt;
&lt;p&gt;Me parece muy respetable buscar el mayor sueldo posible, pero la mayoría de los lugares en los que te van a ofrecer trabajar no van a poder competir con otras empresas en eso. Y es respetable que no quieras trabajar por menos de lo que vales o creas que vales, pero montar un espectáculo en Twitter o en foros me parece bastante infantil y tóxico.&lt;/p&gt;
&lt;p&gt;Al mundo real le dan igual las pataletas y la gente realmente competente habla poco y hace más.&lt;/p&gt;
&lt;p&gt;Los programadores que realmente pueden elegir dónde trabajar lo hacen sin montar espectáculos. Si no les interesa lo que se oferta, se van a otro sitio sin montar un drama.&lt;/p&gt;
&lt;h4 id="todo-lo-demás"&gt;Todo lo demás&lt;/h4&gt;
&lt;p&gt;Y en último lugar es importante todo lo demás. Escribir buen software, mejorar como desarrollador día a día, mejorar nuestro nivel de inglés para comunicarnos y aprender de otros desarrolladores, aplicar calidad y entrega continua, autoformarnos en nuevas herramientas para que con criterio, las podamos utilizar cuando sea el momento y contexto adecuado.&lt;/p&gt;
&lt;p&gt;Personalmente, algo que últimamente me parece importante es volver a repasar conceptos y mejorar mi nivel de matemáticas. Al margen de todo el postureo relacionado con algoritmos (otra moda-pesadilla), mejorar en esto viene muy bien para comprender cómo funcionan algunos sistemas y tras años de experiencia programando se ven de otra forma los conceptos que cuando los estudiábamos no los veíamos para nada útiles. También es útil para delegar trabajo en matemáticos que se encarguen de idear los algoritmos que implementemos en nuestras aplicaciones o software.&lt;/p&gt;
&lt;p&gt;Considero también importante dominar otros campos y tener hobbies. Nos dan perspectiva, conocemos a gente distinta y salimos de nuestra zona de confort.&lt;/p&gt;
&lt;p&gt;De hecho veo importante conocer otras personas muy distintas del mundo del software, creo que nos pueden dar puntos de vista e inspiración que nos hacen mejores desarrolladores aunque no seamos plenamente conscientes de ello.&lt;/p&gt;</content:encoded></item><item><title>Reactivando El Comité para mejorar el mercado de Internet en Bilbao</title><link>https://blog.asiermarques.com/2013/reactivando-el-comite/</link><pubDate>Tue, 05 Nov 2013 20:10:19 +0000</pubDate><guid>https://blog.asiermarques.com/2013/reactivando-el-comite/</guid><content:encoded>&lt;p&gt;Para los que no lo sepáis, &lt;a href="http://elcomite.net"&gt;el comité&lt;/a&gt; (antes llamado webdevbilbao) es uno de los proyectos en los que he estado activo en los últimos dos años.&lt;/p&gt;
&lt;p&gt;Fue en el 2011 cuando empezamos a organizar un evento periódico llamado webdevbilbao el último jueves de cada mes que tras un año de actividad decidimos cambiar el nombre a El Comité, con el objetivo de que sonase menos a programación y más a hablar de tecnología en general y crear cosas en torno a Internet.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://farm8.staticflickr.com/7182/6941823356_efc1906418_z.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Hemos probado muchas fórmulas para ofrecer un punto de reunión profesional para profesionales del sector. A diferencia de otros eventos, no incluíamos marcas de empresas y el objetivo principal era crear mercado real, de empresas, autónomos y profesionales que se dedicasen a desarrollar proyectos para Internet, que los hay y de gran nivel en Bilbao.&lt;/p&gt;
&lt;p&gt;Dentro de El Comité, junto a otras empresas y marcas han salido otras iniciativas como &lt;a href="http://bilbostack.com"&gt;Bilbostack&lt;/a&gt;, El &lt;a href="http://hackmite.elcomite.org"&gt;Hackmité &lt;/a&gt;y algún &lt;a href="http://pucelatechday.com"&gt;techday &lt;/a&gt;en otras ciudades de España.&lt;/p&gt;
&lt;p&gt;Ha sido muy enriquecedor y como nos negamos a parar de hacer estas cosas, estamos unificando todas las iniciativas que hemos liderado, junto a las iniciativas de otros que se han unido a nuestra causa para crear una propuesta de valor para el mercado de desarrollo de software entorno en Internet.&lt;/p&gt;
&lt;p&gt;Nos hemos enfrentado a varios problemas interesantes durante este tiempo, algunos de los cuales puedo recoger en estos puntos:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Encontrar profesionales activos fuera de sus ocho horas de trabajo entre semana&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esto era el punto más difícil sin duda. Aunque no buscábamos cantidad, sino calidad en nuestra comunidad, nos ha sido muy difícil conseguir reunir un grupo de personas que se interesasen por iniciativas de este tipo.&lt;/p&gt;
&lt;p&gt;Afortunadamente, hemos reunido dentro de la comunidad a un montón de cracks que nos apoyan siempre que pueden y a veces contribuyen con sus conocimientos y buen hacer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Encontrar líderes que nos ayudasen con propuestas y a organizar eventos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No cobramos ni un euro por organizar los eventos y el hecho de obligarnos a organizar un evento mensual era muy agotador.&lt;/p&gt;
&lt;p&gt;Nuestra idea al principio fue que la iniciativa fuese abierta, pero a la hora de organizar era complicado exigir el compromiso de otras personas. Acabamos por conformarnos con que viniesen.&lt;/p&gt;
&lt;p&gt;Escaseaban las propuestas de charlas y a menudo, también por miedo a que no viniese una cantidad de publico aceptable cuando invitábamos a un ponente de fuera de la comunidad, teníamos que recurrir a nosotros mismos como ponentes.&lt;/p&gt;
&lt;p&gt;Teníamos que tener en cuenta si había fútbol, si llovía, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Salirnos de la imagen de evento para &amp;ldquo;frikis&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Muchos profesionales de marketing o directores de empresas incluso consideradas tecnológicas se alejaban del evento pensando que era sobre temas de programación demasiado avanzada y que no iban a entender nada.&lt;/p&gt;
&lt;p&gt;Es cierto que algunas charlas eran completamente técnicas, pero el valor muchas veces estaba en las cervezas.&lt;/p&gt;
&lt;p&gt;Sin embargo, esta imagen nos ayudó también a ahuyentar vendedores de humo y a animadoras de emprendedores.&lt;/p&gt;
&lt;p&gt;La mayoría de los miembros de nuestra comunidad lideran equipos técnicos en grandes empresas tecnológicas o tienen su propio negocio. Lejos de colgarse la etiqueta de emprendedores se enfocan en crear valor y abrirse camino desafiando la crisis más dura que hemos conocido en la historia de nuestro país.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Encontrar un lugar en Bilbao para los eventos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aunque no hemos tenido ningún problema en encontrar un sitio en otras ciudades para organizar nuestros eventos, en Bilbao no hemos tenido esa suerte.&lt;/p&gt;
&lt;p&gt;La única ayuda recibida fue desde Eutokia, un centro de innovación bastante alejado de la ciudad que hacía que muchos asistentes no viniesen por no coger el metro. Esa zona tampoco daba mucho juego para quedarse a las cervezas de después, dispersando en grupos a los asistentes del evento y perdiendo la oportunidad de conocer a profesionales con los que poder hacer negocios o entablar una relación comercial.&lt;/p&gt;
&lt;p&gt;Para eventos puntuales también hemos recibido la ayuda de la Universidad de Deusto o las oficinas de empresas dentro de la comunidad.&lt;/p&gt;
&lt;p&gt;Parece que es muy difícil para el ayuntamiento Bilbao facilitar sitio para este tipo de iniciativas sin pasar por caja de 19:00 a 22:00 entre semana o los sábados de 9:00 a 15:00.&lt;/p&gt;
&lt;h3 id="viraje"&gt;Viraje&lt;/h3&gt;
&lt;p&gt;Los problemas anteriores resultaron ser a veces muy cansinos, se sumaban a otros problemas con los que tenia que lidiar día a día más prioritarios de aquellos que tienen un negocio o un trabajo en una empresa que trabaja para clientes en varias zonas horarias.&lt;/p&gt;
&lt;p&gt;No era muy sostenible y de forma natural nos llevo a&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parar y reflexionar&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Paramos en varias ocasiones durante estos dos años. Personalmente creo que parar es importante cuando necesitas conseguir cosas y no estás dispuesto a esperar mucho para conseguirlas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No buscar la cantidad&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nos obsesionamos con la cantidad, y eso fue un error. En el momento que pasamos de ese objetivo todo ha ido genial y hemos disfrutado más de los eventos que hemos hecho.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contar con nuestros propios recursos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No hemos contado con dinero público ni lo hemos pedido. Todos los eventos que hemos montado han sido con presupuesto cero, sin ayuda de la diputación o del ayuntamiento de Bilbao.&lt;/p&gt;
&lt;p&gt;La única ayuda que hemos necesitado ha sido y es el tema del sitio, para el resto de adversidades contamos con la ventaja de ser profesionales y agencias activas que colaboramos para hacer cosas reales de valor y con los recursos de tiempo/dinero justos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No buscar la organización perfecta&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para la mayoría de los eventos que hemos organizado, nos hemos reunido en un bar con un boli, papel (a menudo de servilleta) y cervezas o café.&lt;/p&gt;
&lt;p&gt;Ponemos una fecha, posibles invitados, posibles lugares, necesidades y obligaciones de cada uno. Normalmente en dos semanas está todo montado, incluido sitio web.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No forzar el hacer eventos periódicos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Funcionan mejor los eventos surgidos de forma puntual y natural, sin crearlos sólo por el hecho de mantener una frecuencia mensual. A nosotros por lo menos nos ha resultado mejor esta fórmula.&lt;/p&gt;
&lt;p&gt;Irónicamente, gracias a todas las iniciativas que hacemos conseguimos más oferta y variada que la que ofreceríamos con un único evento mensual.&lt;/p&gt;
&lt;h3 id="iniciativas-activas-que-hemos-creado"&gt;Iniciativas activas que hemos creado&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://bilbostack.com"&gt;Bilbostack&lt;/a&gt;
Evento anual de una mañana de sábado en Bilbao que reúne las temáticas más punteras y a los programadores de más alto nivel en torno al desarrollo para Internet en Bilbao. Lo hacemos en la universidad de Deusto, con un aforo limitado normalmente a 250 personas, normalmente acuden sobre 200.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pucelatechday.com"&gt;Techdays&lt;/a&gt;
Son eventos de una mañana con cuatro charlas en una ciudad que no es Bilbao. De momento hemos hecho en Valladolid y La Rioja. Estamos pensando en Sevilla, Barcelona y Londres como posibles nuevos destinos.&lt;/p&gt;
&lt;p&gt;Nunca vamos con pretensiones de reunir a un montón de gente, nuestro objetivo es dar charlas y compartir experiencias con los profesionales y estudiantes de esas ciudades.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://hackmite.elcomite.org"&gt;Hackmité&lt;/a&gt;
Eventos de 24horas o 48horas en entorno rural en el que varios programadores de la comunidad se reunen para pasar unas horas desarrollando proyectos reales desde cero.&lt;/p&gt;
&lt;p&gt;A diferencia de un hackathon, en los hackmités el único premio es ver finalizado el proyecto y compartir buenos momentos con el resto de los asistentes.&lt;/p&gt;
&lt;p&gt;Hemos hecho una edición en Febrero y estamos intentando cerrar otra este mes.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/search?q=%23beermite"&gt;#Beermité&lt;/a&gt;
Eventos esporádicos que se organizan vía Twitter para pasar tardes haciendo networking o charlando sobre tecnología acompañados de unas buenas cervezas. Podemos quedar dos o veinte como nos ha pasado en alguna ocasión y siempre resultan interesantes.&lt;/p&gt;
&lt;h3 id="conclusiones"&gt;Conclusiones&lt;/h3&gt;
&lt;p&gt;Mi conclusión siempre es positiva, aunque finalmente sólo acudamos cuatro personas a estos eventos siempre sirven para algo si la gente que va es interesante y realmente lo es.&lt;/p&gt;
&lt;p&gt;Descubrir que tu vecino está trabajando en proyectos grandes y que necesita ayuda de justo lo que tú dominas y tienes experiencia. Encontrar proveedores que antes buscabas fuera del País Vasco porque pensabas que aquí no había. Estas cosas son de gran valor.&lt;/p&gt;
&lt;p&gt;Gracias a &lt;a href="http://elcomite.org"&gt;El Comité&lt;/a&gt; he conseguido encontrar buenos clientes y proveedores con los que sacar proyectos adelante con calidad y seriedad. Dichos proveedores trabajaban en mi misma ciudad y nunca los hubiese conocido de otra forma ya que los eventos de emprendedores, blogs o twitter no terminan de cumplir un objetivo profesional de crear mercado.&lt;/p&gt;
&lt;p&gt;Animamos en serio a que la gente nos conozca y venga a cualquiera de nuestros eventos en cualquiera de nuestras iniciativas. Tenemos hambre de conocer a otros cracks que sabemos que sin dejarse ver tanto trabajan y crean valor en Bilbao.&lt;/p&gt;</content:encoded></item><item><title>Por favor, pásame la factura de este café</title><link>https://blog.asiermarques.com/2013/por-favor-pasame-la-factura-de-este-cafe/</link><pubDate>Sun, 21 Jul 2013 12:02:12 +0000</pubDate><guid>https://blog.asiermarques.com/2013/por-favor-pasame-la-factura-de-este-cafe/</guid><content:encoded>&lt;p&gt;Hace unos meses, quedé con un cliente para tomar un café. No era una reunión de trabajo, simplemente era un café, para hablar y compartir un respiro en nuestras agendas.&lt;/p&gt;
&lt;p&gt;Me encanta compartir puntos de vista y experiencias con otras personas que luchan por su negocio cada día. Lo considero algo muy importante, no sólo para cuidar tu red de contactos, sino para aprender de gente que hace cosas de verdad en lugar de sumarse a la fiesta publicitaria de emprender.&lt;/p&gt;
&lt;p&gt;Lo que me dejó descolocado fue algo que ocurrió cuando nos íbamos a despedir: mi cliente me pidió que le hiciese factura por ese tiempo que habíamos compartido. &amp;ldquo;Asier, he aprendido mucho de este café y me has descubierto nuevos puntos de vista de mi negocio que ni me había planteado, por favor pásame factura por esto.&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Puede que otras personas de perfil consultor más senior hubiesen visto esto como algo normal, pero a mí me chocó rotundamente.&lt;/p&gt;
&lt;p&gt;Después de todas las actitudes y aptitudes que te encuentras al montar un negocio en España por parte de personas que buscan liderar un proyecto, sobre todo en Internet, este tipo de anécdotas te dan seguridad en seguir trabajando y mimando la pasión que nos hace caminar a la oficina con ganas de hacer cosas.&lt;/p&gt;
&lt;p&gt;Este hecho, que me cogió por sorpresa, me ha confirmado en la importancia de seleccionar muy bien con quien trabajamos, tanto clientes como proveedores, incluso en medio de la crisis que estamos experimentando.&lt;/p&gt;</content:encoded></item><item><title>No contar tus metas</title><link>https://blog.asiermarques.com/2013/no-contar-tus-metas/</link><pubDate>Sun, 14 Jul 2013 20:39:30 +0000</pubDate><guid>https://blog.asiermarques.com/2013/no-contar-tus-metas/</guid><content:encoded>&lt;p&gt;&lt;a href="http://sivers.org"&gt;Derek Sivers&lt;/a&gt; es una de las personas que más me inspiran en el mundo, es una pena que no haya tenido la oportunidad de desvirtualizarlo todavía.&lt;/p&gt;
&lt;p&gt;Esta semana descubrí &lt;a href="http://www.ted.com/talks/derek_sivers_keep_your_goals_to_yourself.html"&gt;la siguiente charla en TED&lt;/a&gt; y me dio mucho en qué pensar. En ella se comenta cómo &lt;strong&gt;nuestro cerebro confunde lo que socialmente anunciamos que vamos a hacer o estamos haciendo, asumiéndolo como algo que realmente ya hemos hecho.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Una de las cosas de las que me suelo arrepentir es que suelo comentar demasiado pronto mis ideas cuando las veo perfectamente factibles o empiezo a ejecutarlas. No siempre termino la ejecución, o cuando lo hago, puede ser años después de cuando las he empezado.&lt;/p&gt;
&lt;p&gt;En mi caso puede que no termine de ejecutar algo por los siguientes motivos: me he dado cuenta de que no era tan buena idea como pensaba, he priorizado otras cosas más importantes sobre la misma, la he aparcado para ejecutarla más adelante o estoy en proceso de solventar un problema clave en la misma.&lt;/p&gt;
&lt;p&gt;La ejecución de una idea no se percibe bien cuando no se ejecuta a corto plazo, aún cuando sea imposible ejecutarla de forma adecuada en un periodo corto de tiempo. Psicológicamente y a nivel de negocio, también es un problema no ejecutar rápido, de ahí la importancia de planear buenos &lt;a href="http://es.wikipedia.org/wiki/Producto_viable_m%C3%ADnimo"&gt;MVP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hasta ahora, sólo le había dado importancia al guardar en secreto los proyectos de mis clientes y no me preocupaba exponer abiertamente los míos a pesar de que alguien pudiese criticarme por no terminarlos. Sin embargo, la siguiente charla me ha roto un poco los esquemas y he estado pensando en que puede ser buena idea aceptar el consejo.&lt;/p&gt;</content:encoded></item><item><title>Conceptos sobre APIs REST</title><link>https://blog.asiermarques.com/2013/conceptos-sobre-apis-rest/</link><pubDate>Thu, 11 Apr 2013 13:48:22 +0000</pubDate><guid>https://blog.asiermarques.com/2013/conceptos-sobre-apis-rest/</guid><content:encoded>&lt;p&gt;En esta entrada voy a resumir los conceptos más importantes que he tratado en mis ponencias sobre REST.&lt;/p&gt;
&lt;h3 id="qué-es-rest"&gt;¿Qué es REST?&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://es.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST, REpresentational State Transfer&lt;/a&gt;, es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP.&lt;/p&gt;
&lt;p&gt;REST nos permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda HTTP, por lo que es increíblemente más simple y convencional que otras alternativas que se han usado en los últimos diez años como SOAP y XML-RPC.&lt;/p&gt;
&lt;p&gt;REST se definió en el 2000 por Roy Fielding, coautor principal también de la especificación HTTP. Podríamos considerar REST como un framework para construir aplicaciones web respetando HTTP.&lt;/p&gt;
&lt;p&gt;Por lo tanto REST es el tipo de arquitectura más natural y estándar para crear APIs para servicios orientados a Internet.&lt;/p&gt;
&lt;p&gt;Existen tres niveles de calidad a la hora de aplicar REST en el desarrollo de una aplicación web y más concretamente una API que se recogen en un modelo llamado &lt;strong&gt;&lt;a href="http://martinfowler.com/articles/richardsonMaturityModel.html"&gt;Richardson Maturity Model&lt;/a&gt;&lt;/strong&gt; en honor al tipo que lo estableció, Leonard Richardson padre de la &lt;a href="http://en.wikipedia.org/wiki/Resource-oriented_architecture"&gt;arquitectura orientada a recursos&lt;/a&gt;. Estos niveles son:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Uso correcto de URIs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Uso correcto de HTTP.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Implementar Hypermedia.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Además de estas tres reglas, &lt;strong&gt;nunca se debe guardar estado en el servidor&lt;/strong&gt;, toda la información que se requiere para mostrar la información que se solicita debe estar en la consulta por parte del cliente.&lt;/p&gt;
&lt;p&gt;Al no guardar estado, REST nos da mucho juego, ya que podemos escalar mejor sin tener que preocuparnos de temas como el almacenamiento de variables de sesión e incluso, podemos jugar con distintas tecnologías para servir determinadas partes o recursos de una misma API.&lt;/p&gt;
&lt;h3 id="nivel-1-uso-correcto-de-uris"&gt;Nivel 1: Uso correcto de URIs&lt;/h3&gt;
&lt;p&gt;Cuando desarrollamos una web o una aplicación web, las URLs nos permiten acceder a cada uno de las páginas, secciones o documentos del sitio web.&lt;/p&gt;
&lt;p&gt;Cada página, información en una sección, archivo, cuando hablamos de REST, los nombramos como &lt;strong&gt;recursos&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;El recurso por lo tanto es la información a la que queremos acceder o que queremos modificar o borrar,** independientemente de su formato**.&lt;/p&gt;
&lt;p&gt;Las URL, Uniform Resource Locator , son un tipo de URI, Uniform Resource Identifier, que además de permitir &lt;strong&gt;identificar de forma única el recurso&lt;/strong&gt;, nos permite localizarlo para poder acceder a él o compartir su ubicación.&lt;/p&gt;
&lt;p&gt;Una URL se estructura de la siguiente forma:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{protocolo}://{dominio o hostname}[:puerto (opcional)]/{ruta del recurso}?{consulta de filtrado}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Por ejemplo, &lt;a href="https://blog.asiermarques.com/2013/conceptos-sobre-apis-rest/"&gt;/2013/conceptos-sobre-apis-rest/&lt;/a&gt;, sería la URL para visualizar este artículo.&lt;/p&gt;
&lt;p&gt;Existen varias reglas básicas para ponerle nombre a la URI de un recurso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los nombres de URI no deben implicar una acción, por lo tanto debe evitarse usar verbos en ellos.&lt;/li&gt;
&lt;li&gt;Deben ser únicas, no debemos tener más de una URI para identificar un mismo recurso.&lt;/li&gt;
&lt;li&gt;Deben ser independiente de formato.&lt;/li&gt;
&lt;li&gt;Deben mantener una jerarquía lógica.&lt;/li&gt;
&lt;li&gt;Los filtrados de información de un recurso no se hacen en la URI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Las URIs no deben implicar acciones y deben ser únicas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, la URI &lt;em&gt;&lt;strong&gt;/facturas/234/editar&lt;/strong&gt;&lt;/em&gt; sería incorrecta ya que tenemos el verbo editar en la misma.&lt;/p&gt;
&lt;p&gt;Para el recurso factura con el identificador 234, la siguiente URI sería la correcta, independientemente de que vayamos a editarla, borrarla, consultarla o leer sólo uno de de sus conceptos: &lt;strong&gt;/facturas/234&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las URIs deben ser independientes de formato&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, la URI &lt;strong&gt;/facturas/234.pdf&lt;/strong&gt; no sería una URI correcta, ya que estamos indicando la extensión pdf en la misma.&lt;/p&gt;
&lt;p&gt;Para el recurso factura con el identificador 234, la siguiente URI sería la correcta, independientemente de que vayamos a consultarla en formato pdf, epub, txt, xml o json: &lt;strong&gt;/facturas/234&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las URIs deben mantener una jerarquía lógica&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, la URI **/facturas/234/cliente/007 **no sería una URI correcta, ya que no sigue una jerarquía lógica.&lt;/p&gt;
&lt;p&gt;Para el recurso factura con el identificador 234 del cliente 007, la siguiente URI sería la correcta: &lt;strong&gt;/clientes/007/facturas/234&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Filtrados y otras operaciones.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para filtrar, ordenar, paginar o buscar información en un recurso, debemos hacer una consulta sobre la URI, utilizando parámetros HTTP en lugar de incluirlos en la misma.&lt;/p&gt;
&lt;p&gt;Por ejemplo, la URI &lt;strong&gt;/facturas/orden/desc/fecha-desde/2007/pagina/2&lt;/strong&gt; sería incorrecta ya que el recurso de listado de facturas sería el mismo pero utilizaríamos una URI distinta para filtrarlo, ordenarlo o paginarlo.&lt;/p&gt;
&lt;p&gt;La URI correcta en este caso sería:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;/facturas?fecha-desde=2007&amp;amp;orden=DESC&amp;amp;pagina=2&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="nivel-2-http"&gt;Nivel 2: HTTP&lt;/h3&gt;
&lt;p&gt;Conocer bien HTTP no es opcional para un desarrollador web al que le importe su trabajo. Aunque el &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html"&gt;RFC&lt;/a&gt; es sencillo de leer, si estás interesado en aprender bien las bases de este protocolo es muy recomendable &lt;a href="http://shop.oreilly.com/product/9781565925090.do"&gt;la guía de O&amp;rsquo;Reilly sobre el mismo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Para desarrollar APIs REST los aspectos claves que hay que dominar y tener claros son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Métodos HTTP&lt;/li&gt;
&lt;li&gt;Códigos de estado&lt;/li&gt;
&lt;li&gt;Aceptación de tipos de contenido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Métodos.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como hemos visto en el anterior nivel, a la hora de crear URIs no debemos poner verbos que impliquen acción, aunque queramos manipular el recurso.&lt;/p&gt;
&lt;p&gt;Para manipular los recursos, HTTP nos dota de los siguientes métodos con los cuales debemos operar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GET: Para consultar y leer recursos&lt;/li&gt;
&lt;li&gt;POST: Para crear recursos&lt;/li&gt;
&lt;li&gt;PUT: Para editar recursos&lt;/li&gt;
&lt;li&gt;DELETE: Para eliminar recursos.&lt;/li&gt;
&lt;li&gt;PATCH: Para editar partes concretas de un recurso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo para un recurso de facturas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GET /facturas&lt;/strong&gt; Nos permite acceder al listado de facturas&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;POST /facturas&lt;/strong&gt; Nos permite crear una factura nueva&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GET /facturas/123&lt;/strong&gt; Nos permite acceder al detalle de una factura&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PUT /facturas/123&lt;/strong&gt; Nos permite editar la factura, sustituyendo la totalidad de la información anterior por la nueva.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DELETE /facturas/123&lt;/strong&gt; Nos permite eliminar la factura&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PATCH /facturas/123&lt;/strong&gt; Nos permite modificar cierta información de la factura, como el número o la fecha de la misma.&lt;/p&gt;
&lt;p&gt;Quizá debido al desconocimiento o el soporte de ciertos navegadores, los desarrolladores web han usado, durante los últimos años, únicamente los métodos GET Y POST para realizar todas estas acciones. Si trabajamos con REST, esto sería un error de base y puede darnos problemas incluso a la hora de nombrar nuestros recursos, obligándonos a poner verbos en las URLs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Códigos de estado.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Uno de los errores más frecuentes a la hora de construir una API suele ser el reinventar la rueda creando nuestras propias herramientas en lugar de utilizar las que ya han sido creadas, pensadas y testadas. La rueda más reinventada en el desarrollo de APIs son los códigos de error y códigos de estado.&lt;/p&gt;
&lt;p&gt;Cuando realizamos una operación, es vitar saber si dicha operación se ha realizado con éxito o en caso contrario, por qué ha fallado.&lt;/p&gt;
&lt;p&gt;Un error común sería por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Petición
========
PUT /facturas/123

Respuesta
=========
Status Code 200
Content:
{
 success: false,
 code: 734,
 error: &amp;#34;datos insuficientes&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este ejemplo se devuelve un código de estado 200, que significa que la petición se ha realizado correctamente, sin embargo, estamos devolviendo en el cuerpo de la respuesta un error y no el recurso solicitado en la URL.&lt;/p&gt;
&lt;p&gt;Este es un error común que tiene varios inconvenientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No es REST ni es estándar.&lt;/li&gt;
&lt;li&gt;El cliente que acceda a este API debe conocer el funcionamiento especial y cómo tratar los errores de la misma, por lo que requiere un esfuerzo adicional importante para trabajar con nosotros.&lt;/li&gt;
&lt;li&gt;Tenemos que preocuparnos por mantener nuestros propios códigos o mensajes de error, con todo lo que eso supone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HTTP tiene un abanico muy amplio que cubre todas las posibles indicaciones que vamos a tener que añadir en nuestras respuestas cuando las operaciones han ido bien o mal.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP"&gt;Es imperativo conocerlos y saber cuándo utilizarlos&lt;/a&gt;, independientemente de que desarrolles siguiendo REST.&lt;/p&gt;
&lt;p&gt;El siguiente ejemplo sería correcto de la siguiente forma:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Petición
========
PUT /facturas/123

Respuesta
=========
Status Code 400
Content:
{
 message: &amp;#34;se debe especificar un id de cliente para la factura&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Tipos y formatos de contenido.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando hablamos sobre URLs, vimos también que no era correcto indicar el tipo de formato de un recurso al cual queremos acceder o manipular.&lt;/p&gt;
&lt;p&gt;HTTP nos permite especificar en qué formato queremos recibir el recurso, pudiendo indicar varios en orden de preferencia, para ello utilizamos el header &lt;strong&gt;Accept&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Nuestra API devolverá el recurso en el primer formato disponible y, de no poder mostrar el recurso en ninguno de los formatos indicados por el cliente mediante el header Accept, devolverá el código de estado &lt;strong&gt;HTTP 406&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En la respuesta, se devolverá el header &lt;strong&gt;Content-Type&lt;/strong&gt;, para que el cliente sepa qué formato se devuelve, por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Petición
========
GET /facturas/123
Accept: application/epub+zip , application/pdf, application/json

Respuesta
=========
Status Code 200
Content-Type: application/pdf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este caso, el cliente solicita la factura en epub comprimido con ZIP y de no tenerlo, en pdf o json por orden de preferencia. El servidor le devuelve finalmente la factura en pdf.&lt;/p&gt;
&lt;h3 id="nivel-3-hypermedia"&gt;Nivel 3: Hypermedia.&lt;/h3&gt;
&lt;p&gt;A pesar de lo que nos pueda inducir a pensar el término retrofuturista &lt;strong&gt;Hypermedia&lt;/strong&gt;, el concepto y la finalidad que busca describir es bastante sencillo:** conectar mediante vínculos las aplicaciones clientes con las APIs**, permitiendo a dichos clientes despreocuparse por conocer de antemano del cómo acceder a los recursos.&lt;/p&gt;
&lt;p&gt;Con Hypermedia básicamente añadimos información extra al recurso sobre su conexión a otros recursos relacionados con él.&lt;/p&gt;
&lt;p&gt;Aquí tenemos un ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;pedido&amp;gt;
 &amp;lt;id&amp;gt;666&amp;lt;/id&amp;gt;
 &amp;lt;estado&amp;gt;Procesado&amp;lt;/estado&amp;gt;
 &amp;lt;links&amp;gt;
 &amp;lt;link rel=&amp;#34;factura&amp;#34;&amp;gt;
 http://example.com/api/pedido/666/factura
 &amp;lt;/link&amp;gt;
 &amp;lt;/links&amp;gt;
&amp;lt;/pedido&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este ejemplo vemos cómo indicar en un xml que representa un pedido, el enlace al recurso de la factura relacionada con el mismo.&lt;/p&gt;
&lt;p&gt;Sin embargo, necesitamos que el cliente que accede a nuestra API entienda que esa información no es propia del recurso, sino que es información añadida que puede utilizar para enlazar el pedido con la factura.&lt;/p&gt;
&lt;p&gt;Para ello conseguir esto, debemos utilizar las cabeceras Accept y Content-Type, para que tanto el cliente como la API, sepan que están hablando hypermedia.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Petición
========
GET /pedido/666
Accept: application/nuestra_api+xml, text/xml

Respuesta
=========
Status Code: 200
Content-Type: application/nuestra_api+xml
Content:

&amp;lt;pedido&amp;gt;
 &amp;lt;id&amp;gt;666&amp;lt;/id&amp;gt;
 &amp;lt;estado&amp;gt;Procesado&amp;lt;/estado&amp;gt;
 &amp;lt;links&amp;gt;
 &amp;lt;link rel=&amp;#34;factura&amp;#34;&amp;gt;
 http://example.com/api/pedido/666/factura
 &amp;lt;/link&amp;gt;
 &amp;lt;/links&amp;gt;
&amp;lt;/pedido&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Como vemos, el cliente solicita el formato &lt;strong&gt;application/nuestra_api+xml&lt;/strong&gt; de forma preferente al formato text/xml. De esta forma, le indica al servicio web, que entiende &lt;strong&gt;su formato&lt;/strong&gt; &lt;strong&gt;hypermedia&lt;/strong&gt; y puede aprovecharlo.&lt;/p&gt;
&lt;p&gt;El servicio web por lo tanto, como implementa hypermedia, le devuelve la información de recurso y la información de hypermedia que puede utilizar el cliente.&lt;/p&gt;
&lt;p&gt;Hypermedia es útil por ejemplo para que el cliente no tenga que conocer las URLs de los recursos, evitando tener que hacer mantenimientos en cada uno de los mismos si en un futuro dichas URLs cambian (&lt;a href="http://www.w3.org/Provider/Style/URI.html"&gt;cosa que no debería pasar&lt;/a&gt;). También es útil para automatizar procesos entre APIs sin que haya interacción humana.&lt;/p&gt;
&lt;h3 id="conclusión"&gt;Conclusión&lt;/h3&gt;
&lt;p&gt;Como hemos visto, los principios básicos para construir APIs REST se basan en conocer sobre todo HTTP, algo que no es opcional para un desarrollador web.&lt;/p&gt;</content:encoded></item><item><title>Versiones en nuestra API REST</title><link>https://blog.asiermarques.com/2012/versiones-en-nuestra-api-rest/</link><pubDate>Tue, 04 Dec 2012 14:57:51 +0000</pubDate><guid>https://blog.asiermarques.com/2012/versiones-en-nuestra-api-rest/</guid><content:encoded>&lt;p&gt;Una de las cosas que hay que tener en cuenta cuando hacemos una API es que esta, al igual que otro tipo de aplicaciones web, va a cambiar.&lt;/p&gt;
&lt;p&gt;Si la API es pública o es consumida por una gran cantidad de clientes, es casi seguro que muchos de estos clientes queden obsoletos o no sigan al día las actualizaciones que tu equipo vaya haciendo en la misma.&lt;/p&gt;
&lt;p&gt;La solución consiste en dar compatibilidad a las versiones anteriores y de alguna forma separar o que el cliente pueda indicar a qué versión está accediendo en cada momento.&lt;/p&gt;
&lt;p&gt;Las opciones más habituales para hacer esto serían:&lt;/p&gt;
&lt;h4 id="indicar-la-versión-de-la-api-en-la-url-del-recurso"&gt;&lt;strong&gt;Indicar la versión de la API en la URL del recurso.&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://api.dominio.com/v1/recurso/"&gt;https://api.dominio.com/v1/recurso/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este sería un ejemplo de URL en la que se indica la versión de la API en la misma.&lt;/p&gt;
&lt;p&gt;Esta es la opción más aconsejada pero la que a mí personalmente menos me convence ya que los clientes que quisieran estar actualizados a la última versión, deberían modificar las rutas de sus llamadas al servicio constantemente.&lt;/p&gt;
&lt;h4 id="indicar-como-parámetro-la-versión-de-la-api"&gt;&lt;strong&gt;Indicar como parámetro la versión de la API&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://api.dominio.com/recurso/?v=1"&gt;https://api.dominio.com/recurso/?v=1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este tipo de opción se usa por ejemplo en la API de YouTube.&lt;/p&gt;
&lt;p&gt;Yo personalmente prefiero indicar como parámetros opciones para filtrar o tratar la información del recurso solicitado. Por ejemplo, paginaciones, órdenes, búsquedas, especificar información parcial etc.&lt;/p&gt;
&lt;h4 id="indicar-como-header-la-versión-de-la-api"&gt;&lt;strong&gt;Indicar como header la versión de la API&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;**&lt;a href="https://api.dominio.com/recurso/"&gt;https://api.dominio.com/recurso/&lt;/a&gt; **
&lt;strong&gt;&amp;ldquo;API version&amp;rdquo;: 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esta opción es la que más me convence, ya que no se ensucia la URL y si la aplicación cliente tiene las llamadas centralizadas en un único punto no debería ser problema añadir un header extra indicando la versión del API.&lt;/p&gt;
&lt;p&gt;Después en el servidor podremos separar las versiones de las APIs en distintos servidores web o aplicaciones mediante un servidor proxy HTTP como Varnish que lea el header del request y sirva la versión de la API solicitada de forma transparente.&lt;/p&gt;
&lt;p&gt;En javascript por ejemplo tendríamos el siguiente código para añadir un header http a nuestra llamada AJAX.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
var request = new XMLHttpRequest();
request.open(&amp;#34;GET&amp;#34;, &amp;#34;https://api.dominio.com/recurso/&amp;#34;, false);
request.setRequestHeader(&amp;#34;API version&amp;#34;, &amp;#34;1&amp;#34;);
request.send();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En jQuery se añadiría el header de la siguiente forma.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
$.ajax(
 &amp;#34;https://api.dominio.com/recurso/&amp;#34;,
 {&amp;#34;headers&amp;#34;: {&amp;#34;API version&amp;#34;: &amp;#34;1&amp;#34;}}
);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En cualquier caso, se elija la opción que se elija es importante tener en cuenta que nuestra API puede cambiar en el futuro y facilitar la vida a los desarrolladores que programen los clientes de la misma siempre es una buena práctica.&lt;/p&gt;</content:encoded></item><item><title>La importancia del copy, más allá del SEO</title><link>https://blog.asiermarques.com/2012/la-importancia-del-copy-mas-alla-del-seo/</link><pubDate>Wed, 21 Mar 2012 03:15:24 +0000</pubDate><guid>https://blog.asiermarques.com/2012/la-importancia-del-copy-mas-alla-del-seo/</guid><content:encoded>&lt;p&gt;Sin duda, el texto es el elemento más importante en cualquier sitio web. Aunque en este artículo hablaré sobre sitios web y no aplicaciones web, en éstas últimas los textos son críticas para la usabilidad y experiencia de usuario.&lt;/p&gt;
&lt;p&gt;Sin embargo en los sitios web, especialmente en los sitios web de venta de producto, el texto tiene unas funciones tan críticas con obvias: la comunicación y explicación del producto o servicio. Por descontado, si el producto es el contenido, contenido tipo texto, la importancia del propio texto debe ser priorizada ante cualquier otro elemento.&lt;/p&gt;
&lt;p&gt;Todo esto que parece obvio, encierra todo un mundo de posibilidades que influyen directamente en el diseño del sitio web y sobre todo la base de su organización: &lt;a href="http://es.wikipedia.org/wiki/Arquitectura_de_la_informaci%C3%B3n"&gt;la arquitectura de la información&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un diseñador web a quién respeto un montón, &lt;a href="http://es.linkedin.com/in/goiotelletxea"&gt;Goio&lt;/a&gt; de &lt;a href="http://lapersonnalite.com/"&gt;La Personnalité&lt;/a&gt;, señalaba en el blog de esa agencia &lt;a href="http://lapersonnalite.com/el-copy-como-dise%c3%b1ador/"&gt;una reflexión&lt;/a&gt; que defendía cómo y por qué a un diseñador se le debe facilitar un buen trabajo de contenido y de **&lt;a href="http://en.wikipedia.org/wiki/Copy_(written)"&gt;copy&lt;/a&gt; **para que pueda realizar su trabajo de forma óptima.&lt;/p&gt;
&lt;p&gt;Hay muy buenos profesionales copy en España, pero sinceramente creo que el hacer tú los textos y pensar en cómo enfocarlos, sobre todo en algo tan crítico hoy en día como es el sitio web de tu negocio (o tu sitio web personal), es un ejercicio muy didáctico acerca del propio producto que vendes, la forma en la que lo vendes y en general la estrategia de comunicación que vas a seguir con respecto a todo esto.&lt;/p&gt;
&lt;p&gt;Pero hay un dilema en el que personalmente siempre caigo cuando hago este ejercicio. Internet hoy en día te suministra un montón de herramientas que te permiten medir de forma objetiva lo que buscan tus clientes y usuarios día a día en Google u otros buscadores. Una de las tareas más importantes a la hora de plantear un buen SEO es conocer estas búsquedas y ofrecer un contenido que encaje para atraer a tus clientes, &lt;a href="http://es.wikipedia.org/wiki/Anal%C3%ADtica_web"&gt;midiendo los resultados&lt;/a&gt; para asegurarse que efectivamente los resultados atraen a usuarios nuevos con un &lt;a href="http://support.google.com/googleanalytics/bin/answer.py?hl=es&amp;amp;answer=81986"&gt;porcentaje de rebote &lt;/a&gt;lo más reducido posible.&lt;/p&gt;
&lt;p&gt;Podríamos pensar que los textos que describan nuestros productos o servicios, deberían seguir a rajatabla las palabras clave que nos permitan tener un buen SEO. Yo pienso que objetivamente esto es correcto, siempre y cuando midamos los resultados ya que en muchos casos el contexto concreto de nuestro producto nos puede dar alguna sorpresa.&lt;/p&gt;
&lt;p&gt;Sin embargo, tengo una opinión muy personal que añade una puntualización a esto. Creo que los consumidores no siempre actúan objetivamente y en ocasiones, textos que no tienen nada que ver con lo que buscan directamente, funcionan.&lt;/p&gt;
&lt;p&gt;Creo sinceramente en la seducción como arte, un arte que se puede aplicar en este escenario. Tú puedes llevarte a una persona a la cama una noche, esto no es complicado, sobre todo si te es indiferente qué persona sea siempre que cumpla unas pautas físicas y unos límites de locura determinados en ese momento. Sin embargo la seducción funciona de forma distinta, no es a corto plazo, y cuando se produce, el usuario se engancha de forma intensa e incluso intenta contagiar esa intensidad a otros usuarios, a menudo también posiblemente seducibles. Creo que con los clientes y usuarios de un sitio web ocurre una cosa parecida.&lt;/p&gt;
&lt;p&gt;Un sitio web puede seducir con &lt;a href="http://littlebigdetails.com/"&gt;sus detalles&lt;/a&gt;, pero sobre todo con sus textos. No estoy diciendo que todo el texto debe ser subjetivo, el SEO importa y se debe cuidar, pero una buena combinación entre las dos formas de expresar lo brutal que es tu producto, puede ser una mezcla increíblemente efectiva.&lt;/p&gt;
&lt;p&gt;Por ejemplo en la página de producto de servidores &lt;a href="http://mediatemple.com/webhosting/nitro/whynitro.php"&gt;VPS Nitro de Mediatemple&lt;/a&gt;, se ha hecho un esfuerzo notable es hacer notar al usuario el por qué debe pagar 2400$/mes por un servidor virtual. Aunque en la página aparecen los términos VPS Server en el title y en el contenido, vemos otro tipo de texto corto que nada tiene que ver con explicaciones técnicas o términos que un usuario utilizaría para buscar servidores virtuales.&lt;/p&gt;
&lt;p&gt;Otro ejemplo es la web del nuevo &lt;a href="http://basecamp.com/"&gt;Basecamp&lt;/a&gt;, el software para gestionar proyectos de una gran compañía como &lt;a href="http://37signals.com"&gt;37signals&lt;/a&gt;. Aunque en el título de la ventana o pestaña del navegador vemos claramente el término de búsqueda que persiguen, los textos que explican el producto emplean un lenguaje más humano y atractivo que el que podríamos encontrar en&lt;a href="http://www.projectmanager.com/"&gt; este otro sitio web &lt;/a&gt;que vende un software similar.&lt;/p&gt;
&lt;p&gt;Creo que a la larga estos detalles a la hora de plantear los textos de tus productos te hacen conocer mejor a tus clientes o usuarios y te hacen mejorar la comunicación del producto que vendes. Por supuesto la labor de analítica web y el feedback que se pueda recoger de usuarios reales del sitio web es muy importante para realmente saber si estos textos son efectivos o no.&lt;/p&gt;
&lt;p&gt;Evidentemente, al igual que ocurre a la hora de seducir a una persona para otros fines, lo que vendes debe ser auténtico y en consonancia con lo que describes, es decir, debe haber una buena &lt;a href="http://es.wikipedia.org/wiki/Experiencia_de_usuario"&gt;experiencia de usuario&lt;/a&gt;, de otra forma nunca se sostendría.&lt;/p&gt;
&lt;p&gt;Sobre la longitud del texto, existe una técnica  denominada &lt;a href="http://visualwebsiteoptimizer.com/split-testing-blog/long-sales-letter-copywriting/"&gt;long sales letter&lt;/a&gt; que hace mucho hincapié en presentar los beneficios de un buen producto de forma concreta. Esta técnica &lt;a href="http://37signals.com/svn/posts/2977-behind-the-scenes-highrise-marketing-site-ab-testing-part-1"&gt;ha demostrado de forma objetiva&lt;/a&gt; que puede generar resultados increíbles.&lt;/p&gt;
&lt;p&gt;En cualquier caso mi punto es que probablemente tus usuarios agradecerán que no les trates como a estúpidos usuarios sin personalidad que únicamente están hambrientos de información objetiva sin personalidad acompañados del menor precio posible, hay excepciones claro, pero tú decides a quién quieres seducir.&lt;/p&gt;</content:encoded></item><item><title>Simettric</title><link>https://blog.asiermarques.com/2011/simettric/</link><pubDate>Mon, 21 Nov 2011 20:06:45 +0000</pubDate><guid>https://blog.asiermarques.com/2011/simettric/</guid><content:encoded>&lt;p&gt;Como muchos ya sabéis, desde hace un mes dejé de formar parte del equipo de &lt;a href="http://blackslot.com"&gt;Blackslot&lt;/a&gt;, empresa que cofundé en el 2009 y que va en el mejor camino para convertirse en la mejor opción de servicios de hosting de calidad/precio en España.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://simettric.com/"&gt;&lt;img src="https://blog.asiermarques.com/media/simettric-black300.png" alt="Simettric, desarrollo web en Bilbao"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El principal motivo de arrancar una nueva aventura es que necesitaba un cambio, tanto personal como de concepto sobre lo que entendía como trabajo, objetivos y sentido a la hora de crear una empresa en internet, algo que casase más con la visión que andaba buscando a nivel personal y profesional. Visión que trato de afianzar con &lt;a href="http://simettric.com"&gt;&lt;strong&gt;Simettric&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En una frase, &lt;a href="http://simettric.com"&gt;&lt;strong&gt;Simettric&lt;/strong&gt;&lt;/a&gt; es una &lt;strong&gt;agencia de desarrollo web enfocada en el desarrollo de productos SAAS&lt;/strong&gt;, especialmente &lt;strong&gt;de innovación en internet&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Creo sinceramente que no tiene sentido entender el futuro del desarrollo de software en el escritorio, ni en que la gestión técnica del mismo dependa del usuario.&lt;/p&gt;
&lt;p&gt;La misión de Simettric es desarrollar productos útiles para las personas o empresas que buscan ser ágiles, de verdadero valor para las mismas, buscando siempre la comodidad y facilidad de uso para solucionar problemas en lugar de crearlos.&lt;/p&gt;
&lt;p&gt;Con esta línea hemos empezado a trabajar y, a pesar del poco tiempo de vida que tiene el proyecto, ya contamos con partners y clientes, algunos de ellos fuera de España, con proyectos bastante interesantes a la vez que motivantes.&lt;/p&gt;
&lt;p&gt;Os animo a ojear &lt;a href="http://simettric.com/mag/"&gt;nuestro Magazine&lt;/a&gt;, a que nos sigáis en &lt;a href="http://twitter.com/simettric"&gt;Twitter&lt;/a&gt; y en &lt;a href="http://facebook.com/simettric"&gt;Facebook&lt;/a&gt;, en los que vamos hablando sobre proyectos y tendencias innovadoras que nos parecen muy interesantes en el sector de internet.&lt;/p&gt;
&lt;p&gt;Esto es en lo que llevo volcado las últimas semanas y en lo que estaré trabajando en los próximos meses. Sobra decir que es muy duro volver a empezar, pero apasionante.&lt;/p&gt;</content:encoded></item><item><title>Artesanio</title><link>https://blog.asiermarques.com/2011/artesanio/</link><pubDate>Thu, 07 Apr 2011 15:32:11 +0000</pubDate><guid>https://blog.asiermarques.com/2011/artesanio/</guid><content:encoded>&lt;p&gt;&lt;a href="http://artesanio.com"&gt;&lt;img src="https://blog.asiermarques.com/media//27543_116466571710881_7563_n.jpg" alt=""&gt;&lt;/a&gt;&lt;a href="http://venzario.wordpress.com/"&gt;Jose&lt;/a&gt; ha anunciado hoy &lt;a href="http://blog.artesanio.com/2011/04/fecha-de-lanzamiento-11-de-abril/"&gt;la apertura oficial de Artesanio&lt;/a&gt; que será este &lt;strong&gt;próximo Lunes 11 de Abril&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Después de desglosar la idea en fases, abrimos el blog hace casi un año y desde entonces, hemos conocido a más de &lt;strong&gt;300 artesanos&lt;/strong&gt; y hemos hecho más de &lt;a href="http://www.facebook.com/artesanio"&gt;2.500 amigos en facebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Desde el primer día, recibimos día a día valioso feedback de gente que hace cosas realmente increíbles.&lt;/p&gt;
&lt;p&gt;Todo el feedback se asimila, desglosa e implementa en el que tenemos como objetivo que sea, el &lt;strong&gt;mejor mercado online y sitio web social creado para artesanos a nivel internacional&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Un objetivo ambicioso, sobre todo teniendo en cuenta a sitios como &lt;a href="http://etsy.com"&gt;Etsy&lt;/a&gt; que cuenta con un excelente equipo técnico en el que podemos encontrar a gente como &lt;a href="http://www.etsy.com/storque/etsy-news/john-allspaw-joins-the-etsy-team-6183/"&gt;John Allspaw&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nos espera bastante trabajo por delante, trabajo muy motivador por cierto, y también muchas obras de arte que esperamos que no os canséis de curiosear ni comprar.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://artesanio.com"&gt;Artesanio&lt;/a&gt; es un proyecto conjunto de &lt;a href="http://blackslot.com"&gt;Blackslot&lt;/a&gt; y &lt;a href="http://twitter.com/venzario"&gt;Jose Luis Moreno&lt;/a&gt;, en el que estamos haciendo una labor de coworking autofinanciada con nuestros propios recursos.&lt;/p&gt;
&lt;p&gt;Esperamos que os guste.&lt;/p&gt;</content:encoded></item><item><title>Cierra los ojos</title><link>https://blog.asiermarques.com/2011/cierra-los-ojos/</link><pubDate>Sat, 05 Mar 2011 00:45:52 +0000</pubDate><guid>https://blog.asiermarques.com/2011/cierra-los-ojos/</guid><content:encoded>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/33370236@N06/3802272718/"&gt;&lt;img src="https://farm4.static.flickr.com/3533/3802272718_059b40596f_m.jpg" alt="Try to Escape from what we were"&gt;&lt;/a&gt;¿Qué opinas de todo lo que te rodea? ¿Tiene el mismo sentido o importancia que hace unos segundos, cuando podías ver cada cosa o persona que está a tu lado?&lt;/p&gt;
&lt;p&gt;¿Cambiarías alguna de esas cosas o personas por otras si no pudieses verlas nunca más?&lt;/p&gt;
&lt;p&gt;Como algunos ya sabéis, he estado algo así como un mes y una semana fuera de toda actividad relacionada con un ordenador y por lo tanto, con mi trabajo y prácticamente mi vida. Me he recuperado de una enfermedad bastante grave en la córnea del ojo derecho que me llegó incluso a impedir encender la luz de cualquier habitación en la que me encontrase.&lt;/p&gt;
&lt;p&gt;Varias semanas a oscuras, sin poder casi dormir por el dolor, sin poder leer nada, ni acercarme a un ordenador y por lo tanto hacer prácticamente nada de lo que estaba acostumbrado y &amp;ldquo;necesitaba&amp;rdquo; hacer. Un parón en la dinámica asumida mucho más didáctico que unas vacaciones.&lt;/p&gt;
&lt;p&gt;Desde hacía tiempo sentía que algo estaba mal en mi vida y no podía dejar pasar una oportunidad tan buena de recapitular acerca de lo que era, de los errores o no que había cometido, de si lo que había hecho era lo correcto o no, de si lo que me obsesionaba era importante o no, de si era lo que realmente quería o lo que realmente me conduciría a lo que realmente quería y de si todo eso finalmente importaba en absoluto.&lt;/p&gt;
&lt;p&gt;Mi forma de pensar, mi forma de vivir, mi forma de no vivir, mi forma de trabajar, mis relaciones, mis intentos de relaciones y de todo eso, todo lo que me fastidiaría poder no hacer ni ver, todo lo que cambiaría y haría que me plantease si mi vida era digna de vivir sin poder ver.&lt;/p&gt;
&lt;p&gt;Siempre me ha resultado curiosa la forma tan fácil que tenemos de obsesionamos con la tecnología que usamos, la gente técnica a la que ésta nos apasiona. Hacer que todo esté perfecto, si eres programador que todo este aislado, sea abstracto con elegancia, que tenga toda la funcionalidad que nadie va a usar, que aguante un trabajo que nunca va a realizar y que esté preparado para ser reutilizado en proyectos que nunca vas a llevar a cabo o poder terminar. Nos importa el código, la herramienta, no lo que intentamos hacer, para quién lo estamos haciendo, lo que intentamos cambiar y la finalidad real pasa a ser tan irrelevante como nuestra vista. No es muy distinto a vivir sin poder ver o sin que nadie pueda vernos,  dos cosas que parecen distintas pero que en algún modo se parecen mucho.&lt;/p&gt;
&lt;p&gt;No necesitamos ver las cosas que carecen de importancia al igual modo que no necesitamos que ellas estén continuamente observando cada detalle de nuestra vida, pero reconozco que mirarlas en ocasiones es bastante entretenido. Pero a pesar de su entretenimiento es insuficiente, sobretodo para ser feliz.&lt;/p&gt;
&lt;p&gt;Lo imperfecto, lo que consideramos imperfecto a veces, pero que está a nuestro lado y funciona o nos comprende o no nos comprende pero escucha y está a nuestro lado, es lo que muchas veces más importancia tiene y es lo primero que echamos en falta cuando buscamos lo que necesitamos ver. Necesitamos hacer y coleccionar más cosas imperfectas que no carezcan de importancia, cosas dignas de ver y difíciles de olvidar, con estilo, personalidad y que nos digan por sí mismas de una forma tremendamente rabiosa por qué son tan importantes.&lt;/p&gt;
&lt;p&gt;Todo lo que tenga oportunidad de ver en cada momento de mí vida debe ser difícil de olvidar y debe decir por sí mismo lo rabiosamente importante de ver que es. Y si en algún momento no encuentro algo así, tendré que crearlo o provocarlo. En el caso que no lo haga he aprendido que sería irrelevante ver nada o a nadie, al igual que nadie me vea. Podría decirse incluso que en esencia, daría igual existir.&lt;/p&gt;
&lt;p&gt;PD: He vuelto.&lt;/p&gt;</content:encoded></item><item><title>Cosas que he aprendido trabajando como autónomo desde casa (parte 2 de 2)</title><link>https://blog.asiermarques.com/2008/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-2-de-2/</link><pubDate>Sat, 20 Sep 2008 00:10:14 +0000</pubDate><guid>https://blog.asiermarques.com/2008/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-2-de-2/</guid><content:encoded>&lt;p&gt;Esta es la continuación de algo que empecé escribiendo a modo de reflexión personal de las lecciones que he aprendido o he puesto en práctica trabajando como autónomo desde casa.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.asiermarques.com/2008/09/12/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-1-de-2/"&gt;En la primera parte&lt;/a&gt; analicé una serie de puntos que he aprendido al trabajar desde casa, en esta segunda parte analizaré cosas que he aprendido trabajando como autónomo.&lt;/p&gt;
&lt;h3 id="trabajar-como-autónomo"&gt;****Trabajar como autónomo&lt;/h3&gt;
&lt;hr&gt;
&lt;p&gt;Antes de nada hay que ser consciente de que, al menos en el campo informático, si quieres ser autónomo para ganar más dinero vas por el peor camino que podías escoger.&lt;/p&gt;
&lt;p&gt;Ser autónomo sale caro, requiere mucho más tiempo de trabajo que un puesto de trabajo normal, más responsabilidad y ser tolerante tanto al estrés como a la incertidumbre (y más en la situación en la que nos encontramos)&lt;/p&gt;
&lt;p&gt;Lo normal (al menos lo que conozco) es que des el paso generalmente por dos motivos:&lt;/p&gt;
&lt;p&gt;1- Porque dominas o te apasiona un área concreta o varias dentro de tu campo y, tras haber trabajado en alguna empresa has detectado una serie de cosas que se hacen mal y crees poder hacerlas mejor, o dar un servicio mejor o por lo menos diferente al que te permiten ofrecer o desarrollar.&lt;/p&gt;
&lt;p&gt;2- Porque tienes un proyecto en mente que has desarrollado o que tienes planteado, que requiere una dedicación en tiempo exclusiva para poder ejecutarse o continuar desarrollándose de una forma óptima, además de requerir estas regularizado como actividad económica.&lt;/p&gt;
&lt;p&gt;Mi caso es el primero y, aunque conozco a bastante gente que está en el segundo punto, lo que voy a escribir se basa en lo que he visto trabajando en el punto 1 como desarrollador web.&lt;/p&gt;
&lt;p&gt;Antes de nada, una lectura recomendada es &lt;a href="http://www.casadellibro.com/libro-el-libro-negro-del-emprendedor/2900001178147"&gt;&lt;strong&gt;El libro negro del emprendedo&lt;/strong&gt;r&lt;/a&gt; de Fernando Trías de Bes. Con ese libro se te quitarán las ganas seguro de lanzarte a la aventura si no estás preparado para hacerlo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dinero&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Necesitas dinero para empezar, &lt;strong&gt;durante los primeros meses no vas a ver ni un duro real&lt;/strong&gt; por lo que es mejor tener un buen colchón de dinero para cubrir al menos los 6 primeros meses.&lt;/p&gt;
&lt;p&gt;¿Qué es dinero real? El dinero real básicamente es el que te pertenece totalmente y no tienes que devolver.&lt;/p&gt;
&lt;p&gt;Hay que tener en cuenta que &lt;strong&gt;&lt;a href="http://snwop.com/2007/07/02/pagos-y-cobros-a-30-60-90-dias/"&gt;muchas empresas pagan a 60 o 90 días e incluso a 6 meses&lt;/a&gt;&lt;/strong&gt;. Para una empresa que esté en funcionamiento eso no es nada traumático, pero para alguien que empieza eso puede ser un problema muy serio.&lt;/p&gt;
&lt;p&gt;Los bancos te ofrecen soluciones como &lt;a href="http://es.wikipedia.org/wiki/L%C3%ADnea_de_descuento"&gt;líneas de descuento&lt;/a&gt;, pero además de asumir una pérdida del porcentaje total del cobro, debemos ser conscientes de que si el cliente no paga.. ese dinero se lo debemos devolver nosotros al banco.&lt;/p&gt;
&lt;p&gt;Un ejemplo similar son &lt;strong&gt;los préstamos&lt;/strong&gt;, aunque sean de bajo o nulo interés, &lt;strong&gt;hay que terminar pagándolos&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Tengas la filosofía, ética, visión, valores o demás cualidades que tengas, el dinero va a ser tu arma principal, debes aprender a manejarlo y gestionarlo lo antes posible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contrata un buen asesor y aprende de él&lt;/strong&gt;. Te ahorrará tiempo en gestiones que tu no estás acostumbrado a hacer y aprenderás bastante sobre temas que hasta ahora no has tenido que dominar de una forma tan directa.&lt;/p&gt;
&lt;p&gt;No es nada nuevo decir que toda factura ocasionada directa o indirectamente por nuestro trabajo o situación como autónomo debe declararse para desgravar el iva, dinero que teórica y prácticamente te cuenta el estar trabajando como autónomo.&lt;/p&gt;
&lt;p&gt;Pero nunca debe ser una escusa para empezar a comprar o gastar dinero en cosas innecesarias que no compraríamos de no ser autónomo. &lt;strong&gt;Todo lo que compres tienes que pagarlo después.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si necesitas oficina, no la compres.. &lt;strong&gt;alquila&lt;/strong&gt;. Y si puedes alquilarla con otros profesionales de tu campo o de campos próximos al tuyo, mejor.&lt;/p&gt;
&lt;p&gt;**Define tus servicios y elige a tus clientes
**&lt;/p&gt;
&lt;p&gt;**Debes fijar desde un principio los servicios que ofreces y los servicios que ****NO ofreces**.&lt;/p&gt;
&lt;p&gt;Aprender a &lt;a href="http://snwop.com/2007/11/23/aprender-a-decir-no/"&gt;decir que no&lt;/a&gt;, es algo fundamental y requisito imprescindible para poder ofrecer un servicio de calidad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Es importantísimo saber con que clientes NO debemos trabajar nunca&lt;/strong&gt;. Te vas a encontrar a personas que no van a respetar el valor de tu tiempo, que te piden con insistencia servicios que no ofreces, aunque los sepas hacer, y que están convencidas por alguna razón de que trabajas gratis.&lt;/p&gt;
&lt;p&gt;Aunque te aporten beneficios a corto plazo, los que te paguen evidentemente, te puede salir mucho más rentable a la larga, tanto económicamente como en tiempo, no trabajar con ellos.&lt;/p&gt;
&lt;p&gt;Ese tipo de clientes puede acaparar todo tu tiempo sin aportar beneficios, evitando que puedas dedicarte a otros clientes o a tu vida personal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ofrece y especialízate/fórmate en los servicios que más te gusten y apasionen&lt;/strong&gt;. Siempre vas a ser mejor y tener más dedicación en algo que te interese y guste, por lo tanto invierte en ello.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si quieres ofrecer servicios en los que no crees que eres tan bueno, tardas demasiado tiempo o no te motivan, externalízalos y trabaja con gente a la que si le resulten interesantes y les motiven.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://farm4.static.flickr.com/3082/2871615392_2316a18cb2.jpg" alt="screen-capture-21"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elige clientes y proyectos que te gusten y apasionen&lt;/strong&gt;. Vamos a estar mucho más involucrados y motivados en proyectos con clientes con los que estemos agusto y proyectos que nos resulten interesantes. Quizá ganemos algo menos de dinero, pero si tenemos la oportunidad de investigar y estar más desahogados / cómodos, nos va a merecer la pena.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tiempo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Todo tiempo que no estés trabajando debe ser tiempo bien invertido &amp;hellip;ya que si no trabajas, no estás generando beneficios.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si necesitas unas vacaciones o desconectar, hazlo&lt;/strong&gt;. No hay mejor forma de invertir el tiempo que en disfrutar de la vida cuando el cuerpo necesite hacerlo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si no tienes trabajo fórmate o investiga&lt;/strong&gt;. Formarse es fundamental y luego desarrollar algún proyecto por nuestra cuenta, aunque no se termine o vaya a servir para &amp;ldquo;convertirnos en un google&amp;rdquo;, es genial para asimilar los conocimientos aprendidos. Esos proyectos nos pueden servir para mejorar nuestro &amp;ldquo;how-to&amp;rdquo; y poder ofrecer un servicio de más calidad a nuestros clientes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Estima bien los tiempos, no subestimes el tiempo de dedicación para un proyecto.&lt;/strong&gt; A la gente técnica nos suele pasar que nos cuesta estimar de una forma real lo que nos puede llevar en tiempo desarrollar algo que tomamos por sencillo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elige bien los eventos a los asistes.&lt;/strong&gt; En el campo del desarrollo web desafortunadamente encontramos eventos que aportan poco o nada a nuestra profesión. Te ahorras tiempo, hotel, avión y vuelo si no acudes a los mismos.&lt;/p&gt;
&lt;p&gt;**Otros temas
**&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tu eres tu propia marca&lt;/strong&gt;, no sigas modas absurdas ni intentes ser algo que entre en un concepto inventado por gente que necesita una etiqueta para sentirse importante o demostrar algo a los demás.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aprende de la gente&lt;/strong&gt;, rodéate y relaciónate siempre con gente de la que puedas aprender algo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No te cierres en tu campo profesional a la hora de aprender nuevas cosas,&lt;/strong&gt; es bueno conocer más colores para construir con ellos un punto de vista único.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Escribe un blog&lt;/strong&gt;, es muy valioso conocer las opiniones, sobre temas que te interesan, de personas ajenas a tu círculo social más cercano. Además te ayuda a conocer a gente con tus mismos intereses y hacer muy buenos contactos y amigos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Y vosotros&amp;hellip; ¿qué añadiríais?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Cosas que he aprendido trabajando como autónomo desde casa (parte 1 de 2)</title><link>https://blog.asiermarques.com/2008/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-1-de-2/</link><pubDate>Fri, 12 Sep 2008 17:07:14 +0000</pubDate><guid>https://blog.asiermarques.com/2008/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-1-de-2/</guid><content:encoded>&lt;p&gt;Llevo poco tiempo como autónomo (desde Abril de este año) y trabajando desde casa (desde Enero de este año) aún así, he aprendido algunas cosas y me he animado a escribir sobre las mismas.&lt;/p&gt;
&lt;p&gt;En esta primera parte me centraré en cosas que he aprendido trabajando desde casa.&lt;/p&gt;
&lt;p&gt;En la segunda parte hablaré de las cosas que he aprendido estando como autónomo.&lt;/p&gt;
&lt;p&gt;Los consejos que doy, están dirigidos para mí mismo el primero.&lt;/p&gt;
&lt;h3 id="trabajar-desde-casa"&gt;&lt;strong&gt;Trabajar desde casa&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Para empezar hay que ser consciente de que &lt;strong&gt;trabajar en casa no es ningún chollo&lt;/strong&gt; y dependiendo de cómo seas, pueden ser mayores los inconvenientes que las ventajas que conlleva.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://farm4.static.flickr.com/3296/2851367470_bcc4a6b96a.jpg" alt="home freelance"&gt;&lt;/p&gt;
&lt;p&gt;**Es bueno disponer de un espacio acondicionado para trabajar **&lt;/p&gt;
&lt;p&gt;Debes tener sensación de espacio. Disponer de una mesa ordenada y únicamente con lo que necesites para realizar tu trabajo, es fundamental.&lt;/p&gt;
&lt;p&gt;Si vives con más gente, hazles entender que sólo deben entrar a tu espacio de trabajo para decirte algo súmamente importante o cuando te vean alejado de tu portátil.&lt;/p&gt;
&lt;p&gt;No dudes en comprar un buen ventilador, una buena silla y un segundo monitor (o los que necesites) si usas portátil.&lt;/p&gt;
&lt;p&gt;Con respecto a lo del segundo monitor, a algunas personas que programamos nos resulta muy difícil concentrarnos en un editor de código extendido en una pantalla de más de 19 pulgadas. La mejor combinación que he probado es &lt;strong&gt;mantener el portátil a la altura de la mesa y el monitor más grande situado justo encima de la pantalla del mismo&lt;/strong&gt;. Esto nos permite concentrarnos mejor en el código, y dejar en el monitor más grande las ventanas del navegador con el resultado (que suelen ocuparnos más espacio debido a extensiones imprescindibles como &lt;a href="http://getfirebug.com/"&gt;firebug&lt;/a&gt;), la documentación y otras cosas secundarias.&lt;/p&gt;
&lt;p&gt;Usando la combinación anterior junto a &lt;strong&gt;escritorios múltiples&lt;/strong&gt; (también llamados virtuales), puede incrementar nuestra productividad considerablemente. En MacOSX Leopard los escritorios virtuales vienen &lt;a href="http://www.apple.com/es/macosx/features/spaces.html"&gt;por defecto con el sistema&lt;/a&gt;, al igual que en la mayoría de escritorios para Linux/Unix. En Windows podemos tener esta funcionalidad en Windows Vista/Xp gracias a la herramienta Open Source &lt;a href="http://www.codeplex.com/vdm"&gt;Vista/XP Virtual Desktop Manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;**Fijarse un horario y vestirse para trabajar
**&lt;/p&gt;
&lt;p&gt;Una de las ventajas de trabajar desde casa es el poder gestionar el tiempo de la forma que creas conveniente. No hay que asumir esta ventaja como algo que nos evite la necesidad de tener un horario.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tener un horario puede ayudarnos a conseguir concentración, evitar procrastinación y necesitar menos tiempo para realizar el trabajo.&lt;/strong&gt; Si asumes la recesidad de respetar un horario, vas a dejar las cosas que no están relacionadas de lleno con tu trabajo para otro momento que no entre dentro de dicho horario.&lt;/p&gt;
&lt;p&gt;Si algún día necesitas modificar dicho horario, que sea por algo realmente necesario y tomarlo como un hecho puntual. Si no somos serios en ese aspecto no sirve de nada el planear un horario, sólo para engañarnos a nosotros mismos.&lt;/p&gt;
&lt;p&gt;Probablemente pienses que respetar un horario limíta la libertad que tienes para gestionar tu tiempo al trabajar desde casa. Precisamente esa libertad es la que te permite planificar un horario adaptado a tí, sin que nadie lo haga por tí ni te ate a unas horas en las que no estas agusto trabajando.&lt;/p&gt;
&lt;p&gt;Tener libertad no debe llevar a no ser responsables ni ordenados con nuestro tiempo. Piensa en la responsabilidad que &lt;a href="http://es.wikipedia.org/wiki/Hiro_Nakamura"&gt;Hiro Nakamura&lt;/a&gt; debe asumir ;)&lt;/p&gt;
&lt;p&gt;Cuando trabajamos en casa podemos tener una mala costumbre de ponernos a trabajar nada más levantarnos de la cama.&lt;/p&gt;
&lt;p&gt;Lo ideal es levantarnos, hacer algo de ejercicio, ducharnos, &lt;strong&gt;vestirnos con ropa cómoda&lt;/strong&gt;, desayunar y ponernos a trabajar.&lt;/p&gt;
&lt;p&gt;**Evita programas de gestión de tiempo que supuestamente te ayuden a ser productivo, usa el papel/una pizarra y escucha música nueva
**&lt;/p&gt;
&lt;p&gt;Al igual que en tu mesa de trabajo, &lt;strong&gt;en tu ordenador no debería estar ejecutándose lo necesario para realizar tu trabajo y ayudarte a concentrarte&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Muchos programas del tipo GTD &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;Getting Things Done&lt;/a&gt;&amp;rdquo;, si no se usan bien, pueden hacernos perder el tiempo precisamente en gestionar las tareas que nos quedan pendientes y nos abruman con alertas por todas partes.&lt;/p&gt;
&lt;p&gt;Para gestionar tus tareas y horarios hazte con un calendario (mejor si es el que viene con tu sistema operativo) y un &lt;strong&gt;gestor de proyectos deslocalizado y lo más minimalista posible&lt;/strong&gt; (yo uso &lt;a href="http://www.basecamphq.com"&gt;BaseCamp&lt;/a&gt;). Procura hacer más caso a tu calendario que a las tareas pendientes para respetar tus horarios, y pasa &lt;strong&gt;las tareas más inmediatas a papel&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Cuando las completes, abre el gestor de tareas y táchalas, pasa las siguientes a papel y cierralo hasta que completes las nuevas.&lt;/p&gt;
&lt;p&gt;Mantener el gestor de tareas abierto puede agobiarnos, y nos dificulta el visualizar los &amp;ldquo;arboles&amp;rdquo; que debemos talar dentro del &amp;ldquo;inmenso bosque&amp;rdquo; que tenemos en frente.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://freelanceswitch.com/productivity/why-should-freelancers-use-mind-mapping/"&gt;Dibuja mapas mentales&lt;/a&gt;, para separar problemas, tomar decisiones, planificarte o para buscar la forma de desarrollar cierta funcionalidad de un proyecto que tengas entre manos, y &lt;a href="http://www.amazon.com/Effective-Prototyping-Software-Interactive-Technologies/dp/0120885689"&gt;prototipa las interfaces&lt;/a&gt; asociadas a una funcionalidad que debas desarrollar. &lt;strong&gt;Hazlos sobre papel o sobre una pizarra&lt;/strong&gt;, es más rápido y nos aleja de toda distracción concentrándonos en lo verdaderamente importante.&lt;/p&gt;
&lt;p&gt;Para muchas personas la música ayuda a concentrarse, yo por ejemplo uso el &lt;strong&gt;cliente de escritorio&lt;/strong&gt;, evita entrar en la web mientras trabajas, de &lt;a href="http://lastfm.com"&gt;last.fm&lt;/a&gt; que me permite escuchar música del estilo que más que gusta &lt;strong&gt;ofreciéndome variedad&lt;/strong&gt;, esto último es muy importante para hacernos más ameno el trabajo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Programas de mensajería instantánea&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los programas de mensajería instantánea son un gran avance para mantenernos en contacto con clientes, amigos y familiares.. pero a la hora de trabajar suponen un gran peligro que afecta directamente a nuestra productividad.&lt;/p&gt;
&lt;p&gt;Quita bots de servicios tipo twitter, pownce, jaiku y demás. Estos servicios disponen de clientes de escritorio que nos permiten seguirlos de una forma más asincrona y con menos intrusividad.&lt;/p&gt;
&lt;p&gt;Desconéctate de MSN/Live en horario de trabajo. MSN/Live de Microsoft es la red de mensajería instantánea que tiene más usuarios conectados en todo momento,y la mayoría no son profesionales. Por el contrario, servicios como GTalk de Google, tienen un número de usuarios más bajo que lo usan, y en la mayoría de casos son usuarios más avanzados que disponen menos tiempo para perderlo.&lt;/p&gt;
&lt;p&gt;Recuerda que tus amigos y familiares tienen tu teléfono, si es algo urgente te van a llamar.**
**&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Haz ejercicio, no pierdas relación con la gente que te importa, conoce a gente nueva relacionada con tu trabajo, practica sexo (si puedes) y sal de casa&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Debes ser consciente de que trabajar en casa, además de psicológicamente, te va a afectar físicamente.&lt;/p&gt;
&lt;p&gt;El ejercicio es fundamental para soportar cargas de trabajo, crear nuevas neuronas y mejorar el ritmo cardiaco entre otras muchas cosas. Dentro de tu horario de trabajo, fíjate una hora al día para cuidarte físicamente.&lt;/p&gt;
&lt;p&gt;Trabajando en casa no tienes compañeros de trabajo. **Esto es una desventaja muy grande, sino colosal. **&lt;/p&gt;
&lt;p&gt;Trata de sacar tiempo para hablar con tu familia, padres, amigos etc. Trabajar en casa y empezar con un negocio que debes sacar adelante si o si, va a limitar mucho el tiempo del que dispones para compartir con otra gente, especialmente si están fuera del ámbito de tu trabajo. Debes relacionarte con más gente, es importantísimo para ampliar tu cartera de contactos, forjar más amistades, aprender cosas sobre más temas que no sean tu trabajo pero que te puedan venir bien en un futuro, mejorar tu carisma, tu forma de expresarte, tu sentido del humor y tu vida en general.&lt;/p&gt;
&lt;p&gt;Practicar sexo además de proporcionaros a tí y a tu pareja placer, mejora tu autoestima, la circulación de la sangre, te libera de estrés y te hace estar de buen humor.&lt;/p&gt;
&lt;p&gt;Sal de casa aunque sea solo, busca cualquier excusa para hacerlo. A mí personalmente me resulta imprescindible escaparme a algún sitio donde pueda ver el mar y estar tranquilo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correo, RSS y Twitter&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El correo electónico es imprescindible para realizar nuestro trabajo hoy en día. Muchos de nosotros disponemos de varias cuentas a las que acceder y que debemos revisar todos los días.&lt;/p&gt;
&lt;p&gt;Centralizar todas nuestras cuentas en un sólo cliente nos va a evitar perder tiempo y olvidar leer algún correo importante.&lt;/p&gt;
&lt;p&gt;Para muchos, el estar al día en tecnologías, técnicas y metodología que aun no están documentadas y son imprescindibles para mejorar como profesionales, es gracias al seguimiento de cientos de sitios web que comparten experiencia y conocimiento.&lt;/p&gt;
&lt;p&gt;Los lectores rss nos permiten asimilar de forma cómoda cantidades colosales de información que nos llega cada día.&lt;/p&gt;
&lt;p&gt;Sin embargo son de sobra conocidas las desventajas de no tener un control del tiempo invertido en la lectura de toda esta información. Planifica dentro de tu horario, un tiempo para tu lectura diaría de rss y síguelo a rajatabla.&lt;/p&gt;
&lt;p&gt;Servicios de mensajería asincrona como twitter nos permite recibir información filtrada y recomendada por gente que hemos decidido seguir, además de conseguir nuevos y valiosos contactos. Elegir bien a tus contactos en este tipo de servicios es clave.&lt;/p&gt;
&lt;p&gt;**Evita horarios nocturnos, descansa y desconecta
**&lt;/p&gt;
&lt;p&gt;Muchos trabajamos de noche bastante mejor que de día, sobre todo cuando trabajamos en casa. Por la noche nuestro vecino no se va a poner a taladrar una pared, hay menos gente conectada en los programas de mensajería instantánea, hay menos tráfico en la calle, nadie normal nos va a llamar o abrir ventana en nuestro cliente de mensajería por alguna estupidez a media noche y seguramente el resto de habitantes de tu casa, estarán durmiendo.&lt;/p&gt;
&lt;p&gt;Sin embargo, ese tipo de horarios pueden evitar que tomemos en serio nuestras horas dedicadas al sueño y no nos permitan ser todo lo sociales que deberíamos.&lt;/p&gt;
&lt;p&gt;Es imprescindible estar lúcidos y descansados cuando hablamos con nuestros clientes u otras empresas/profesionales con las que trabajemos.&lt;/p&gt;
&lt;p&gt;Descansar es fundamental para ser más productivos. Piensa que si tienes que restar horas de sueño porque no estás consiguiendo todos los objetivos que deberías, es que algo has planteado mal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Debes desconectar&lt;/strong&gt;: vete a cenar/tomar copas con tus amigos, juega a la consola, alquila películas/ve al cine, ve a &lt;a href="http://nvivo.es"&gt;conciertos&lt;/a&gt;, escápate a una casa rural.. y vete a eventos que organize gente como tú.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.asiermarques.com/2008/cosas-que-he-aprendido-al-trabajar-como-autonomo-desde-casa-parte-2-de-2/"&gt;Continúa leyendo la segunda parte&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>About me</title><link>https://blog.asiermarques.com/info/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.asiermarques.com/info/about/</guid><content:encoded>&lt;p&gt;My name is Asier; I&amp;rsquo;m from &lt;a href="http://maps.google.es/maps?q=Barakaldo&amp;amp;hl=es&amp;amp;ie=UTF8&amp;amp;ll=43.2932,-2.988281&amp;amp;spn=11.992083,15.578613&amp;amp;t=h&amp;amp;z=6&amp;amp;iwloc=addr&amp;amp;om=1"&gt;Barakaldo&lt;/a&gt;,
but I live in Madrid, Spain.&lt;/p&gt;
&lt;p&gt;Currently, I&amp;rsquo;m working as Sr. Engineering Director at &lt;a href="https://www.auctane.com"&gt;Auctane&lt;/a&gt;, and
I&amp;rsquo;m studying psychology at &lt;a href="https://www.uoc.edu/"&gt;UOC University&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find me at:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Email: &lt;a href="mailto:asiermarques@gmail.com"&gt;asiermarques@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Twitter: &lt;a href="https://twitter.com/asiermarques"&gt;twitter.com/asiermarques&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Linkedin: &lt;a href="https://www.linkedin.com/in/asier"&gt;linkedin.com/in/asier&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instagram: &lt;a href="https://instagram.com/asiermarques"&gt;instagram.com/asiermarques&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Medium: &lt;a href="https://asiermarques.medium.com"&gt;asiermarques.medium.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item><item><title>Sobre mí</title><link>https://blog.asiermarques.com/info/sobre-mi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.asiermarques.com/info/sobre-mi/</guid><content:encoded>&lt;p&gt;Mi nombre es &lt;strong&gt;Asier&lt;/strong&gt;, soy de &lt;a href="http://maps.google.es/maps?q=Barakaldo&amp;amp;hl=es&amp;amp;ie=UTF8&amp;amp;ll=43.2932,-2.988281&amp;amp;spn=11.992083,15.578613&amp;amp;t=h&amp;amp;z=6&amp;amp;iwloc=addr&amp;amp;om=1"&gt;Barakaldo&lt;/a&gt; (País Vasco, España), y resido de forma habitual en Madrid.&lt;/p&gt;
&lt;p&gt;Actualmente formo parte del equipo de gestión de ingeniería de &lt;a href="https://bestsecret.com"&gt;Bestsecret Group&lt;/a&gt; liderando los equipos de desarrollo de software en el dominio de payments.&lt;br&gt;
Anteriormente trabajé en &lt;a href="https://auctane.com/"&gt;Auctane&lt;/a&gt; asumiendo el rol de Senior Engineering Director para el brand de Packlink Shipping y el hub de ingeniería de España.&lt;/p&gt;
&lt;p&gt;Empecé mi carrera tecnológica trabajando en el área de sistemas IT en empresas como Softec, Ibermática, Batz Coop. (Grupo Mondragón), Altran (en proyectos para Panda Security y BP Solar) para después pasar al campo de desarrollo web trabajando en nvivo Internet, como autónomo en diversos proyectos web y finalmente como director técnico en Ideateca Factory.&lt;/p&gt;
&lt;p&gt;En Mayo de 2009 fundé &lt;a href="http://blackslot.com"&gt;Blackslot SL&lt;/a&gt;, una empresa que se dedica a ofrecer soluciones avanzadas de sistemas y de desarrollo web para empresas que crean proyectos en internet.&lt;/p&gt;
&lt;p&gt;En Abril de 2011, desde Blackslot lanzamos &lt;a href="http://artesanio.com"&gt;Artesanio.com&lt;/a&gt;, una red social y plataforma de ecommerce saas para el mundo de la artesanía.&lt;/p&gt;
&lt;p&gt;En Octubre de 2011 fundo &lt;strong&gt;&lt;a href="http://simettric.com"&gt;Simettric&lt;/a&gt;&lt;/strong&gt;, una agencia de desarrollo de proyectos de innovación para Internet.&lt;/p&gt;
&lt;p&gt;En Febrero de 2012 me uno al equipo de dirección de 4Visions Gestió de Projectes, SL, empresa en la que desarrollamos soluciones de software online para freelances y agencias del sector de la traducción, &lt;a href="http://4visionshq.com"&gt;4visionshq.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En 2018 trabajé como responsable en el área de arquitectura de software en el &lt;a href="https://www.versia.com/"&gt;Grupo Versia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Me apasiona también la música, además de buscar continuamente grupos, artistas y temas, &lt;a href="https://www.mixcloud.com/asiermarques"&gt;practico el arte de la mezcla&lt;/a&gt; de música electrónica desde 1997.&lt;/p&gt;
&lt;p&gt;Puedes leer &lt;a href="https://es.linkedin.com/in/asier"&gt;mi currículum en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Y puedes encontrarme por:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Email: &lt;a href="mailto:asiermarques@gmail.com"&gt;asiermarques@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Twitter: &lt;a href="https://twitter.com/asiermarques"&gt;twitter.com/asiermarques&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Linkedin: &lt;a href="https://www.linkedin.com/in/asier"&gt;linkedin.com/in/asier&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instagram: &lt;a href="https://instagram.com/asiermarques"&gt;instagram.com/asiermarques&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Artículos en inglés en Medium: &lt;a href="https://asiermarques.medium.com"&gt;asiermarques.medium.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item></channel></rss>