El Gen del Desarrollador Egoísta: 1- El programador complaciente

Acerca del Ego-istmo

Una de las cosas que más echo en falta en los técnicos es el egoísmo. Se que es una frase fácil de malinterpretar, por eso quiero explicar a qué me refiero.

En general, en el mundo técnico he tenido la suerte de trabajar por norma con personas que se dejan la piel por ayudar a sus compañeros. Siempre he defendido que todos somos muy majos para tomar unas cañas y salir de copas (alguno incluso pagamos una ronda), pero a los compañeros se les conoce bajo presión, cuando las cosas van mal, no funciona nada, empiezan a llover las hostias y entonces se ve quién se arruga y quién tiene lo que tiene que tener.

Scrum Master

Da igual que lo llames Scrum o Melé, sigue siendo una metodología ágil (Imagen de John_Scone)

También me parece fundamental, como parte del valor que aporta un profesional a su empresa, la actitud de dejar lo que se está haciendo para echarle una mano a un compañero que necesita ayuda. En MediaNet trabajo con esa clase de personas, igual que antes lo hacía en SATEC.

No entiendo nada, Guardiola, estás hablando de compañerismo y generosidad en un post que trata sobre el gen del programador egoísta; definitivamente se te ha ido la pinza; adiós.

Bueno, es que no me refiero a ese tipo de egoísmo. Me refiero al egoísmo que tiene que ver con hacer cosas que no me gustan, pero que tengo que hacer porque son necesarias para mí mismo. Y del egoísmo que tiene que ver con hacer cosas por las que no me pagan o para las que (creo que) no tengo tiempo, pero que tengo que hacer porque me gustan y si no las hago yo, las harán otros en mi lugar. Me refiero al egoísmo que viene del ego, del yo, de aquello que tengo que hacer sea como sea y cueste lo que cueste porque me acerca a mis objetivos. (Otra vez se repite la frase, acercarse a los objetivos de uno. Es la segunda que vez que la uso en el blog. No será la última.)

El  gen del programador egoísta, o mejor dicho, el poco frecuente gen del programador egoísta, se materializa claramente como recesivo en dos situaciones que seguro que todos hemos vivido alguna vez; la primera de ellas la trataré en este post (y la otra la añado a la larga lista de post pendientes)

El gen del programador complaciente

El gen del programador complaciente se manifiesta dominante frente al egoísta en todo lo que tiene que ver con pruebas e incidencias.

Los proyectos con presupuestos cerrados suelen ir bien hasta la semana antes del paso a producción, da igual que se usen metodologías ágiles o no. Todo va bien, las historias de usuario se completan, se va gestionando el cambio, a los usuarios todo les parece bien, y de repente un día alguien (generalmente el cliente) empieza a hacer pruebas y hay una estampida de incidencias que salen como setas. Por todas partes. Hasta el punto de que empiezan a tambalearse los cimientos, se comprueba con horror que el sistema está cogido con alfileres y no funciona nada.

Sprint Review

Pues en mi entorno local funcionaba (Imagen de Drakegoodman)

Cada vez que un desarrollador dice frases como “pues cuando lo probé iba bien” o “en mi local funciona“, Dios mata un gatito. Si dice cosas como “es por un micro-corte de red que hace que se pierda la conexión con la base de datos“, Dios extingue una especie tropical (además de los habituales gatitos).

Si hacemos una encuesta entre 10 personas cualquiera que se ganen la vida desarrollando software, llegaremos a la conclusión de que lo más apropiado es que el aseguramiento de calidad de un sistema lo haga alguien diferente del que lo programó, por varios motivos, entre los que destacan:

  • La persona que lo desarrolla sabe lo que se supone que tiene que hacer el sistema, y cuando prueba tiende a comprobar que hace exactamente aquello que le pidieron
  • La persona que lo desarrolla está contaminada porque sabe cómo funciona la aplicación y por tanto, los pasos que tiene que dar para probarla
  • Hay mucho que desarrollar, y no da tiempo a probar (obviamente, porque el proyecto estaba mal vendido, ya hablaremos en otro post sobre eso)
  • Desarrollar es como criar un hijo, todos los padres pensamos que nuestro chico es el más listo de la clase, todos los inputs que recibimos refuerzan esa sensación y nos cuesta ver lo contrario por nosotros mismos (en realidad hablo de oídas, porque mi hijo es el más listo de la clase)

Y aunque estoy a favor de que haya departamentos de QA que de manera independiente al desarrollo validen que esté libre de errores (o en su caso los detecten), lo ideal sería que los entregables que reciben estén como los chorros del oro; que se pudiera comer sopitas en ellos.

¿Y por qué no es así? Pues básicamente porque los cuatro motivos de antes se resumen en que el programador es auto-complaciente. Enseguida se convence a sí mismo de que todo está bien hecho, de que ha hecho lo que tenía que hacer, y si algo falla, es por culpa de otro que no hizo su trabajo bien, o no le pasó la información que necesitaba cuando la necesitaba, o que no le explicó detalladamente algo, o que no abrió un puerto en el firewall, o que le cambió una especificación dos días antes de terminarla… He llegado a oir que el error era culpa de la persona que hizo las pruebas, que no prueba bien el sistema y falla. #amazing

A lo que yo digo, vale, ¿y qué? Has hecho un desarrollo que tiene más agujeros que Bob Esponja así que da igual que le hayas echado cientos de hora de tu vida, la mala noticia es que no han sido suficientes porque todavía no has terminado: ahora lo tienes que arreglar.

Sponge QA

¿A qué te refieres con eso de Plan de Pruebas, Bob? (Imagen de gspidermac)

La auto-complacencia es uno de los peores defectos que puede tener un profesional, pero se acentúa en el caso del programador. Hay dos situaciones en la que el egoísmo debe ser la clave para sobreponerse ante la auto-complacencia, sobre todo por los devastadores efectos que tiene sobre uno mismo.

El problema de la mochila

Todos los que hemos programado conocemos el problema de la mochila; hay que hacer un algoritmo que permite tomar objetos de un determinado volumen y valor para llenPUES NO. Ese no es el problema de la mochila.

Cuando uno entra a una empresa y empieza a programar, va pasando por proyectos. Algunos serán más largos, otros más cortos; unos serán un reto, otros no tanto, y todos en general formarán parte de su trayectoria profesional. De cualquiera de ellos podrá recibir un día un correo electrónico (o una llamada, según la gravedad) indicándole que tiene que dejar lo que está haciendo porque tiene que resolver una incidencia en uno de los proyectos por los que ha pasado.

Sprint Planning

Todavía son becarios, y ya tienen sus mochilitas (Imagen de ewar woowar)

El problema de la mochila es una maldición intrínseca de las personas que se dedican al software: cuanto más avanzan en una empresa, mayor es el peso que llevan en su mochila, más posibles incidencias pueden surgir; y por tanto estadísticamente más veces va a tener que dejar de hacer algo, porque la única persona que puede solucionar un problema con garantías suele ser quién lo resolvió la primera vez.

Primera Ley Natural del Programador Egoísta. Las cosas no terminan hasta que terminan. Si quieres salir cum laude de un proyecto encárgate de que todo lo que desarrolles funcione; y cuando falle, arréglalo lo mejor posible para que puedas seguir adelante hacia tus objetivos.

La conclusión es que cuanto más riguroso seas contigo mismo y con tu desarrollo; es decir, cuanto menos auto-complaciente seas, menos peso llevarás en tu mochila.

Sísifo Consulting

La segunda derivada de la auto-complacencia en el desarrollo es el temido Síndrome del Proyecto Sísifo. Como todos sabemos, Sísifo era un rey que quería vivir eternamente, engañó a los dioses mientras pudo hasta que le trincaron, momento en el que le condenaron a subir una piedra hasta lo alto de un monte. Lo que pasa es que al llegar a la cima, volvía a caer hasta la base; y así por toda la Eternidad.

Sisifo Consulting

Ánimo, otro empujoncito y vaciamos el Jira (Imagen de ChuckSchultz)

En tecnología, llamamos Proyecto Sísifo a ese proyecto en el que salen errores como cucarachas, hasta debajo de las piedras, de forma que se establece un círculo vicioso que es difícil romper: no se sale a producción porque  hay errores; al no cumplir los objetivos el cliente dice que ya que estás le haces unos cambios; por la sensación de falta de rigor en el desarrollo e inclumplimiento se termina por perder la capacidad negociadora; con lo que hay que asumir los cambios; por hacerlos deprisa y corriendo para no palmar pasta surgen nuevos errores; y así sucesivamente. Por toda la Eternidad.

Segunda Ley Natural del Programador Egoísta. Si detectas que esto se va a convertir en un Proyecto Sísifo recuerda la Primera Ley Natural del Programador Egoísta.

Que yo sepa, sólo hay 3 maneras de salir del Proyecto Sísifo:

  • Abandonar, como las ratas y los cobardes. Opción descartada, salvo para las ratas y los cobardes.
  • Salir con los pies por delante. El fracaso no es una opción.
  • Pensar en uno mismo, ponerse las pilas y hacer bien las cosas, porque nadie más lo hará por ti. El egoísmo es la única salida.

La conclusión es que cuanto más riguroso seas contigo mismo y con tu desarrollo; es decir, cuanto menos auto-complaciente seas, más probabilidades de que el resultado de tu trabajo sea un éxito para tu cliente, para tu empresa, y por tanto, para ti mismo.

Se egoísta: piensa en tí mismo. Ojalá cada vez hubiera más gente convencida de que la auto-complacencia es uno de los mayores enemigos de la realización personal.

Tercera Ley Natural del Programador Egoísta: Si no te das una patada en el culo de vez en cuando, alguien lo hará por ti. Y te va a doler más.

Otro día escribiré sobre otra situación en la que las personas sacrifican aquello que les acerca a su objetivos. Mientras tanto, puedes aprovechar la sección de comentarios para decirme si eres o no un profesional auto-complaciente, si llevas mucho peso en tu mochila o si estás a punto de que la piedra llegue a la cima de la montaña.

Anuncios

Por qué uso WordPress.com, y otras conclusiones variadas

Por lo visto, es bastante habitual escribir un post para compartir algunas conclusiones cuando el blog tiene un mes de vida, y aunque parezca mentira, el mío ya lo ha cumplido.

Lo primero es: ¿Por qué WordPress.com y no me he montado un WordPress en un servidor?Admito que reconocer que el blog lo tengo alojado en WordPress.com a priori podría ser casus trolli teniendo en cuenta que soy Licenciado en Informática, de los antiguos, de los de 6 años de carrera y proyecto (sí, he decidido defender mi derecho a ser un Licenciado y no Ingeniero, pero eso recordadme que os lo cuente en otro post)

Engineers can't dance

Engineers Can’t Dance

Los motivos para esta decisión son, por este orden:

  • Whois privado. Una de las primeras cosas a la hora de hacer un blog es el nombre de dominio, y si será propio o de un tercero. Yo quería hacer un poco (pero muy poco) de autobombo, digo, de Personal Branding, así que compré uno con mi nombre que estaba libre. Lo que no quería es que cualquiera que hiciera un whois viese mis datos personales, así que me puse a buscar las opciones de registro de dominio que habilitaban el whois privado. Os parecerá una chorrada, pero no todos los proveedores de dominio te dejan contratar esta opción durante el proceso de compra.
  • Claridad de la oferta. Con la edad voy cambiando mi perfil de cliente, y cada vez tengo menos ganas de pensar cuando compro. Como cliente valoro mi tiempo, si tengo que leerme la descripción de 5 servicios para enterarme de cuál necesito es que no me lo están vendiendo bien. En general, compro a tiro hecho. Si tengo que estar pensando y valorando es que no lo tengo claro, y si no lo tengo claro, lo descarto. El otro día comentaba con un compañero (y sin embargo amigo) que vender es como tener sexo: va a ocurrir porque al contrario le resultes atractivo en tu conjunto; si no, no tiene sentido destacar que eres alto, hueles bien, eres elegante y tienes un alto poder adquisitivo. Eso ya lo has mostrado y no ha sido suficiente, fin de la conversación, y no me vuelvas a llamar. La oferta de WordPress.com para bien o para mal es clara y meridiana. En 1&1 o Arsys no me quedaba claro qué herramenta ponían a mi disposición para hacer mi página personal, si era un Joomla o un Drupal, algo que se habían construído ellos o un WP. Yo quería WP, y puestos a ello, qué mejor (a priori) que tenerlo en la empresa que lo desarrolla y lo mantiene.
  • Time to Market. No quiero perder ni un minuto haciendo cosas que no me aportan valor, como instalar servidores web, bases de datos y demás. Trolleadme lo que queráis, pero todo eso no es para mí, la verdad. Seguro que a otra gente le interesa, lo cual me resulta admirable.
  • Cero Mantenimiento. Igual que no quiero perder tiempo para empezar a escribir, no quiero perder tiempo para instalar plugins, themes, actualizar versiones o parchear nada. Si alguno estáis leyendo mi hilo de post sobre organización del tiempo, os anticipo que aprender WordPress, o montar y configurar un mySQL, o instalar movidas y demás concretamente a mí no me acerca mis objetivos personales, sino que me aleja de ellos, por tanto el tiempo que pudiera invertir en eso lo estaría tirando por el retrete. En esta frase tan aparentemente inocente se encierra todo lo que hay que saber sobre gestión del tiempo, la he metido ahí, oculta en este post, como una gema escondida para mis lectores más fieles (si los hubiera o hubiese) Como no me sobra el tiempo, no lo quiero malgastar, así que fuera.

El único aspecto negativo que he encontrado hasta el momento en WordPress.com es el tema de la analítica. Un blog alojado en WordPress.com no puede incluir el script de recogida de datos de Google Analytics, básicamente porque ya lo usa el contenedor de blogs para recoger las de todos los sites alojados, que luego procesan y convierten en las tuyas. Cuando creé el blog no le di importancia a este hecho, en realidad ni me lo planteaba.

Sad Dog

Las estadísticas de WordPress.com están muy restringidas (Imagen de Le Howl Studio)

El caso es que en poco tiempo se la he dado. En estos 30 días he tenido 800 visitas (814 realmente) lo que me parece una pasada. La verdad es que no es algo que me esperase, cuando empecé el blog lo hice principalmente porque me gusta escribir y hay cosas que me apetece contar; lo que no había tenido en cuenta es que hubiera gente que a priori le pudiera interesar leerlas. Es como jugar al poker y ganar, debe ser la hostia. El caso es que la información que puedes recibir por defecto es manifiestamente insuficiente, por dos aspectos:

  1. no puedes conocer el tiempo medio que alguien pasa en una página (es decir, si alguien realmente se lee lo que escribes)
  2. ni puedes saber qué gente te visita de forma recurrente.

Otras cuestiones me dan un poco más igual. Pero bueno, no pasa nada. En ausencia de Google Analytics he optado por usar la alternativa de statcounter.com; que se integra en WordPress.com de manera trivial y de momento me muestra la clase de información que quiero leer.

Esto sobre por qué recomiendo usar WP.com y cómo solucionar el tema estadísticas. Ahora algunas conclusiones:

  • Theme. Uso el tema SemPress porque es responsive y la maquetación en el móvil no queda mal. No es el tema que más opciones de configuración aporta, pero la verdad es que no las necesito (de momento)
  • Blog infinito. Elegí poner el blog infinito porque es lo que espero encontrar yo cuando entro a un sitio; para el que lee es lo más cómodo. Lo cierto es que se pierde información sobre las entradas populares, ya que no hace falta que se siga el enlace para leerlo. Podría poner un blog infinito de resúmenes, pero no tengo del todo claro que sea bueno para el que me lea, así que cuando tenga rodado el tema statCounter haré alguna prueba, a ver qué tal.
  • Multiidioma. He fantaseado con la idea de traducir las entradas, o escribir directamente en inglés. Lo primero me parece un trabajazo, sin contar con que no tengo claro que WordPress.com lo permita, y lo segundo, sinceramente, un poco snob.
  • SEO. Hay muchos aspectos en los que el SEO de mi página hace aguas. En algunos casos, porque no estoy haciendo mucho hincapié ya que de momento me dan lo mismo (por ejemplo, mi dominio tiene mi nombre personal, pero no mi site, etc) Pero otras me han sorprendido negativamente; como por ejemplo lo mal posicionados que tengo los post sobre mHealth. En fin, aspecto a mejorar.

Pero sin duda, lo que más tengo que mejorar es el engagement con la audiencia, que básicamente es nulo.

Waiting for the Call

A ver si es que me he dejado el teléfono descolgado… (Imagen de Kevin McShane)

Lo mido en tres aspectos:

  • Accesos. Los picos de visitias al blog aparecen principalmente cuando publico actualizaciones en twitter, y en menor medida en LinkedIn. Al final, eso me supone que a lo largo de la semana abraso a mis seguidores en ambas redes sociales con posts en diferentes horas y diferentes días (lo siento).
  • Suscripción. Hay un dato que no entiendo y sobre el que tengo que reflexionar, y es que si tengo 800 visitas, la suma de las visitas que llegan desde un referrer no llega a la cuarta parte; pero si no tengo suscriptores, ni seguidores del blog, ni llegan de los post en twitter o en LinkedIn, ¿de dónde llega esa gente? No creo que sea metiendo directamente la URL del site en el navegador, me parece absurdo.
  • Comentarios. No recibo comentarios a las entradas. La gente que sabe de marketing siempre está hablando de las call to action; en todos los trucos para principiantes blogueros recomiendan acabar un post con una pregunta. A mí, perdonad que os diga, pero siempre me ha parecido una gilipollez; pero lo cierto es que no recibo comentarios prácticamente. De momento voy a esperar a ver los datos de permanencia en las páginas, por lo menos para tener claro si mis visitas se leen mis contenidos.

Por último, dos cosas que he empezado a hacer y me han gustado:

  1. Usar twitter cards, que es una chorrada y que además está muy mal explicado por ahí. Una twitter card no es más que ese panel de información ampliada que twitter muestra (osea, dentro de twitter) asociado a un tweet que contiene un link a un site externo. Las twitter cards se generan desde el link que he compartido; hay varios tipos de card a elegir, y dos maneras de crearlas: o con un código fuente que puedes componer para pegar en tu site (y que en WP.com no puedes meter) o a través de la URL de un post que copias en un cuadro de texto y le das a OK. El Theme de WP.com que uso tiene todos los metadatos para que la twitter card se autogenere y quede perfecta. Una vez que la has creado, no tienes que hacer nada, twitter hace una validación, y la twitter card se incorpora a twitter; que lo muestra automáticamente cuando ve pasar la URL que has definido en un tweet. Alguno me diréis: ¿cómo voy a poner la URL de un post si todavía no está publicado? Pues poniéndola: el proceso de validación es inmediato, y da igual que hayas publicado tu tweet promocionando la actualización. En el momento en que está la twitter card generada, el tweet que contiene la URL se actualiza automáticamente para que pueda mostrarse. Osea, que se hace con carácter retroactivo: los tweets que ya se hayan tuiteado, se actualizan solos.
  2. Concienciarme con la cultura Creative Commons. He dejado de usar Google Images para buscar imágenes que ilustrar los post: ahora uso herramientas como la búsqueda avanzada de flickr o compfight.com, y siempre respeto las imágenes con licencias CC.

Y como reflexión final, dos cosas que debo equilibrar:

  • El ritmo de post. 14 en un mes. Prácticamente cada 2 días. Me parece demasiado.
  • El tiempo que tardo en producir las entradas.

Esta en concreto he tardado dos viajes en metro y una hora en casa después de cenar. He superado las 2 horas. Creo que tardo demasiado, aunque me gusta buscar imágenes, meter todas las referencias que puedo y darle varias vueltas al texto. ¿Y tú, cuánto tardas en meter un comentario? 😉

El Momento de la Verdad

Si estamos verdaderamente convencidos de orientar nuestra compañía hacia las necesidades individuales de nuestro cliente, entonces no podemos apoyarnos en manuales de proceso e instrucciones que llegan de las distantes oficinas de la Corporación. Durante esos 15 segundos de oro tenemos que dar la responsabilidad de ideas, decisiones y acciones a la gente que pertenece a SAS: empleados, asistentes de vuelo, encargados de equipaje, y todos los demás empleados de primera línea. Si tuvieran que mirar hacia estratos más altos de la organización para tomar decisiones sobre un problema concreto, entonces esos 15 segundos de oro desaparecerían sin respuesta, y habríamos perdido la oportunidad de conseguir un buen cliente.

Jan Carlzon, “El Momento de la Verdad”, Ediciones Díaz de Santos

 

La gente no habla de nada

— (..) A veces, me deslizo a hurtadillas y escucho en el «Metro». O en las cafeterías. Y, ¿sabe qué?
—¿Qué?
La gente no habla de nada.
—¡Oh, de algo hablarán!
—No, de nada. Citan una serie de automóviles, de ropa o de piscinas, y dicen que es estupendo. Pero todos dicen lo mismo y nadie tiene una idea original. En los cafés, la mayoría de las veces funcionan las máquinas de chistes, siempre los mismos, o la pared musical encendida y todas las combinaciones coloreadas suben y bajan, pero sólo se trata de colores y de dibujo abstracto. Y en los museos… ¿Ha estado en ellos? Todo es abstracto. Es lo único que hay ahora. Mi tío dice que antes era distinto. Mucho tiempo atrás, los cuadros algunas veces, decían algo o incluso representaban a personas.

Ray Bradbury, “Fahrenheit 451”

Lecciones para políticos durante la Crisis: mantened las apariencias

Doc aparece con un Lamborghini Countach rojo sangre (…) A John le molesta, porque los polis odian tales muestras de ostentación. Los incorruptibles piensan que les estás restregando las ganancias por las narices (…) a los de la división no les gusta que hagas alarde porque los ciudadanos ven lo que consideran traficantes de drogas completamente a su aire (…) los polis que tienes comprados te ven conduciendo un carro de 300.000$ y piensan que a lo mejor no les estás pagando lo suficiente.

Don Winslow, “Los Reyes de lo Cool”, Ed. Mondadori

Hell-o-World

Burt Lancaster es El Temible Burlón

Recuerda: en un barco pirata, que surca aguas piratas, en un mundo de piratas, no hagas preguntas. Cree sólo en lo que veas. No, cree sólo la mitad de lo que veas.

El Tembile Burlón (The Crimson Pirate)

Hola, ¿qué tal? Encantado de saludarte.

Es curioso como una persona que se dedica profesionalmente a las TIC, y que vocacionalmente le encanta escribir, haya esperado tanto tiempo para hacer un blog. Imagino que porque no sentía que tuviese especialmente nada que contar, y mucho menos tiempo para hacerlo.

Una vez estuve en un curso de estos que me gustan a mí, de habilidades, y nos dijo la profesora (perdón, la Profesora) que no bastaba con interiorizar lo que nos contaba, que teníamos que compartirlo para que eso formase realmente parte de nuestro aprendizaje. Así que me pareció una idea excelente; he decidido abrir este espacio como punto para compartir cosas que me han resultado valiosas con la esperanza de que al hacerlo se incorporen definitivamente a mi vida. Si además resulta que te pueden interesar de alguna manera, o servir de algo, genial. Ya que me pongo, aprovecharé para hablar de otras cosas que me interesan. Por suerte mis aficiones son muchas y diversas; algunas tienen que ver con mi trabajo, otras con la tecnología de todo tipo, con mis aficiones (libros, series y la Segunda Guerra Mundial), con moda, etc. Espero que tengamos intereses en común y que mutuamente nos podamos realimentar.

Todo lo que escribo son mis opiniones personales, siempre desde el cariño, la humildad y el buen rollo, y sin ánimo de molestar u ofender a nadie. Las imágenes que cuelgo en los post me las encuentro por ahí con el buscador de imágenes de Google, reconozco la autoría y propiedad de sus respectivos dueños… sean quién sean. Si alguien se siente ofendido por que cuelgue sus fotos sin su consentimiento expreso, que no se preocupe que las quito.

También he aprovechado para recoger algunas frases que me han hecho gracia en la sección de Re-Flexiones; esas sí que las he interiorizado porque las uso de manera habitual.

Pues nada más. Encantado de concerte, un saludo,

Carlos Guardiola