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 y los ánimos que me han dado desde esta comunidad para publicar el “timeline de desarrollo”, he terminado una versión 1.0 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.

El Excel es el siguiente: Developer Timeline 1996-2016

¿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.

Anuncios

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.

Libro: La nueva fórmula del trabajo. (Google)

laszlo

Título: La nueva fórmula del trabajo. Revelaciones de Google que cambiarán su forma de vivir y liderar.
Autor: Laszlo Bock
Editorial: Conecta

Laszlo Bock es el “vicepresidente senior de gestión de personas” de Google es decir, que trabaja en recursos humanos. Además lo ha hecho durante 10 años, nos separan 6 años de edad y procede de Rumanía. Todo eso y la portada amarilla (hay estadísticas al respecto) aseguraban que el libro iba a acabar en mi mochila. Afortunadamente.

El libro en si es un tanto irregular, lleno de anécdotas puras, anécdotas que parecen datos, y opiniones. Obviamente no esperaba una tesis doctoral, pero quizá si algo menos de “marketing” y algo más filosófico o anécdotas más impactantes, pero la verdad es que todas se basan en datos (o eso dice) y resultan muy razonables (al menos para mí). En cualquier caso cumple perfectamente tanto la labor de mantenerte pegado leyendo a buen ritmo, como la de dar que pensar y saciar la curiosidad sobre cómo funciona Google “de verdad”, o al menos de forma más profunda y extensa que los artículos habituales para generar clics en periódicos y blogs.

Lo que resulta evidente al leer este libro es que Google juega en otra liga a nivel de contratación. La cantidad de dinero que genera mediante anuncios hacen que pueda realizar todo tipo de experimentos sin tener que preocuparse por la supervivencia de la empresa. Eso por sí sólo no le asegura que sus proyectos y productos salgan bien, pero el espíritu innovador (real), el sentido de misión (fanático) y esa red de seguridad económica creo que marcará la diferencia en el largo plazo, siempre y cuando no se cuelen demasiados psicópatas y vende motos que reemplacen su cultura actual por otra más comercial y elitista, que es lo más probable que esté pasando ahora mismo, o que suceda en cuanto Larry y Sergei palmen o se jubilen. Microsoft y Apple son, entre otros, las pruebas vivientes de que todo cambia al cambiar de fundador y dueño, y me temo que eso aplicará también para Google a pesar de la obsesión por generar cultura sana y duradera de sus fundadores.

También resulta evidente que Google hace la cosas de forma radicalmente distinta. No es que “haga” cosas extravagantes o diferentes, es que sus valores culturales son tan diferentes de los habituales que todo lo que hacen surge y se apoya en unas raíces completamente diferentes a las que haya visto en otras empresas. No es algo que se pueda copiar para adaptar. Y requiere para su adaptación (suponiendo que sea posible adaptarse a eso) de un cambio de mentalidad de arriba abajo brutal, un cambio de mentalidad que probablemente solo está al alcance de empresas pequeñas y jóvenes, con músculo financiero y ganas de cambiar el mundo empezando por sí mismas.

Algunas de las cosas interesantes que he ido pensando según leía el libro y que me parecen importantes de recordar son que:

  1. Entienden el survivor bias. Son escépticos y no mira solo en una “dirección”.
  2. Entienden los efectos acumulativos (la importancia de los hábitos, las pequeñas mejoras continuas, la medición y la repetición).
  3. Tratan de usar datos para todo. Eso en si mismo tiene varias ventajas, aunque sean datos limitados o sesgados.
  4. Tienen no solo el dinero, sino los huevos para experimentar a gran escala de forma abierta y constante.
  5. Entienden el sesgo de inmediatez, donde pesa más lo más reciente en lugar de un periodo.
  6. Dedican enormes cantidades de tiempo (y no solo dinero) a mejorar procesos. No sólo los diseñan e implantan, sino que los calibran, comparan, y recalibran… y no solo lo hacen los “responsables” de X sino todos los empleados y directivos desde la parte baja de la jerarquía hasta Sergei.
  7. Parece que Laszlo tiene intereses y enfoque similares a los míos. O al menos hace referencia a libros, ideas o temas que he ido tratando a lo largo de los años en el blog a base de lecturas más o menos afortunadas, reflexión y experiencia. Quizá debería haber estudiado psicología y haberme dedicado a recursos humanos en empresas de informática. Pero es improbable que hubiese alcanzado lo que este hombre: parece un perfil muy raro (en el sentido de poco habitual) incluso antes de su estancia en Google.

Sobre el último punto, Laszlo me da cierta envídia porque hace lo que (releyendo años de mi blog), parece que me interesa en el fondo, aunque haya elegido otro camino para llevarlo a cabo: Hacer que los sistemas sean mejores para las personas y mejores en su función. Gente feliz, empresa productiva.

Sobre la utilidad del libro, he de reconocer que se trata de un libro peligroso. Es el típico caso de libro de “autoridad” de empresa de renombre que contiene ideas tan radicales que puede servir como munición a lo que Tomás de Aquino llamaba personas de un solo libro (timeo hominem unius libri). Este libro contiene ideas valiosas pero aplicarlas a medias o sin entender el fondo, el por qué, tiene muchas papeletas para acabar en desastre.

Por el lado negativo, que el autor emplee muchos datos aislados para persuadir no ayuda a discutirlo, al menos no sin una buena base estadística, cultural, etc. Personalmente encuentro a menudo molesta esa obsesión por vomitar datos inconexos, incompletos y anécdotas junto con un “disclaimer” de que “es sólo su opinión”, y sospecho que no es algo específico del libro, sino que lo usa a menudo en su puesto de trabajo. No me gustaría tener que discutir con él durante una reunión dado el nivel de práctica que debe haber adquirido, y en muchos momentos me ha recordado a los libros de Malcom Gladwell, como Inteligencia Intuitiva (reseña del 2009).

Para terminar una última reflexión, supongo que RRHH en cualquier empresa es un reflejo de la dirección de la empresa. Quizá lo primero en que debes fijarte al menos entrar en un nuevo empleo es en que opina la gente de la casa del propio departamento. Y en este caso, parece un buen departamento.

Recomendaría la lectura de este libro a personas interesadas en sistemas de organización, personas, trabajo, Google y liderazgo. Que es justamente lo que indica la portada. 🙂

A continuación algunas citas para el recuerdo de las que más me han llamado la atención en sus algo más de 400 páginas.

-o-

En 2009, y mediante nuestra encuesta anual, los googlers nos comunicaron que cada vez costaba más terminar las tareas. Llevaban razón. Nos habíamos doblado en tamaño, pasando de 10.674 empleados a finales de 2006 a 20.222 al terminar 2008, y habíamos aumentado los ingresos de 10.674 a 21.800 millones de dólares. Pero en lugar de anunciar iniciativas corporativas de arriba abajo, nuestro director financiero, Patrick Pichette, otorgó el poder a los googlers. Inauguró lo que llamamos los Controladores de la burocracia, un programa anual con el que, actualmente, los googlers identifican sus máximas frustraciones y contribuyen a solucionarlas. En su inauguración, los googlers aportaron 570 ideas y votaron más de 55.000 veces. La mayor parte de las desilusiones se originaban a partir de cuestiones nimias y fácilmente resolubles.

-o-

La única prueba de la que dispone acerca del desempeño de alguien es su currículo y lo que él mismo (y en ocasiones sus referencias) le dicen. […] Y ofrecer salarios altos solo asegura que usted va a recibir más aspirantes, no a entrevistarse con los mejores o que podrá distinguir a los de los mediocres. Por todo ello muchas empresas adoptan la estrategia The Bad News Bears aunque no les guste admitirlo. Lo que le dirán los directivos es que contratan a los mejores y que después los preparan, entrenan y forman para ser campeones. Hay tres razones para tomar con escepticismo esas pretensiones.

-o-

¿Es posible, mediante la formación, compensar esos resultados y que las personas mejoren? ¿No abundan las empresas que son famosas por sus academias de liderazgo, centros de adiestramiento global y aprendizaje a distancia? ¿No les permite eso insuflar excelencia en sus nuevos empleados? No tanto como cabría esperar. Diseñar una estrategia eficaz de formar es difícil, muy difícil. […] Resulta casi imposible elegir a alguien con un rendimiento medio y convertirlo en una estrella mediante la formación. Algunos pueden afirmar que, sin embargo, es posible, y es verdad. Se conocen ejemplos de personas de rendimiento mediocre que pasaron a ser excelentes, aunque la mayor parte de esos logros responden a un cambio de contexto y a variaciones del tipo de trabajo más que de la formación.
Piense en Albert Einstein, por ejemplo, quien al principio no consiguió un contrato como profesor y después tampoco logró ser ascendido en la Oficina suiza de Patentes. No asistió a una sola clase que lo transformase en el mejor empleado de patentes que haya tenido nunca Suiza. Tampoco se graduó en educación ni empezó a ganar premios de enseñanza. Su éxito se debió a que su trabajo diario no requería gran cosa de su intelecto y dispuso de la libertad
para explorar un campo totalmente diferente.

-o-

Las empresas hacen del vicio virtud presumiendo de lo mucho que gastan en formación. Pero ¿desde cuándo el gasto es una manera de medir los resultados de calidad? ¿La gente presume de «Estoy en plena forma… este mes he gastado 500 dólares en mi cuota de socio del gimnasio»? La existencia de un elevado presupuesto de formación no prueba que esté usted invirtiendo en empleados. Lo que demuestra que, para empezar, usted no contrató a las personas adecuadas. […] Gastarnos más del doble en contrataciones, como porcentaje nuestro presupuesto en personal, que una empresa media. Si somos capaces al seleccionar a las personas desde cl primer momento, ello implica que tenernos menos trabajo que hacer una vez contratadas.

-o-

[…] necesita asimismo directivos dispuestos a renunciar a su poder cuando se trata de contratar. Debo confesar de entrada que los directivos recién contratados lo odian. Ellos quieren elegir a sus propios equipos. Pero incluso los directivos mejor intencionados comprometen sus estándares según se alarga la búsqueda. En la mayoría de empresas, por ejemplo, el primer día de entrevistas, el listón para buscar ayudantes de administrativo está por las nubes, mientras que hacia el día noventa la mayor parte de directivos se quedará con cualquiera que se ponga al teléfono. Y lo que es peor, determinados directivos pueden mostrarse parciales: desean contratar a un amigo o a un becario como favor a un directivo o cliente. Por último, dejar que los directivos tomen decisiones en la contratación les concede demasiado poder sobre los miembros

-o-

[…] empezamos buscando candidatos que hubiesen demostrado resiliencia y capacidad para sobreponerse a los momentos duros. […] Los títulos de su educación universitaria cuentan menos que lo que usted haya realizado. Para determinados puestos de trabajo no es importante dónde estudió usted. Lo que cuenta es qué aporta a la empresa y cómo se ha distinguido. Lo cual en cierto modo es como debería ser, teniendo en cuenta que uno de nuestros fundadores tampoco terminó nunca su educación universitaria.

-o-

Más adelante refinamos el proceso [de selección y contratación] porque llegamos a la conclusión de que el coeficiente intelectual por sí mismo no convierte a alguien en creativo o en un jugador de equipo […].
[Acerca de una experiencia de una start-up de uno de los empleados más relevantes de Google] El equipo pasó muy rápidamente de siete a unas cincuenta personas y nuestra productividad resultó inferior a la de antes. La causa fue que la mayor parte de las cuarenta personas contratadas no eran valiosas. Nos costaban más tiempo del que aportaban y nos hubiese ido mejor con un equipo de quince, pero todos ellos muy buenos.

-o-

Pensábamos que requerir títulos y certificados era un instrumento directo para captar personas inteligentes. Y que eliminaría el decepcionante número de individuos que mentían acerca de sus hojas de servicios. Pero en 2010 nuestros análisis pusieron de manifiesto que el desempeño académico no predecía el rendimiento laboral más allá de los dos o tres primeros años después de la universidad, de manera que dejamos de solicitarlo salvo en el caso de los recientemente graduados.

-o-

Una empresa pequeña no puede permitirse contratar a alguien que acabe siendo un desastre. Los malos trabajadores y los manipuladores ejercen un efecto tóxico sobre un equipo al completo y exigen mucho tiempo de gestión para formarlos o expulsarlos.

-o-

Cuando mantienes una entrevista y pasas una hora con esa persona, no lo consideras como una muestra de su conducta y mucho menos como una probable muestra sesgada, pese a que justamente eso es lo que es. Más bien piensas que estás viendo un holograma, una imagen pequeña y difusa, pero, aun así, la persona al completo.»
Dicho en otras palabras, la mayor parte de las entrevistas son una pérdida de tiempo porque el 99,4 por ciento de su duración se invierte en tratar de confirmar la impresión que el entrevistador se haya formado en los primeros diez segundos. «Hábleme de usted.» «¿Cuál es su mayor debilidad?» «¿Cuál es su punto más fuerte?» Una inutilidad.
Son igual de inútiles las entrevistas de caso y las preguntas capciosas utilizadas por muchas empresas, En ellas se plantean problemas como: «Su cliente es un fabricante de papel que planea abrir una segunda planta, ¿Debe hacerlo?». «Calcule cuántas estaciones de servicio hay en Manhattan», O todavía más irritante: «¿Cuántas pelotas de golf cabrían en un 747?», «Si le reduzco al tamaño de una moneda y le pongo en una licuadora, ¿cómo se escaparía?» La capacidad de resolver ese tipo de preguntas es, en el mejor de los casos, una competencia discreta que se puede mejorar con la práctica, lo cual elimina su utilidad para evaluar candidatos. En el peor, dependen de una pizca trivial de información o percepción que se le oculta al candidato y sirve fundamentalmente para que el entrevistador se sienta inteligente y autosatisfecho. Poseen poca o ninguna capacidad para predecir cómo se desempeñarán los candidatos en el trabajo. Eso es así debido en parte a la intrascendencia de la cuestión (¿cuántas veces en su trabajo cotidiano tiene usted que calcular el número de estaciones de servicio de Manhattan?) y en parte porque no hay ninguna relación entre una inteligencia flexible (lo que predice el desempeño en el trabajo) y problemas de percepción como los acertijos, y en parte porque no hay forma de distinguir entre alguien que es de una brillantez innata y alguien que ha practicado esa habilidad.

-o-

La investigación demuestra que la combinación de técnicas de evaluación es mejor que cualquier técnica única. Por ejemplo, un test de capacidad cognitiva general (predice un 26 por ciento del desempeño), combinado con una evaluación de escrupulosidad (10 por ciento) cuenta con más capacidad de predecir quién tendrá éxito en el trabajo (36 por ciento). Según mi experiencia, las personas que puntúan alto en finalizar «concienzudamente un trabajo» —lo que significa que no se detienen hasta que la tarea se ha terminado por completo en lugar de dejarlo cuando piensan que ya está bien— tienen también más posibilidades de sentirse responsables de sus equipos y de su entorno.
Dicho en otras palabras, tienen más probabilidades de comportarse como propietarios que como empleados. Recuerdo haberme sentido emocionado cuando Josh O’Brien, miembro de nuestro equipo de apoyo técnico, me estaba ayudando con una cuestión de TI durante mi primer mes. Era viernes y cuando dieron las cinco le dije que podíamos terminarlo el lunes. «Nos quedaremos hasta que terminemos», me dijo, y continuó en lo suyo hasta que el problema quedó resuelto.

-o-

Utilizar las videoconferencias también reduce costos, porque una entrevista a distancia es menos cara que una presencial, y es más respetuosa con el tiempo de los googlers y de los candidatos. Nuestros reclutadores se benefician del hecho de haberlas realizado centenares de veces, a diferencia del típico director de contratación que quizá solo haya realizado evaluaciones a distancia una o dos veces.

-o-

Hasta que llegamos aproximadamente a los veinte mil empleados, la mayor parte de la gente de Google pasaba entre cuatro y diez horas semanales contratando, y nuestros directivos más importantes podían reservar fácilmente un día entero a la semana para ello, lo que equivalía a entre ochenta mil y doscientas mil horas al año invertidas en contratar. Eso sin contar el tiempo gastado por nuestros equipos de dotación de personal. Pero era necesario hacerlo si queríamos crecer rápido y estar seguros de que no comprometíamos la calidad. Y, sinceramente, parecía la mejor manera de operar por aquel entonces. Costó años de investigación y experimentación averiguar cómo contratar de forma más eficaz.

-o-

Cada despacho, cada equipo, cada proyecto representa una oportunidad para efectuar un experimento y aprender de él. Esta es una de las mayores oportunidades que las grandes empresas desperdician y eso me parece igual de cierto para las que tienen cientos de trabajadores, no miles. Con demasiada frecuencia la dirección toma decisiones que aplica unilateralmente a la empresa entera. ¿Qué ocurre si la dirección se equivoca? ¿Y si alguien tiene una idea mejor?

-o-

Como explica Prasad Setty, «Los sistemas de gestión del desempeño tradicionales cometen un gran error. Combinan dos cosas que deberían permanecer completamente separadas: la evaluación del desempeño y el desarrollo profesional. La evaluación es necesaria para distribuir recursos finitos, como aumentos salariales y primas. El desarrollo es necesario para que la gente crezca y mejore profesionalmente». Si quiere que la gente mejore, no mantenga esas dos conversaciones al mismo tiempo. Haga del desarrollo un intercambio continuo entre usted y los miembros del equipo, en lugar de convertirlo en una sorpresa de fin de año.

-o-

Así que en lugar de seguir la senda tradicional de convertir un «bajo desempeño» en el beso de la muerte, decidimos plantearlo de otro modo: Nuestro objetivo apunta a comunicar la noticia a cada persona de ese 5 por ciento que se encuentra en ese grupo. No es agradable mantener esa conversación, pero resulta un poco más sencilla por el mensaje que transmitimos a esas personas: «Estás entre el 5 por ciento de empleados de menor rendimiento de Google. Sé que no es una cosa agradable. Pero la razón de que te diga esto es que quiero ayudarte a mejorar». En otras palabras, no se trata de una conversación «o te pones las pilas o te largas»; se trata de una charla educada con alguien para ayudarle a progresar. Un colega lo describió una vez como «pragmatismo compasivo». El bajo rendimiento raramente se debe a que la persona es incompetente o mala. Suele tratarse de una laguna en su formación (que puede corregirse o no) o una cuestión de voluntad (la persona no se siente motivada para hacer el trabajo). En este último caso, podría tratarse de un asunto personal o también podría traducirse como una señal útil de que hay algo más importante en el equipo que debería ser solucionado. De hecho, la manera en que restamos importancia a los conocimientos relacionados con el puesto a la hora de contratar a alguien, nos lleva a ser un poco vulnerables a este problema, porque nos gusta contar con gente que puede que no sepa hacer un trabajo concreto. Tenemos fe en que casi todos ellos aprenderán […]

-o-

[Acerca de las categorías de rendimiento entre empleados y la distribución normal/Gauss] Ese método puede envenenar una cultura en la medida en que los empleados se pueden revolver unos contra otros en una luchar feroz para evitar la caída en el fondo de la escala. Kurt Eichenwald escribió una mordaz condena de la clasificación forzosa en Vanity Fair en 2012: Todos los empleados antiguos y actuales de Microsoft que entrevisté —absolutamente todos— mencionaron la clasificación forzosa como el proceso más destructivo de Microsoft, algo que ahuyentaba a números incontables de empleados… «Si estabas en un equipo de diez personas, entrabas el primer día sabiendo que por muy bueno que fuera cada uno, dos personas iban recibir una gran puntuación, siete iban tener puntuaciones mediocres v una iba a tener una puntuación horrible —dice un antiguo desarrollador de software—. Ello conduce a quelos empleados se centren en competir entre sí en lugar de hacerlo con otras empresas.»

-o-

[Citando a Kathryn Dekas del laboratorio de Personas e Innovación de Google] Si solo estudias a la gente que tratas de imitar, puedes llegar a la conclusión de que los comportamientos clave que contribuyen a su éxito son los comportamientos clave que contribuyen a su éxito son los comportamientos comunes entre la mayoría o en todos ellos. Parece una conclusión razonable. Pero también es posible que los peores empleados tengan las mismas conductas, y usted nunca lo sabrá a menos que también los analice. puede fácilmente terminar identificando las malas conductas como las que conducen al éxito si no estudia también los otros grupos… En términos técnicos esto se llama “muestreo sobre variable dependiente”». Se trata sin embargo de otra variante del mismo sesgo de muestreo del que tratamos en el Capítulo 6, y por qué las «mejores prácticas» pueden inducir a error.

-o-

[Acerca de los checklist como forma de asegurar ciertos comportamientos de forma ágil y mejorar la gestión en Google. Este es un cuestionario que rellenan los subordinados para dar feedback sobre sus jefes.]
Cuestionario de muestra de la encuesta UFS [Upward Feedback System]

  1. Mi jefe me hace comentarios prácticos que me ayudan a mejorar mi desempeño.
  2. Mi jefe no microgestiona (es decir, no se implica en detalles que tendrían que ser gestionados a Otros niveles).
  3. Mi jefe muestra consideración por mí como persona.
  4. Mi jefe mantiene el equipo centrado en nuestros resultados/productos por entregar prioritarios.
  5. Mi jefe comparte con regularidad información importante de su jefe y de la alta dirección.
  6. Mi jefe ha mantenido una valiosa conversación conmigo acerca de mi desarrollo profesional en los últimos seis meses.
  7. Mi jefe comunica metas claras a su equipo.
  8. Mi jefe tiene los conocimientos técnicos (por ej., codificación en Tecnología, contabilidad en Finanzas) necesarios para orientarme.
  9. Recomendaría a mi jefe a otros googlers.

-o-

[Hablando de Chris Argyris de la Hardvard Business School y el rendimiento de los estudiantes de Hardvard 10 años después de su graduación] […] aquellos miembros de la organización que muchos dan por hecho que son los mejores a la hora de aprender no son, en realidad, muy buenos en eso. Hablo de los profesionales, cultos, con gran poder y altamente comprometidos que ocupan las posiciones de liderazgo clave en las modernas corporaciones… Dicho con sencillez: debido a que muchos profesionales casi siempre tienen éxito en lo que hacen, raras veces experimentan un fracaso. Y como raramente han fracasado, no han aprendido a aprender del fracaso… Se ponen a la defensiva, rechazan la crítica y le echan la culpa a cualquiera salvo a sí mismos. Dicho en pocas palabras, su capacidad de aprender se apaga justo cuando más la necesitan.

-o-

Ronald Burt, sociólogo de la Universidad de Chicago, ha demostrado que la innovación tiende a producirse en las brechas estructurales entre grupos sociales. Podría tratarse de las brechas entre unidades funcionales de las empresas, equipos que no suelen interactuar o incluso la persona callada en el extremo de la mesa de conferencias que nunca dice nada. Burt encontró una manera encantadora de decirlo: «la gente que se sitúa cerca de las brechas en una estructura social corren mayor riesgo de tener buenas ideas».
Las personas con sólidas redes sociales, como las que componen un equipo o unidad de negocio, a menudo tienen ideas y formas similares de abordar los problemas. La creatividad se va evaporando con el tiempo. Pero el puñado de personas que operan en el espacio superpuesto entre grupos tiende a conseguir mejores ideas.

-o-

Cuando entré en google era el responsable de las cafeterías [pagadas por Google y gratuitas para empleados] y fue una delicia […] Pero hacia 2010 las cafeterías se habían convertido en un derecho adquirido para un pequeño pero odioso segmento de googlers. En lugar de limitarse a comer en el trabajo algunos googlers empezaron a empaquetar comida para llevársela a casa. Una tarde, después de comer, pude ver a uno de ellos meter cuatro contenedores de comida en el maletero de su coche (lo cual me hizo preguntarme: ¿hasta qué punto puede ser saludable comer unos alimentos que han estado encerrados en un maletero durante 6 horas?). Un viernes por la tarde otro empleado fue sorprendido llenando su mochila con botellas de agua y barritas de cereales. Tenía previsto salir el sábado a hacer senderismo con sus amigos y deseaba llevar comida y bebida suficiente para todos ellos. Una googler, indignada porque hubiésemos osado poner platos más pequeños [como experimento para reducir desperdicio de comida y evitar sobrepeso], escribió que había empezado a tirar tenedores a la basura como curiosa forma de protesta. Según los chefs, algunos googlers incluso habían estado arrojando comida contra el personal después de ser servidos.

 

Productividad: Contexto y priorización de proyectos

Nota: tenía esto guardado desde 2013, pero por alguna razón olvidé que estaba en el cajón de “para publicar” hasta la limpieza de enero de 2016.

En mi carrera como desarrollador me he encontrado bastante a menudo, supongo que como todos, con una cantidad excesiva de proyectos sobre la mesa y por eso me gustaría comentar una estrategia para abordarlos que, sin ser mágica, me permite establecer un flujo de trabajo operativo.

Empezaré aclarando que pienso que la abundancia de proyectos es por un lado algo bueno, porque significa que voy a tener trabajo durante un tiempo (hola Crisis), pero por otro lado, resulta que me encargo de casi todas las funciones de cada proyecto por lo que soy yo quien debe organizar mi propio tiempo (al menos cuando me lo permiten) no solo entre proyectos sino entre tareas del proyecto… y rendir cuentas y plazos.

Así que ahí estoy, el equipo de un solo hombre, viviendo fuera de mi zona de confort (habilidades técnicas variadas VS sociales, de gestión, de comunicación, de diseño…), y tratando con una miríada de proyectos concurrentes. Y con todos estos cambios de sombrero, entorno, tecnología y negocio, sufro de manera crónica los cambios de contexto. Cambios que se cargan la productividad, claro.

Los cambios de contexto

Todo el que haya trabajado (de verdad) en varios proyectos a la vez, sabe que un cambio de contexto, supone “sacar” de la cabeza todo lo que tengas sobre una tarea X y llenarla con la tarea Z que quieras acometer. A mayor complejidad del proyecto, y a mayor número de elementos implicados (gente, documentación, herramientas, productos…), mayor es el tiempo empleado en cambiar de contexto, especialmente si además se trata de proyectos en áreas de negocio diferentes (cine, logística, auditoría legal, banca de inversión, marketing…). Algunos autores calculan una media de 20 minutos perdidos por cada interrupción en un trabajo intelectual que requiera concentración, pero personalmente creo que los cambios de contexto entre proyectos donde uno se encargue de casi todas las áreas, que además sean de áreas muy diferentes, y que impliquen un gran número de herramientas diversas, suelen ser mucho más pesados que una interrupción media, precisamente por las dimensiones de roles, ámbitos, conocimientos y entornos que se añaden al problema. Y todo esto sin entrar a comentar el desgaste intelectual de todo esto.

Estimemos por ejemplo 10 días para un proyecto corto, luego contemos que cambias de proyecto (por la razón que sea, no por capricho) 2 veces al día. Con esas cifras tan pequeñas es fácil calcular, siendo muy conservador y usando la media de 20 minutos, que acabaré acumulando (10 días x ((20 minutos x 2) / 60)) más de 6 horas de pérdidas. Un cálculo completamente ficticio y en bruto, pero que sirve para poner de manifiesto que los cambios de contexto tienen un coste que no se suele tener en cuenta, y que por tanto deben ser evitados en lo posible, si no queremos provocar una caída a plomo del trabajo efectivo realizado.

El método

Con esta idea en la cabeza, a lo largo de los años he desarrollado un flujo de trabajo que, si bien tiene sus propios problemas, sí me permite ser más productivo y reducir los cambios de contexto. Y lo que es más importante, lo hace sin que tenga que pensar o decidir demasiado.

El método es este:

  1. Trabajar únicamente en el proyecto que tenga la estimación de tiempo más corta e ignorar en lo posible los demás. A menos proyectos en marcha, menor es la probabilidad de tener que cambiar a uno, así que es mejor acabar los más cortos cuanto antes.
  2. Trabajo en el proyecto de los clientes que pagan. Si un cliente es de los que tardan en pagar, o de los que ponen pegas durante meses (no me meto en si con razón o no), su proyecto queda en cola. Esto se debe sobre todo a que un proyecto no cobrado, es un proyecto abierto, y el cliente que no paga tiene poder de imponer cambios no contemplados que alargan el proyecto de manera inesperada más allá del alcance inicial. Con esta regla, minimizo el impacto de los clientes/proyectos “malos”.
  3. Brown dispatching de tareas. Los proyectos más complejos (técnica u organizativamente, o en cualquier otro ámbito) suelen requerir de acción por parte del cliente o de terceros así que para evitar cambiar de tarea, ante una interrupción, trato ganar tiempo decidiendo lo más rápido posible si debo pasar la pelota a otra persona/responsable. Por ejemplo: si hay una incidencia en una aplicación, pido datos, pantallazos, etc; si me piden información, les mando al repositorio del proyecto a buscar (SharePoint es tu amigo); si me piden una reunión, les digo que mañana, que pongan ellos la hora. Y así con todo, bajo la premisa de evitar el cambio de tarea o postergarlo al mañana, cuando el cambio de contexto casa/trabajo es inevitable (hay que dormir) y el daño producido es menor, aunque no evitado.

Obviamente, estas técnicas tienen su propia problemática y en ocasiones no es factible utilizarlas, pero al menos ayudan a NO tomar decisiones y reducir los cambios de contexto, por lo que mejora la productividad y reduce el cansancio asociado a la toma de decisiones, que como sabemos, en el desarrollo de software es algo agotador.

 

Frameworks, pereza y productividad

WP_20150706_012

 

Un framework es un marco de trabajo. Un conjunto de cosas (tecnologías, estándares, prácticas, ideas…) que nos ayudan a realizar un conjunto de trabajos sin tener que pensar todo de cero. Una framework es una herramienta para acelerar el trabajo y reducir la incertidumbre del resultado. Pero esa misma reducción de la incertidumbre es a costa de reducir la flexibilidad de las soluciones que ofrece.

Diferentes framework están orientados a diferentes tipos de problemas o clientes. O enfocan los problemas de diferente manera, o aprovechan mejoras en la tecnología (memorias más rápidas, procesadores más potentes…) para tratarlos de diferente manera.

Si lo comparásemos con un viaje, el framework es el viaje en crucero, donde no podemos quedarnos más tiempo del establecido en ninguno de los puertos, ni cambiar de destino, ni cambiar de camarote o volver a casa cuando queramos… a no ser que paguemos un alto coste.

La incertidumbre del resultado es insignificante, pero estamos en cierto modo atrapados.

Un framework es cualquier metodología como Scrum, o la gestión de proyectos del PMI. También pueden considerarse frameworks plataformas o productos como Oracle (la base de datos con todo tipo de funcionalidad) o el SharePoint de Microsoft sobre el que yo mismo trabajo.

En desarrollo de software un framework es algo como .NET o Angular, pero no una librería como JQuery. De ahí que JQuery se pueda usar dentro proyectos ASP.NET por ejemplo: una librería es muy flexible y ofrece una solución especializada que completa otros frameworks.

Quizá cuando el cliente no sabe lo que quiere y no está interesado en pensarlo demasiado es cuando más nos deberíamos ceñir a los frameworks, de modo que el cliente esté “obligado” a seguir un guion predefinido, uno que al fin y al cabo alguien sí ha estado pensando. En caso contrario, si permitimos que el cliente dé “bandazos”, podemos acabar con un proyecto a la deriva con mucha facilidad y terminar agotando todos los recursos disponibles sin llegar a un resultado satisfactorio.

Algunos clientes sin embargo, están perfectamente preparados para asumir esa deriva y no tienen miedo a invertir recursos en el viaje. A estos no les hace falta el framework (incluso puede que les perjudique), porque han decidido que no tienen miedo a explorar y a salirse de las rutas establecidas.

Por último existe un peligro en usar los frameworks sin entenderlos. Cuando trabajamos dentro de estos, debemos tener claros sus límites y las ideas que los sustentan, así como el problema que pretendamos resolver. Si no lo hacemos, si nos limitamos a usar el framework porque sí, lo más probable es que terminemos retorciéndolo y mutilándolo hasta destrozarlo, quizá resolviendo el problema del cliente en el proceso, pero sin duda generando decenas de problemas adicionales en el proceso, empleando mucho más esfuerzo del necesario y con un resultado incierto (lo he visto en varias ocasiones).

En estos casos de uso sin conocimiento real del marco de trabajo, su uso genera precisamente el efecto contrario que se buscaba: resultados inciertos, esfuerzo extraordinario y problemas adicionales.

En resumen, el uso de un framework o herramientas de terceros debe estar sujeto siempre que sea posible a una comprensión de los mismos (para qué sirve, como ataca el problema, etc.) y en mi opinión hay dos usos muy claros para estos, siendo el resto discutibles: a) equipos con experiencia que usan su propio framework o uno específico bien conocido para resolver más o menos los mismos problemas de forma recurrente o b) personas con poca o nula experiencia que necesitan un entorno que les guíe para poder ofrecer cierto rendimiento de desarrollo.

Citas interesantes sobre el desarrollo de software

Nota: esto es también una prueba de publicación en WordPress desde Windows Phone.

Planning every last detail can give you a false sense of security. Coding out of the gate can give you a false sense of progress. Guessing is guessing, whether you have 1000 pages of specs and high fidelity model or a whiteboard with a sketch and a functional prototype.
-Steven Sinofsky

While a tool like PowerPoint can communicate the gist of the plans, the details will be too open to interpretation. So write down the plan in long form—writing is thinking.
-Steven Sinofsky

Closed allocation doesn’t work. What do I mean by “doesn’t work”? I mean that, as things currently go in the software industry, most projects fail. Either they don’t deliver any business value, or they deliver too little, or they deliver some value but exert long-term costs as legacy vampires. Most people also dislike their assigned projects and put minimal or even negative productivity into them. Good software is exceedingly rare, and not because software engineers are incompetent, but because when they’re micromanaged, they stop caring. Closed allocation and micromanagement provide an excuse for failure: I was on a shitty project with no upside. I was set up to fail. Open allocation blows that away: a person who has a low impact because he works on bad projects is making bad choices and has only himself to blame.
-Michael O Church

Psychologists have spent decades trying to answer the question, “Why does work suck?” The answer might be surprising. People aren’t lazy, and they like to work. Most people do not dislike the activity of working, but dislike the subordinate context (and closed allocation is all about subordination). For example, peoples’ minute-by-minute self-reported happiness tends to drop precipitously when they arrive at the office, and rise when they leave it, but it improves once they start actually working.
-Michael O Church

People complain about the politics at their closed-allocation jobs, but they shouldn’t, because it’s inevitable that politics will eclipse the matter of actually getting work done. It happens every time, like clockwork. The metagame becomes a million times more important than actually sharpening pencils or writing code. If you have closed allocation, you’ll have a political rat’s nest. There’s no way to avoid it.
-Michael O Church

Concentración

En las actividades intelectuales, el ruido y las interrupciones aniquilan la productividad y la calidad del resultado. Si realizas una actividad que requiere un mínimo de concentración sabrás esto por experiencia propia, pero me temo que no es algo de dominio público, o al menos no es algo en lo que la gente repare, debido a que a diario tenemos tanto ruido alrededor que ya no nos fijamos en él.

Pero el desarrollo de software es uno de los procesos intelectuales más exigentes de la historia, puesto que se construyen elementos abstractos, complejos y que no admiten apenas error. Sistemas que lo abarcan todo y que no existen en el mundo real. Y como actividad intelectual, requiere de un contexto para ser realizado. Un contexto que se viene abajo con cada interrupción entre las que se incluye el ruido.

Así que cuando alguien cuenta historias de que se puede desarrollar de manera decente en entornos con gente charlando, teléfonos sonando y correos urgentes llegando constantemente, miente como un bellaco. O peor aun, no lo sabe. Y eso, la ignorancia en cargos de responsabilidad, resulta desastroso a medio y largo plazo.

Habrá quien comente que se puede uno poner los auriculares y en efecto, todos los que podemos (a veces los responsables, absurdamente, no lo permiten), lo hacemos, pero no es suficiente. Los auriculares, aun siendo de gran tamaño y con reducción de ruido, solo reducen las señales externas, no las eliminan por completo. Y generan una sensación extraña de aislamiento que tampoco ayuda a estar mentalmente cómodo: en los peores casos se está aislado pero alerta a las mínimas señales externas (visuales y sonoras) por si te llaman los compañeros o suena el teléfono así que el efecto beneficioso se diluye.

En cuanto al tipo de música que poner en los auriculares, algunos preferimos ciertos estilos, pero otros difieren. En mi opinión, el que mejor cubre el ruido externo son la música de baile (chunda chunda) o el rock duro, que no son precisamente lo mejor para realizar tareas mentales complejas. La clásica u orquestal sin embargo, que podría ser menos problemática y suele recomendarse para estudiantes, no cubre bien el ruido ambiente (conversaciones, teléfono), que es lo que queríamos evitar en primer lugar, por lo que su elección aporta menos ventajas de lo que me gustaría.

Así que la mayoría seguimos peleando por encontrar un lugar tranquilo para poder trabajar, como el tren, o la oficina a primera y a última hora cuando la gente aun no ha llegado o ya se ha ido. O en casa… donde puedes ser mucho (MUCHO) más productivo que en la oficina.

En fin, que mi única esperanza de aumentar mi productividad (y la de mi departamento, y por tanto mi empresa) es convencer a la dirección de que el trabajo geográficamente distribuido (teletrabajo) es lo mejor para todos… Y ahí es donde tengo mis ojos puestos en Windows 8, Windows Phone 8, Windows Intune, Office 2013, SharePoint Online, SkyDrive y Lync. Y por eso estoy encantado de estar donde estoy, en este mismo momento. Todas estas herramientas tienen en común que se dirigen al trabajo en grupo y a los grupos distribuidos con especial atención. Y por el momento parece que dan lo que prometen: asistencia y gestión remota, integración, funcionamiento distribuido… todo lo que un teletrabajador o autónomo ha soñado alguna vez, Microsoft lo ha construido. Y yo puedo usarlo.

Así que con un poco de suerte, 2013 va a ser un año genial.

PD: Ya había escrito con anterioridad sobre el ruido y las interrupciones en el desarrollo de software, pero por alguna razón he sentido la necesidad de volver a hacerlo.