Podando el árbol del conocimiento

arbol

Durante agosto he reducido mi lista de lectura de Pocket de 150 a tan solo 98 artículos (los más densos). Aún tengo horas de video de YouTube y Channel9 por ver, cursos pendientes por hacer en Microsoft Virtual Academy, Lynda (LinkedIn Learning) y Alison y docenas de libros y artículos por leer en PDF o papel.

No es que no lea, haga cursos y vea videos, es que no consigo hacerlo con la velocidad suficiente como para reducir su número. Llevo cerca de un año intentando reducir esas cifras, particularmente en Agosto, pero solo consigo frenar su aumento, que no es poco.

Revisando este blog es evidente que se trata de problema que está ahí desde hace tiempo, pero últimamente está empeorando debido a los múltiples roles que desempeño gracias al crecimiento profesional de mis últimos años: arquitecto de software, team leader, gestor de servicio, coach… Cada uno de ellos con unos requisitos de conocimientos y habilidades diferentes que no hacen sino ampliar el problema.

Entiendo que el origen de esto, no es tanto la cantidad de cosas que aparecen o toman relevancia en el plano técnico, como mi crecimiento profesional, mi dedicación a mi familia y mis años de experiencia y conocimiento acumulado. Esto último me hace más consciente ahora sobre lo que no sé en diversos dominios: tanto más allá de Microsoft, como más allá del desarrollo puro y duro. Otros han hablado ya del síndrome del impostor, pero este post no va de eso.

Creo que es momento de aceptar la realidad y dejar de nadar contra la corriente para empezar a navegar con ella. Dicho de forma menos poética esto implica reducir mi espectro de “intereses” y empezar a eliminar todo lo que no pueda traducirse en una mejora importante de mi vida. En particular, el tiempo que dedico fuera del trabajo a aprender o mantenerme al día debe tener una razón de peso para hacerlo y un impacto tangible. Por ejemplo, mi actividad en SwCraftersCLM continuará porque me carga las pilas aportar a una comunidad de forma directa y desinteresada. Además me pone en contacto con gente, problemas y soluciones fuera de las burbujas de Microsoft y Madrid, que siempre es algo bueno.

Escribo este artículo para obligarme a parar a pensar en este problema y en posibles soluciones; para ayudarme a seleccionar qué se queda y qué se va de todo ese conocimiento que tengo en cola; y para seleccionar una ruta más concreta de aprendizaje que mejore mi futuro.

Provisionalmente la lista de temas importantes para continuar aprendiendo o trabajando, es esta: Soft skills para mejorar lo que hago con personas, Arquitectura de Azure para no quedarme desactualizado al ritmo que lleva la nube en la que trabajo actualmente y Blockchain porque parece la tecnología con más potencial de los últimos 20 años… y además puede trabajarse en Azure.

NOTAS:

Dado que uso este blog como una bitácora donde apunto temas que quiero tener a mano en el futuro, he podido revisar mi proto visión de este problema a lo largo de los años (años ’10, ’11, ’12, ’15 y ’16).

Reproduzco aquí algunos extractos por si alguien tiene interés o ve paralelismos con sus propios problemas y le ayuda a resolverlos:

El mundo del desarrollo con Microsoft, a pesar de todas las facilidades, potencia y posibilidades de integración que ofrece, puede llegar a hacerse bastante cuesta arriba cada vez que sale una nueva versión de sus productos, algo que sucede, para bien o para mal, muy a menudo.

[…]

tenía ganas de soltarlo y pararme a pensar un rato sobre ello, porque el reciclaje constante, el cansancio acumulado gracias a mi pequeña Celia, y los proyectos pueden llegar a hacer pesados los días de I+D con límite de tiempo, y eso hay que atajarlo si no se quiere acabar con un síndrome de burnout.

Desde <https://jbolano.wordpress.com/2010/01/28/reflexion-sobre-el-desarrollo-de-software-tecnologias-y-herramientas-reciclaje-extremo/>

siempre hay que estar aprendiendo, pensando y probando, nunca puedes “apalancarte” y muchos acaban quemados o abandonando lo que parece una carrera de ratas. Al final los que quedan, son probablemente los que más y mejores soluciones conocen (por mera experiencia) y eso debería hacerlos valiosos por encima de modas.

Desde <https://jbolano.wordpress.com/2011/12/18/toma-de-decisiones-y-desarrollo-de-software/>

“¿cómo arreglamos este gap, este abismo de conocimientos que está cargándose la viabilidad de mi empresa?” La respuesta es, en mi opinión, que no se puede resolver, solo podemos tratar de minimizar el problema. Y para minimizarlo, al margen de reconocerlo en nosotros (sí, todos lo tenemos, no se libra ni Dios) y en los demás, debemos tratar de atacarlo a la mínima oportunidad: si vemos que nuestros compañeros desconocen algo o realizan tareas que debería estar realizando una máquina, debemos acercarnos y ayudar con ello. Se requieren también paciencia, curiosidad y humildad para reconocer nuestra propia ignorancia y ocasional estupidez. Y se requiere una voluntad de equipo para tratarla entre todos en el día a día, a pesar del estrés, los roces y los humos de cada uno de nosotros. Pero sobre todo, creo que se requiere valor y asertividad para cuestionarlo todo (independientemente de la jerarquía) y disentir públicamente.

¿Difícil? Sí. ¿Incómodo y desagradable en muchos casos? Desde luego. Pero la alternativa dada la velocidad de los acontecimientos, es el fracaso a medio y largo plazo. Y si no, que se lo digan a la industria musical (barrida por iTunes y el P2P), la industria del cine (barrida por Megaupload y los torrents) o la industria editorial (barrida por Amazon y los ebooks) entre otras afectadas por no tener un marco de conocimientos adecuado sobre la tecnología y las herramientas.

Desde <https://jbolano.wordpress.com/2012/08/14/el-abismo/>

el desarrollo de software ha pasado por muchas etapas en un periodo de tiempo muy comprimido y en cada una ha ido ganando complejidad, añadiendo capas de abstracción y mejorando todo lo existente anteriormente de manera fulminante (a ver quién se acuerda de Word Perfect, Altavista o Myspace). Y durante ese viaje, los desarrolladores hemos ido aprendiendo por las malas que cada problema es muy distinto y requiere distintas aproximaciones

Desde <https://jbolano.wordpress.com/2012/09/27/una-breve-historia-del-desarrollo-de-software/>

Creo que todas estas son buenas razones para esperar unos tiempos la mar de interesantes en todos los frentes, y estoy deseando ver qué pasa y cómo reaccionan competidores y mercados. Ver qué falla y que arrasa, y por supuesto qué más se saca todo el mundo de la manga.

Desde <https://jbolano.wordpress.com/2012/10/22/el-desembarco-de-normandia/?preview=true&preview_id=2446&preview_nonce=0f8b62d27f>

Para terminar solo quiero dejar una última reflexión: cuando veo desarrolladores que se enfrascan exclusivamente en su tecnología de trabajo actual y por falta de tiempo o curiosidad, saben poco o nada de otros campos, herramientas y tecnologías, pienso que es poco probable que sean capaces de aportar ideas nuevas y por lo tanto de evolucionar y mejorar. Y eso es malo para todos.

Desde <https://jbolano.wordpress.com/2015/03/22/reflexion-analogias-experiencia-directa-y-desarrollo-de-software/>

muchos eventos importantes en 2009: el embrión de Azure y Office 365 (BPOS), Android 2.0 (la primera versión buena), Windows 7 (el más querido), ECMAScript 5 (el JavaScript de la nueva web), Bitcoin (y la explosión del blockchain), GO (del que Javier nos dará una charla pronto) y Node JS (¿el nuevo Java/PHP?) del que vimos cómo se usaba en producción en las Lambdas del AWS de BrainSINS en el último Meetup.

Desde <https://jbolano.wordpress.com/2016/12/09/developer-timeline-1996-2016/>

Anuncios

Developer Timeline 1996-2016

pope-john-paul-ii-and-fidel-castro-watching-time

Hace unos meses intenté convencer a algunos desarrolladores de que necesitaban aprender Git. Algo que desde mi perspectiva parecía obvio y urgente se tornó, pese a mis esfuerzos por argumentarlo, en imposible. Desde entonces he estado dándole vueltas al tema de la obsolescencia de las herramientas, técnicas y servicios que los desarrolladores usamos a diario y a como alternamos entre lo malo conocido y el hype del momento.

Esto me llevó a pensar en cómo “de-mostrar” a determinados perfiles técnicos de la necesidad de actualizarse, lo cual me condujo a confeccionar una “línea de tiempo” o mapa de tecnologías y herramientas de desarrollo .NET para poder observar el avance en determinados ámbitos como el control de versiones de código.

Gracias al intercambio de ideas de los Meetups en SwCraftersCLM GDG Toledo y los ánimos que me han dado desde esta comunidad para publicar el “timeline de desarrollo”, he terminado una versión 1.0 1.2 que he colgado en Google Sheets para uso y adaptación de otros equipos de desarrollo, incluso de otros stacks tecnológicos. O aprovechando que acabamos el año, para pararse a pensar qué aprender en 2017 2018.

El Excel es el siguiente: Developer Timeline 1996-2017

¿Para qué sirve?

La idea es poder usar la hoja como herramienta de 4 formas diferentes para varios objetivos:

  1. Para poder revisar en qué punto estamos de actualización técnica y ayudarnos a decidir si aprender o no una tecnología en concreto.
  2. En grupos de desarrollo. Para poder argumentar con datos objetivos frente a nuestros compañeros sobre la necesidad, o no, de reciclarnos tecnológicamente. Como mínimo debería facilitar el diálogo sin caer en el flame.
  3. En charlas. Para poder hacer una introducción simpática para todos los públicos sobre determinadas tecnologías como Core o SharePoint Framework añadiendo un contexto tecnológico más amplio que facilite el entendimiento de los problemas que resuelve.
  4. En organizaciones. Para poder establecer el nivel de actualización de una organización (la nuestra u otras) de una forma más o menos objetiva. En última instancia podría ayudarnos a decidir si embarcar en una empresa o desembarcar de la actual.

¿Qué contiene?

La hoja contiene varias categorías (eje vertical) y eventos relevantes para cada una de las categorías, repartidos por año (eje horizontal).

Me pareció adecuado empezar en 1996 por tener un intervalo amplio y “redondo”: 1996-2016. El año 1996 sirve además para poder establecer una línea base de “desarrollo viejuno”.

La información que contiene está orientada por mi experiencia y entornos de trabajo a lo largo de los años por lo que hay bastante de Microsoft, pero he tratado de mantenerlo flexible para poder adaptarlo a otros entornos aglutinando la mayoría de elementos específicos de Microsoft en su propia categoría.

Sobre las categorías, los datos y la selección

Hay muchos elementos que podría haber metido pero que finalmente he eliminado por claridad (versiones, irrelevancia…) y simplicidad.

Muchas fechas son aproximadas y en algunos casos discutibles. En general he tratado de tomar las más importantes como por ejemplo productos release en lugar de beta.

Hay bastante tecnología Microsoft debido a mi propio background y el público al que lo he enfocado, pero he tratado de mantenerlo flexible para otros stacks.

Este documento no pretende ser canónico, sino una herramienta ilustrativa de la evolución y periodos que vivimos los desarrolladores de software. Está pensado para ser modificado de forma sencilla por lo que he desistido (de momento) de hacer un gráfico SVG interactivo con D3 y JSON.

Las categorías en que he agrupado los eventos son las siguientes:

  1. Papas: Los papas de la Iglesia Católica Apostólica y Romana que hemos tenido desde el 96. Me parece interesante mostrar que hasta las organizaciones más antiguas y tradicionales experimentan más cambios que algunas personas o empresas.
  2. Efemérides: Evento de relevancia nacional o mundial. Permite replantearse la cantidad de tiempo que ha pasado entre tecnologías y los grandes cambios que han sucedido en la sociedad.
  3. Películas: Estrenos de cada año. Me parece un detalle simpático para tratar de poner en contexto el tiempo que ha pasado, en particular entre fans de Marvel como yo, y la cantidad de proyectos que pueden llevarse a cabo en 5 o 10 años.
  4. JavaScript: Aun hay gente que no quiere saber nada de JavaScript o quiere quedarse en la versión del ’99. Visibilizar la cantidad de hitos que ha tenido debería facilitar el NO poder ignorarlo.
  5. Autenticación y Autorización: Todavía tengo que explicar las diferencias entre autorizar y autenticar. En el panorama actual y dado que es necesario conocer estos temas para realizar cualquier aplicación moderna, me parece grave y por eso le he dado su propia categoría.
  6. Servicios web: Esta categoría trata de servicios web y trata de poner de manifiesto que la diferencia entre SOAP y REST en realidad son pequeñas y que deberíamos mirar más allá del hype al evaluarlas. También pone en el mapa los webhooks, que parece que son grandes desconocidos a pesar de su utilidad y antigüedad.
  7. Formatos de datos: Me pareció apropiado añadir esta categoría tras la de servicios web para señalar que son dos cosas independientes y que ya va siendo hora de aprender a usar JSON. O usar Markdown en lugar de HTML en según que contextos.
  8. Front End: Esta categoría podría ser una hoja aparte, pero he tratado de incluir estándares de facto y orientarme a desarrolladores back o full stack. He añadido asteriscos a temas de W3C para recordar que… “es complicado” asegurar en qué estado están.
  9. Gestión de código: Esta es la razón por la que comencé a confeccionar el Excel y por eso tiene un componente “fuerte” de productos Microsoft, pero dejando claro que el estándar a día de hoy es Git. De hecho, es importante mencionar que Microsoft lleva años migrado todo su código abierto a Github.
  10. Servicios de terceros: Incluyo una lista de servicios de terceros relevantes para perfiles técnicos. Estos deberían contrastar con la antigüedad de algunas de las herramientas de algunos técnicos. Si, por ejemplo, alguien usa Dropbox (2008) o Google Drive (2012), no podrá argumentar que Git es demasiado moderno (2005).
  11. Microsoft Stack: categoría específica para los que usan el stack de Microsoft, por lo que en adaptaciones a otras empresas debería adaptarse. El “baseline” es Outlook porque me pone nervioso ver que no se sabe usar a nivel básico (carpetas, convocatorias, respuestas automáticas…) y es una herramienta que todos usamos a diario para trabajar en empresas, en particular con el stack Microsoft.
  12. S.O.: Sistemas operativos desde el ’96. Con especial detalle en el ámbito Windows, claro. Porque todavía hay quien quiere volver a W7 por pura resistencia al cambio.
  13. Dispositivos Móviles: He tratado de sintetizar el panorama en dispositivos móviles. Al estar tan unidos hardware y software he mezclado ambos elementos. Evidentemente Windows Phone/Mobile se queda fuera.
  14. Lenguajes: Es interesante ver que los lenguajes de back-end son bastante estables, pero no inmutables.
  15. Entorno de ejecución: Parece que todo es alguna variedad de la máquina virtual de Java o el que tiene que funcionar sobre el CLR de .NET y no solo no es así, sino que el panorama parece que va a cambiar cada vez más. Estuve tentado de introducir Docker también, pero los contenedores son otra historia y aun me parece pronto para añadirlos, quizá el año que viene o quizá en otra categoría de DevOps.

Como nota curiosa no he notado nada interesante en 2003 pero si muchos eventos importantes en 2009: el embrión de Azure y Office 365 (BPOS), Android 2.0 (la primera versión buena), Windows 7 (el más querido), ECMAScript 5 (el JavaScript de la nueva web), Bitcoin (y la explosión del blockchain), GO (del que Javier nos dará una charla pronto) y Node JS (¿el nuevo Java/PHP?) del que vimos como se usaba en producción en las Lambdas del AWS de BrainSINS en el último Meetup.

En resumen

Como decía el personaje de Will McAvoy en The Newsroom: El primer paso para resolver un problema es reconocer que hay uno (minuto 5:00, pero el speech completo es impresionante).

Mi intención inicial era mostrar como Git es una herramienta indispensable para el desarrollador de .NET de hoy, comparándola con eventos relevantes del pasado reciente de forma objetiva y amigable.

Aunque parece que he conseguido construir esa herramienta, creo que he generado algo más potente, una especie de minicuadrante de Gartner del desarrollador .NET (y en general) que podría servir para animar a algunos técnicos a reciclarse, y que me ha ayudado a ampliar mi visión estratégica para 2017 así como a mejorar mi planteamiento como arquitecto de soluciones y líder técnico. O como mínimo me ha aclarado panorama bastante ahora que parece que todos andamos perdidos de stack en stack y de framework en framework especialmente en el mundo Microsoft.

Para terminar

Al revisar mis propios artículos me parece reconocer que en el universo Microsoft, 2016 es una repetición de 2012. Da para otro artículo, pero si estás más o menos al día creo que podrás ver las semejanzas entre el panorama actual (Azure, Office 365, Hololens, ARM, Open Source…) y el que describí en 2012 en: El desembarco de Normandía.

Y si te ha interesado este artículo, es muy probable que te interesen mis artículos: Breve historia del desarrollo de software de 2012 y mi predicción sobre el futuro de Blackberry, iPhone y Palm en 2007: La muerte de Blackberry.

La que he liado – Un contexto y una disculpa

William-Adolphe Bouguereau (1825-1905) - Two Sisters (1901)

Hace unos días uno de mis tuits generó bastante actividad, entre el debate y el enfado, dependiendo del momento y del participante (no me excluyo).

No es la primera vez que esto sucede en Twitter. Ni soy el primero en provocar o sufrir esto, ni es algo raro o especial como pueden atestiguar Edin Kapić, MVP de Microsoft y una de mis referencias favoritas de esa comunidad, o Roberto Luis Bisbé al que también sigo al resultarme interesantes sus contenidos. Trato de tomarlo como uno de los gajes de la exposición pública y la tendencia al malentendido del medio escrito, inmediato y limitado a los 140 caracteres que es Twitter.

Que Edin (por partida doble), Roberto y yo compartamos este dudoso honor, no significa que seamos equiparables, amigos, ni nada por el estilo, simplemente son tres ejemplos recientes de “la-que-he-liado” en la comunidad Microsoft, en Twitter. De hecho solo he hablado en persona con Edin en un DevCamp de Apps para SharePoint 2013 de Microsoft en 2013 y con Roberto en la Iberian SharePoint Conference de 2013. Para mi, ese fue un buen año de asistencia a eventos en horario laboral.

Los que me conocen saben que vivo en Toledo, por lo que mi participación física en eventos en Madrid, donde suelen darse estos, es complicada sin una aprobación de mi empresa para hacerlo en horario laboral. Máxime cuando tengo una pequeña de 6 años a la que idolatro. Eso convierte el texto de este blog y mi perfil de Twitter en los únicos medios desde los que puedo “hablar” o al menos expresarme en público con otros desarrolladores (y otras personas con intereses similares a los míos), en particular de Microsoft, fuera de mi oficina. Fuera del mundo Microsoft lo tengo más sencillo con los Meetups de Software Craftsmanship CLM.

Entiendo que otras personas tienen otros entornos, medios y motivaciones: cada uno tiene su contexto. Y en ese contexto se enmarcan las opiniones que vertemos. De nuevo Twitter no es el mejor modo de conocer este contexto, siendo lo óptimo las relaciones cara a cara durante años, pero eso requiere de unas circunstancias laborales y personales que no tengo.

Iba a usar este texto como inicio para hablar de Eventos técnicos, Ferias, Comunidades Técnicas, Meetups, Open Spaces y demás elementos que parece que mezclamos en algunos eventos como el pasado Techsummit. Es algo en lo que me apetecía pensar (y por lo tanto escribir) tras la discusión desencadenada, pero parece que este prólogo me ha quedado demasiado largo y no estoy seguro de cuando podré terminar de escribir mis opiniones al respecto debido a mis circunstancias personales y profesionales.

En cualquier caso, me gustaría terminar este post ofreciendo mis disculpas a quien quiera que haya podido sentirse ofendido con mis palabras en esa discusión en particular y en las futuras. Al fin y al cabo todos formamos parte de la misma comunidad, y por lo tanto todos queremos lo mejor para esta. De eso no tengo duda.

¿Continuará?…

Igualdad y desarrollo de software. ¿A quién le conviene?

wp_20150201_001

Hace unos días asistía en Twitter a la conversación de varios desarrolladores, MVP, técnicos, etc. acerca de la visibilidad de las mujeres en el evento para desarrolladores Codemotion. Espoleados por nuestro particular Pepito Grillo de la comunidad Microsoft en España Edin Kápic, los comentarios no se hicieron esperar por parte de desarrolladores, MVP o evangelistas de Microsoft como Isabel Cabezas cuya opinión como representante femenina tiene especial valor.

Al final, entre tanto hilo y con la limitación de espacio que caracteriza a Twitter parece que teníamos muchas preguntas e interés en el tema de mujeres y desarrollo de software pero pocas respuestas.
Como parte doblemente interesada por ser desarrollador y padre de una hija a la que me gustaría ver en “ciencias” (STEM), quiero hablar solo un poco (el tema es extremadamente complejo por lo que parece absurdo intentar ir más allá en solitario) de mis opiniones y dudas acerca de si es necesario o siquiera buena idea esforzarse en aumentar la presencia femenina en el sector.

Empezaré diciendo que la vez que más abiertamente he escrito sobre el feminismo fue comentando en junio el documental CodeGirl  y que cobra mayor relevancia con cada evento que persigue la igualdad estadística entre sexos. Y no lo he hecho más a menudo porque es un tema “caliente” que podría volver fácilmente un texto en un problema para el autor, pero con una hija estos temas cobran cada vez más importancia. También, quizá por haber leído Universidad y Ciencia en España, de Clara Eugenia Nuñez  y La Tabla Rasa de Steven Pinker, me surgen serias dudas sobre si es buena idea lanzarse a movilizar mujeres y hombres a la búsqueda de la igualdad estadística, en parte por si estamos resolviendo un problema equivocado y en parte por si provocaremos efectos secundarios no deseados.

En cuanto a mi opinión sobre las mujeres en el software, aunque muchos comentan que todas las desarrolladoras de software con las que han trabajado eran estupendas, yo diré que también las he encontrado muy malas, pero parecen trabajar mejor en equipo en general. De todos modos no he tenido ocasión de trabajar con tantas como hombres ni de lejos así que aquí tengo un sesgo clarísimo, y eso señala un problema o una característica social o del sector que valdría la pena explorar.
Sobre mujeres dando charlas, la única vez que he insistido en que alguien nos diese una charla técnica fue de una compañera de front-end. Ella pensaba que “no era tan buena” pero yo veía evidente que sí y creo que el tiempo acabó dándome la razón. En ningún caso quería incluir mujeres (era interna) sino aprender de los más competentes y en este caso era ella.

Por último, pongamos algunas cosas sobre la mesa:

  1. Hay un interés económico claro y reconocido de aumentar el pool de desarrolladores disponibles para la industria (lean algunos comentarios, son interesantes).
  2. Hay un interés claro de determinadas empresas en aumentar la diversidad de desarrolladores (más allá del sexo) en sus plantillas en pro de la “innovación”. Sea lo que sea eso.
  3. Como sociedad, parece que España es una de las mejores del mundo, muy lejos de la estadounidense.
  4. Desarrollar software no es fácil, y requiere de una dedicación seria con una necesidad de renovación constante que no todo el mundo (sea del sexo que sea) está dispuesto a asumir y mucho menos a disfrutar. Recordemos que los jóvenes quieren ser funcionarios.
  5. Los Estados Unidos son una sociedad diferente, con problemas diferentes a la Española, de los cuales no deberíamos importar soluciones sin más, sin un poco de espíritu crítico, a riesgo de generar nuevos problemas o romper cosas que funcionan, como la sanidad pública.
  6. Hay despidos en empresas técnicas como Microsoft a nivel mundial o HP localmente.

Por tanto, mi opinión actual es que tenemos varias economías nacionales con intereses claros en aumentar y diversificar el pool de desarrolladores. Tenemos también una oleada de problemas “del primer mundo” y soluciones extraídas de la sociedad estadounidense que están siendo importadas prácticamente sin espíritu crítico por colectivos interesados como son políticos (votadme mujeres de 18 a 35 años), empresas de eventos (mujeres, venid a mi evento de pago) y empresas/profesionales de formación (hágase rica programando con mi curso). Sobre la formación además parece que estamos ante una burbuja.
Y por último tenemos a los desarrolladores sin distinción de sexo o edad, que parece que tenemos un incentivo económico para NO aumentar el pool de desarrolladores. Con ello algunos esperan conseguir sueldos un poco más altos (acordes a lo que esperaríamos en otras economías del entorno) o al menos evitar despidos como los de HP por poner un ejemplo. Este último caso deja claro que no hay escasez real de mano de obra técnica, sino de mano de obra barata.

Todo esto debería dar bastante que pensar y hace que me plantee decenas de preguntas. Tantas que he desistido de intentar articularlas o mencionarlas aquí con idea de centrarme en la más importante.

¿Qué problema queremos resolver realmente?

O a nivel más personal y concreto ¿cómo va a hacer más felices a mi mujer y a mi hija el aumento de mujeres desarrollando software?

A la primera pregunta la única respuesta evidente es que queremos abaratar costes a empresas (no a autónomos, ojo). Por favor, si alguien tiene otra, que me la diga, porque yo no soy capaz de dar una alternativa.

A la segunda pregunta no parece que aumentar el número de mujeres desarrollando vaya a tener un efecto beneficioso sobre el futuro de mi hija. A priori, siendo mujer te puede ir mejor si está dispuesta a aprovecharte del sistema y de los sesgos (leyes, micromachismos) aunque imagino (que no veo) que puede tener sus ventajas aumentar el número. Pensando en efectos secundarios lo que veo es un escenario de sueldos peores y mayor competencia, por lo que estaríamos ante la típica carrera hacia el abismo.

Así que, aunque me parece normal y deseable que grandes empresas se envuelvan en la bandera de la inclusión para mejorar ingresos, yo no veo ningún incentivo para que los trabajadores apoyen iniciativas de este tipo, fuera de los sectores de formación, organización de eventos y política (que no es poco). E incluso yendo más allá y reconectando con el tema que abría este post, me pregunto si tienen sentido los eventos técnicos presenciales a día de hoy o si deberían cambiarse a un formato más inclusivo para todos como es el remoto vía Hangouts y similares. Quizá las hololens y otras tecnologías puedan aliviar a eso y permitir que las minorías que no pueden o no quieren viajar a los eventos, formen parte de estos.

Para terminar este artículo, me gustaría dar algo de visibilidad a la iniciativa de Codemotion y a Isabel Cabezas para que aquellas mujeres que quieran dar una charla sepan que son bienvenidas en el Codemotion 2017. Yo por mi parte intentaré organizar una mesa redonda en el Meetup que hacemos regularmente en Toledo, acerca de la inclusión de niños (tenemos padres y tíos) y mujeres (no se animan a venir) en el mundo de desarrollo software.

PD: he tenido que reescribir este artículo tantas veces, para evitar problemas, no dispersarme demasiado y hacerlo digerible, que casi voy a tener que coger unas vacaciones en cuanto lo publique.

Las dos palabras que todo profesional debería usar más

Hace unos días, Manuel de la Peña twiteó un texto que comentaba una vieja historia (más bien fábula) de monos, jaulas, preguntas y procedimientos.

Eso me trajo a la memoria pequeño artículo que leí en Hardvard Business Review sobre el arte de hacer preguntas. Un artículo que en su momento me invitó a pensar en la importancia no tanto de las técnicas de hacer preguntas, como de lo esencial que es conocer el “por qué” de las cosas (y para lo que se necesita hacer preguntas, claro).

También me recordó este otro artículo sobre qué hacen las personas que son buenas escuchando y que en mi opinión es una consecuencia de interés genuino en entender los “por qué“.

La falta de interés y esfuerzo en tratar de entender las cosas, sus objetivos y contextos (esto es, el “por qué“) es un tema que me da mucha rabia observar (incluso en mi) y del que hace tiempo que tenía pendiente quejarme un poco en público. En público, porque tiene relación directa con todos los procesos que se realizan en cualquier empresa; también con las buenas prácticas (best practices) que parece que muchas personas se emperran en recomendar o exigir sin entender que dependen del contexto. Y por supuesto porque tiene que ver con los que critican (y criticamos) decisiones de terceros a nivel personal, de negocio o político casi a diario.

Hay por supuesto profesiones en las que en general se necesita hacer preguntas básicas constantemente de forma directa o indirecta, como en medicina (¿le duele aquí?, ¿puede caminar?), donde cada prueba médica es una forma de pregunta y cada mirada o toque está orientado a obtener una respuesta (el ojo clínico). Supongo que haber tenido un padre médico ayuda a ver ciertas cosas de cierta manera.

No obstante, la mayoría, durante la mayor parte del tiempo observa, juzga y condena sin conocer el “por qué” de una decisión. Pocos se molestan en hacer preguntas la mayor parte del tiempo. Mucho menos una tan básica como “¿por qué?“. Y desde luego nunca seguida de otro “¿por qué?” como en el método Toyota-Lean-Kaizen-Six Sigma de los 5 por qué para la mejora de procesos.

Me temo que hemos cogido miedo a hacer preguntas básicas, las más importantes, por miedo a parecer ignorantes y menos valiosos en nuestro entorno personal y puesto de trabajo, e irónicamente eso nos hace más ignorantes y menos valiosos.

Pero no acaba ahí el problema: como nadie hace preguntas para entender un contexto todos acabamos dando por sentado que este no importa y/o que todos tenemos la misma idea en la cabeza, lo que provoca errores y dificultad en la comunicación. Un desastre.

En fin, que las dos palabras que creo que todos deberíamos usar más son evidentemente “¿por que?”. Aunque hay otro par de palabras que, si se usasen con sentimiento real, también deberíamos usar más y mejoraría mucho nuestras vidas: “por favor”. Porque es sorprendente lo bien que responden algunas personas a un poco de interés y educación y como redunda eso en un win-win de libro.

Así que tras quejarme un poco y habiendo dejado algunos enlaces (espero) interesantes, solo puedo cerrar este post invitando a todos a preguntar más y mejor. Con inocencia y abiertos a escuchar.

Libro: The psychopath code. Cracking the predators that stalk us

psico

Título: The psychopath code. Cracking the predators that stalk us
Autor: Pieter Hintjens
Editorial: Supongo que autoeditado. Solo tengo la versión Kindle. Y hay otra gratis en GitBook.

Ahora mismo no tengo ni idea de cómo encontré este libro, pero el precio en Amazon y el titulo me llamaron la atención lo suficiente como para empezar a leer la muestra gratuita y rápidamente lo compré para leerlo entero.

No es el primer libro sobre psicópatas que leo, pero sí el primero que leo escrito por un desarrollador de software (entre otras cosas), lo que me parece curioso teniendo en cuenta lo que me interesa el tema y que también desarrollo software profesionalmente. Quizá haya un patrón aquí: desarrollador, comunidades en línea, interés en psicópatas.

Obviamente no es el primero en escribir del tema de los psicópatas y su realidad y efecto en nuestras vidas:

Hay gran cantidad de libros, artículos y vídeos (TED por ejemplo) sobre el problema de los psicópatas que andan sueltos por el mundo. Pero Hintjens hace algo muy interesante: nos ofrece una teoría de la psicopatía. Y como buena teoría nos ayuda a explicar por qué existen, qué los mueve, como actúan y como defendernos de ellos.

La idea central del libro es que los psicópatas, los que nacen así, tienen una razón evolutiva que en el mundo actual se ha ido de madre dado el tamaño e interconexión de la sociedad actual. En el libro se propone una visión radical en la que la sociedad humana no es una y homogenea, sino un complejo sistema biológico en el que se han desarrollado humanos depredadores de humanos. Y todo ello lo va desarrollando metódicamente con ejemplos claros basados en los personajes clásicos del mundillo de la seguridad informática (Alice, Bob y Mallory).

No voy a meterme en si el libro es más o menos científico (no lo es en el sentido de un artículo de Scientifics American) pero si en el proponer una hipótesis (que los psicópatas existen porque existe un nicho evolutivo para ellos) y desarrollando la idea para encuadrarla en diferentes escenarios para establecer su capacidad de predicción.

Quizá para muchos esto sea demasiado laxo, pero para mí el poder explicar y predecir, el disponer de un modelo de psicópata aunque no sea completamente fiable, es algo impresionante.

Aunque el libro en ocasiones me parezca excesivo en encuadrar determinados comportamientos dentro del perfil de psicópata, y aunque sospecho que la experiencia vital de Hintjens lleve los ejemplos demasiado lejos, tengo que reconocer que me parece uno de esos libros que te cambian el chip.

A continuación un par de citas de interés, aunque repito que hay una versión online para leer en Gitbook.

A healthy group spends little time on decision making. Its members have high independence. They tend to do first, talk second. There is little or no argument. An infected group struggles to get consensus. Its members argue over irrelevant details. Even the smallest project takes huge p anning, and stresses everyone. You cannot fix such groups. I have tried many times. Groups grow around founders and rules. You cannot change the rules after the fact. And to keep out bad actors, you must have the right rules.

-o-

Can we eliminate psychopathy? I’m not even sure that’s a sane goal. This predator-prey battle has been the main force of human evolution for millions of years. Without it, we’d be a historical footnote.

-o-

recognize these negative triggers, and we can become resistant against them. There are two main reasons for negative triggering. The first is history. We evolved for a different world with fewer people and far more real dangers. Modern life is safe, easy, and yet complex and filled with other people. We compete with each other for toy points. Exposure to the elements, ignorance, or non-human predators is the exception, not the rule. We are a species on holiday. Our emotions are often the idle hands waiting for the Devil’s commands.

-o-

If you confront a psychopath in the workplace, have your exit ready. You Will not be staying long. Mallory knows exactly how to make people hate and fear you. She will with tears in her eyes accuse you of sex crimes, financial fraud, and worse. She Will explain in clear detail why all the trouble is your doing. VVhat you can do instead is to collect violations of company policy or the law. You need documentation and proof. You need more than one case. You can then report these to your management, or HR. Since HR’s first job is to protect the firm from bad actors, they should be able to help.

-o-

She only shows admiration and affection for more powerful people in the organization. We all meet psychopaths at work. If you know how Mallory works, you can see this happen almost in real-time. If not, it can take years to realize “it was not normal. ” You may want to try to fix things. It is unwise to accuse co-workers of being psychopaths. Only a trained professional can make such a diagnosis. And even then, only with cooperation from the subject. Mallory is not going to walk with you into Human Resources and agree that she’s a problem.

-o-

She moves up and sideways through the company structure. The workplace often wraps a blanket of anxiety and stress around its staff. Few people expect their work to make them happy. Many businesses use mindcontrol techniques on their staff. These are the same techniques psychopaths use. All this disguises Mallory’s impact crater. When Mallory enters a workplace, she is already thinking how to leave it. She has mimmal interest in the people or the work. She’ll go through them and take what she can.

-o-

[Acerca de comunidades online] Administrators SHOULD block or ban “bad actors” who cause stress and pain to others in the project. This should be done after public discussion, with a chance for all parties to speak. A bad actor is someone who repeatedly ignores the rules and culture of the project, who is needlessly argumentative or hostile, or who is offensive, and who is unable to self-correct their behavior when asked to do so by others.

-o-

[Acerca de sintomas de la existencia de un psicópata en una comunidad y el lugar de trabajo] It takes too long to come to consensus. There is too much argument over insignificant details. Staff spend more time justifying themselves than doing valuable work. The team feels stuck and lethargic, though individuals seem bright. People are leaving for unspecified reasons. If you are stuck with Mallory in the same workplace then your feelings will evolve. You’ll have a long period of frustratlon and some anger. Then you will feel burnout. This is a sudden shift in mood from trying to make things work to disgust. You will want to avoid talking to anyone in the team.

-o-

Yet without constant pressure from cheats, there is no game. And without a game, humanity has no future. VVhat do you mean with that? I think we’re still evolving, as we must, to overcome the limitations of our planet. We Will go to the stars, or we will go extinct. Not tomorrow. Maybe in a thousand years. And while the altruists will build the spaceships and design the hibernation tanks, it will be psychopaths that provide the hunger. Every dramatic voyage of discovery is driven by false promises and lies. Most end in disaster. Some succeed, and take us forwards.

Y esto es todo por el momento. Aunque me estoy dando cuenta de que me preocupan mucho los comportamientos anti éticos. Me pregunto si será innato o aprendido. 🙂

Windows Phone ha muerto

IMG_20160428_063036267

En 2007 escribí sobre la muerte de Blackberry y su relación con la explosión que iba a producir la inminente salida del iPhone 1 y los movimientos de Google en móvil. Sin duda un ejercicio de futurología bastante acertado desde la perspectiva que da leerlo tras 9 años.

Hoy voy a hablar de la muerte de Windows Phone que lleva sucediendo desde hace meses de forma cada vez más acelerada.

No soy el primero ni el único en dejar constancia de mi disgusto con Windows 10 Mobile o en dar el paso de abandonar (a Android). Profesionales pro Microsoft como Wictor Wilen o Luis Ruiz Pavón estamos abandonando de forma pública y sonora. No hay más que pasarse por Twitter, donde pueden leerse comentarios como los siguientes desde hace meses:

El caso es que llevo unos días con mi nuevo Moto X Play, el terminal más decente y barato que he podido encontrar, para quitarme el lastre en que se había convertido mi Lumia 630 con Windows 10 (beta). Y aunque todo tiene sus pros y contras el hecho es que no tengo intención de volver a comprar un terminal con Windows. Hay muchas razones por las que se ha llegado a esta situación y diría que se trata de un tema extraordinariamente complejo que no voy a tratar de analizar aquí, pero sospecho que Microsoft conoce perfectamente el panorama y ha estado realizando una retirada ordenada en los últimos meses, evitando sacar nuevos terminales y virando hacia un nuevo frente con menos resistencia. En parte, por esa sensación he estado aguantando mi Lumia hasta hace unas semanas cuando empecé a buscar una alternativa adecuada.

En mi opinión, y sin disponer de ninguna información privilegiada (tipo MVP), está bastante claro a estas alturas que Microsoft no va a sacar más terminales Lumia de gama “baja”. Ni nada que esté orientados a ser simplemente un móvil. Microsoft va a saltarse ese paso fallido, pero va a continuar sacando terminales orientados al mundo post-móvil. Ahí entran tanto las tecnologías de Continuum como las Hololens entre otras, que parece que van a convergir en algo más allá del teléfono móvil. Pero eso solo puede funcionar si sacan “buques insignias”, terminales caros que tengan potencia y características suficientes para mover todo lo necesario (escritorios, 3D…). Usarán estos terminales para probar ideas nueva, establecer unos estándares y animar el tema, algo parecido a la estrategia que siguieron con los convertibles Surface que parecen haber salido muy bien parados, incluso frente al iPad Pro.

Sea como fuere Microsoft ha sido bastante claro en sus últimas declaraciones: se va a orientar al mercado profesional. Esto significa que el dispositivo móvil Microsoft tiene que ser un dispositivo de productividad personal no una plataforma para adolescentes o para probar las últimas aplicaciones de moda. Entiendo que eso implica que tiene que poder operar como móvil, tablet y sobremesa y eso requiere potencia, que no es barata.

Y con todo esto, pienso que se van a meter una hostia.

Disponer de un Sistema Operativo único para todos los dispositivos es el write once, run anywhere de Java que nunca fue. Es el anillo único para dominarlos a todos de una novela fantástica. El sueño de toda empresa de producto. Pero la “talla única para todos” es una estrategia arriesgada, una que durante un tiempo le ha funcionado muy bien a Apple con sus productos perfectamente segmentados, pero que empieza a mostrar agotamiento en sus cifras de ventas. Y eso que controlan la cadena completa de producción y distribución.

Sospecho que Windows 10 Mobile y sus sucesores van a intentar serlo todo para todos. Y aunque en tablet y escritorio puede funcionar (y muy bien) dudo mucho que lo haga bien en la escala móvil. Y solo dios sabe si lo hará en otros formatos y escalas.

Así que ya veremos que tal evoluciona Windows en el dispositivo móvil, los wearables y demás, pero hoy Windows 10 Mobile está completamente muerto. D.E.P.

Post data: quiero mandar un fuerte abrazo a todos los que invirtieron en desarrollar con Silverlight para Windows Phone. Si aún queda alguno por ahí debe estar sufriendo mucho.