Gatos en el falso techo

Gato en el entretecho

Me dirigía como cada mañana a mi trabajo. Leía un tuit de uno de mis compañeros de trabajo: “cats in the ceiling”. Quedé intrigado. ¿A qué viene un tuit así?

Lunes, 30 de julio de 2012. Faltaban solo dos jornadas más para tomarme mis vacaciones. Mi plan era estar desconectado durante dos semanas. Quería dejar todo bien atado antes de marcharme. No ocurrió así. ¡Sorpresa! Había un gato en el falso techo de la oficina. Alguien debió haber tapado el hueco del cristal hace tiempo. Alguien no gestionó el riesgo en su momento. Ahora perderíamos una mañana entera de trabajo.

Esperar lo inesperado

Cualquier planificación siempre es demasiado optimista. Resulta difícil predecir el desarrollo de los acontecimientos. En el desarrollo software nos atrevemos a estimar las horas de trabajo que requiere desarrollar una tarea (y con la experiencia, nos aproximamos algo), pero resulta harto difícil estimar la gestión de riesgos que pueden retrasar un proyecto y la probabilidad de que ocurran. ¿Cuál es la probabilidad de que se inunde la oficina (un clásico en de deMartina)? ¿Cuál es la probabilidad de que corten la luz y se pierda media (o más) mañana de trabajo? ¿Cuál es la probabilidad de que un minino encuentre un agujero en un cristal de la fachada, se introduzca por un hueco del muro, suba una planta, pase al falso techo, caiga varios focos halógenos, empiece a maullar desesperadamente y después no sepa salir?

En una tienda online las planificaciones software carecen de sentido

El plan de esos días consistía en migrar la plataforma NewsDesk de osCommerce a un WordPress. Se planificaron inicialmente 7 días y han sido pasado 55 días para pasar a producción. Entre tanto, se han producido una ristra incesante de incidencias en nuestra plataforma que hemos debido ir corrigiendo en el momento.

A excepción de Amazon y similares, el tamaño de los equipos de desarrollo en e-commerce suele ser pequeño y todos hacen de todo (cabe decir que en deMartina hasta el CEO, Juan Macías, también programa). Si aparece un error en la integración de la empresa de logística y los pedidos se amontonasen en el almacén sin salir, ¿qué harías? La respuesta es evidente: se debe abandonar la planificación y dar una respuesta a la incidencia de inmediato.

En comercio electrónico, siempre hay que recordar que las planificaciones deben considerarse lo que son: heurísticas.

La gestión de riesgos no es la panacea, pero es necesaria

La experiencia en perspectiva y un intento por ser pesimistas nos ayudan a diseñar una buena estrategia de gestión de riesgos (e incluso a prevenirlos). Lo más importante es saber indicar cuáles son, qué peso tienen en el proyecto y tratar reducirlo. El algoritmo del avestruz no es viable en esta situación.

Un riesgo muy frecuente en un equipo de desarrollo son las islas de conocimiento. ¿Qué ocurre si a un miembro del equipo es atropellado por un autobús? Podemos mitigar este riesgo mediante pair programming o haciendo que cada miembro participe de todas las áreas de conocimiento.

Otro riesgo que todos los que estamos en comercio electrónico aprendemos a marchas forzadas es que en Navidad las pasarelas de pago dejan de funcionar. ¿Qué ocurre si el cliente no puede pagar su pedido? En nuestro caso, hemos hecho una buena gestión del riesgo contratando dos pasarelas de pago distintas e, incluso si fallasen ambas, les ofrecemos envío contra reembolso sin coste adicional.

Finalmente, las “catástrofes naturales” no se pueden anticipar, pero año tras año el sótano de las oficinas se inunda. ¿Cuál es el coste de comprobar semanalmente que el bajante se encuentra en condiciones óptimas durante el invierno y cuánto perderíamos de tiempo si no lo hiciésemos y dejásemos que se nos inundase?

Conclusiones

Las planificaciones de software en comercio electrónico resultan muy difíciles debido a los múltiples roles que deben cumplir sus miembros. La mejor fórmula sería tener dos equipos técnicos separados: uno para desarrollo y otro para soporte.

Incluso aplicando la fórmula anterior, existen riesgos inherentes a la propia existencia humana y que afectan a los equipos por una gestión indebida (cuando no olvidada). Predecir y gestionar dichos riesgos a tiempo marca la diferencia.

Como dijo Horacio: “en tiempos de paz, el hombre sabio se prepara para la guerra”.

¿Hay gatos cerca de tu oficina? ¿Los estás vigilando YA?

Gatos en la entrada de la oficina

Anuncios
Gatos en el falso techo

Ideas de lunes

Las ideas de lunes son parte del proceso de innovación en deMartina. La mayoría de ellas no se lleva a cabo, pero resultan ser buenas heurísticas para orientarnos en nuestro proceso de mejora continua.

Una de las cosas más curiosas del inconsciente humano es su asombrosa capacidad de procesamiento de información en background. El famoso discurso de Steve Jobs en Stanford siempre me ha recordando al funcionamiento del inconsciente cuando menciona eso de “connecting the dots”. Nuestro inconsciente conecta los puntos sin que nos lleguemos a dar cuenta. Surgen los momentos ¡eureka!

Curiosamente los fines de semana, fuera del entorno de trabajo, es cuando se generan de las ideas más innovadoras de deMartina. Los lunes siempre vienen cargados de nuevas ideas. De hecho, cada lunes espero que nuestro CEO, Juan Macías, me sorprenda con una ocurrencia para mejorar algún aspecto de la pila tecnologica de la que disponemos.

Y debe ser contagioso. Tras dos años y pico aquí también yo tengo ideas de lunes. Entre ellas, añadir una sección edades dentro del menú de página en deMartina o incrementar hasta un 20% el rango de la búsqueda por precio (si alguien pretende gastarse unos 25 euros, le puedes llegar a vender productos de hasta 29€).

¿Cómo surge la innovación en vuestro empleo? Compartidlo en los comentarios.

Minientrada

Mamá, papá, soy CTO

Mi familia es de pueblo. Afortunadamente tienen un nivel cultural por encima de la media. Les estuve poniendo al día sobre mi vida y hechos; ya sabéis como son las madres y sus interrogatorios. En esta ocasión tuve que explicar en qué consistía ser director de tecnología (CTO). No fue fácil porque ni yo estaba seguro de qué significa ser CTO.

La posición de CTO en deMartina se abrió recientemente debido al aumento de plantilla y me fue asignada. En principio, no puse ningún reparo puesto que soy una persona ambiciosa y me interesa desarrollarme profesionalmente.

¿Qué es un CTO?

Nadie sabe a ciencia cierta que es un CTO. Las pocas definiciones de este puesto son tan abstractas que me ha sido imposible encontrar una que pueda entenderse. Lo único que se sabe de ellos es que la mayoría tiene unos gustos estrafalarios y siempre se hacen fotos posando con traje de chaqueta delante de un fondo oscuro. El anterior CTO de Microsoft, Nathan Myhrvold, cuando le preguntaron qué era un CTO respondió lo siguiente (la negrita es mía):

¡Que diablos voy a saber! Sabes, cuando Bill [Gates] y yo discutíamos sobre que haría en este trabajo, en un momento dijo, “¿Ok, cuales son los mejores ejemplos de CTOs exitosos?” Después de alrededor de 5 minutos decidimos que, bueno, debe haber alguno, pero que no teníamos en la punta de la lengua exactamente quien era un buen CTO, porque muchas personas que eran buenos CTOs no tenían ese título, y que al menos algunas de esas personas que tenían el título discutiblemente no eran buenos en el mismo. Mi trabajo en Microsoft es preocuparme acerca de la tecnología en el futuro. Si usted quiere tener un buen futuro tiene que empezar pensando sobre él en el presente porque cuando el futuro llegue no tendrá tiempo.

Tras semejantes declaraciones del CTO de una de las empresas de tecnología más importantes del mundo no me queda más remedio que inventarme la definición del puesto adaptándome a la realidad de mi trabajo.

Mi definición de un CTO

Para mi, un CTO…

  • Debe identificar oportunidades y riesgos en los servicios ofrecidos por la empresa alineándose en todo momento con la dirección ejecutiva de la empresa. Indicando oportunidades de innovación y asuntos técnicos de los que dependa el éxito.
  • Debe conocer las tendencias en tecnología separando el grano de la paja. Evitando caer en el hype y siempre con una visión del futuro. Tomando decisiones sobradamente informadas sobre cuáles son las plataformas tecnológicas por las que se debe apostar.
  • Debe planificar estratégicamente cómo conseguir los objetivos de negocio que dependan directamente de la tecnología. Identificando y priorizando las metas y estableciendo los tiempos de prueba e integración necesarios.
  • Debe comprobar que los objetivos se están llevando a cabo y que los riesgos se están minimizando en todo momento.
  • Debe colaborar con los departamentos apropiados para asesorar y recomendar tecnologías, métodos de trabajo u organización.
  • Debe desarrollar un plan de seguridad global para toda la empresa. Incluyendo la integridad de los datos, política de backups o medios para la recuperación en caso de desastre.
  • Debe comunicar en todo momento las estrategias tecnológicas en todo momento al CEO y demás partes interesadas.
  • Debe hacerse responsable de todos aquellos detalles técnicos que puedan afectar la integridad o la imagen pública: adquisición de dominios similares o relacionados que puedan poner en peligro la empresa.
  • Debe establecer políticas de trabajo, control de cambios, metodologías de desarrollo software, control de calidad, mejores prácticas, etc.
  • Debe colaborar y revisar las historias de usuario (user stories) y las especificaciones.
  • Debe colaborar y revisar en todas las fases de la experiencia de usuario.
  • Debe monitorizar los sistemas en producción y realizar un análisis para comprobar que efectivamente están produciendo el rendimiento deseado.
  • Debe estudiar concienzudamente a los proveedores de servicios (hosting, tracking, etc) pensando siempre en cómo conseguir ahorrar costes a la empresa sin perder funcionalidad.
  • Debe asegurarse que los problemas se resuelven con un tiempo y un coste aceptables.
  • Debe supervisar la contratación, formación y retención de todos los miembros del equipo de desarrollo.

Posiblemente no sea todo, pero ¡es suficiente de momento!

Y para ti, ¿qué es un CTO?

Mamá, papá, soy CTO

El silencio es una fuente natural de vitaminas

… y ahora que he captado vuestra atención, lanzo la siguiente pregunta ¿sabíais lo importante que resulta el silencio en el entorno de trabajo para los desarrolladores de software?

Mi oficina privada

No soy el primero que lo dice ni resulta un descubrimiento reciente. Tom DeMarco, autor de un libro que todo aspirante a dirigir grupos de desarrollo debería leerse: Peopleware, ya indicaba en 1985 que la diferencia entre un buen programador en un ambiente de trabajo silencioso y un mal programador en un mal ambiente (léase: cubículos o espacios abiertos) puede llegar a ser de 25 a 1. Por ello, la necesidad de espacios silenciosos se hace patente conforme el equipo de desarrollo crece si queremos obtener la máxima productividad de nuestros programadores. Empresas como Microsoft entienden perfectamente esto ponen despachos a disposición de sus empleados. Y una cosa másUn entorno laboral ruidoso es un error clásico por el cual fallan los proyectos software.

Sin embargo, parece que en España no hay demasiada cultura del silencio. De hecho, basta salir al extranjero y preguntar para que te digan que la característica más llamativa de los españoles es lo ruidosos que somos. La cultura de los espacios abiertos es muy divertida, pero no es productiva y es España dos veces menos.

A continuación, os ofrezco un pequeño ejercicio para determinar si realmente necesitáis un despacho:

  • ¿Menos del 10% de las veces que suena el teléfono es para ti?
  • ¿Contestas dudas a tus compañeros que podrías resolverse usando el puto Google?
  • ¿Te hacen preguntas que podrían resolverse por medio de un mail?
  • ¿Te ves en medio de conversaciones que te sacan de tu zona de concentración?

Si has contestado afirmativamente a alguna de las preguntas anteriores: necesitas un despacho.

En mi actual empleo tengo la suerte de contar con una oficina de dos plantas en las que la planta inferior no se utiliza. Recientemente he trasladado mi puesto de trabajo y he empezado a retomar el control de mi productividad. Las interrupciones se han reducido a unas 3 o 4 al día. Ahora puedo pensar con claridad.

Muy bien, pero en mi oficina no queda ni un hueco libre. ¿Qué puedo hacer?

Puedo entender que no todos tengamos la suerte de poder contar con espacio libre. Estos son mis consejos para paliar un entorno acústicamente adverso:

  • Consigue unos auriculares de calidad y deja abierta esta página: http://simplynoise.com.
    El ruido blanco suele ser un buen aliado en encontrar la paz.
  • Define reglas de convivencia con tus compañeros. Por ejemplo, horas a las que se te puede preguntar, métodos para resolver dudas no críticas (enviar email), etc. Deja clara tus reglas y no seas tú el primero que se las salte. Debes hacerles entender que deben valorar tu concentración como parte del proceso de la desarrollo.
  • Busca si los teléfonos de la oficina tienen la posibilidad de disminuir el volumen.
  • Definir áreas de trabajo donde se pueda hablar y donde no. ¿Hay hueco para crear una sala de reuniones?
  • Explica y promulga la importancia del silencio en el puesto de trabajo.

Y sobre todo, recuerda:

“El silencio es oro.”
Crotchet rest alt plain-svg.svg

El silencio es una fuente natural de vitaminas

Dogfooding en deMartina

Dogfooding: término coloquial para definir el escenario en el que un equipo de desarrollo utiliza su propio producto para demostrar la calidad y las capacidades de este.

Pocas pymes de comercio electrónico de España pueden presumir de contar con un departamento de desarrollo propio (algo que recomiendo encarecidamente si se va en serio sobre vender en Internet). Por eso mismo, para aumentar la calidad del software desarrollado la mejor manera es hacer que sean los mismos desarrolladores los que utilicen el software en un contexto real. ¿Cuántas veces nos hemos sentido desorientados en medio de un proyecto software porque somos incapaces de comprender las necesidades de los usuarios? Involucrarse directamente en la utilización y función del producto aporta una perspectiva excelente para definir las tareas, adquirir el vocabulario interno y priorizar los objetivos a medio plazo.

Image0369Image0370

En deMartina, todos los empleados somos instruidos para trabajar en el almacén independientemente de nuestra posición. Evidentemente nunca lo haremos tan bien como los chicos del almacén, pero resulta conveniente conocer cómo funciona el negocio (cómo se confirma, prepara, comprueba, re-comprueba, evalúa y coloca a la espera de la empresa de logística). A los desarrolladores, esto nos viene genial para huir de la oficinas y degustar las delicatessen con las que se nutren los chicos del almacén…

Image0368

… pero el objetivo principal de nuestras escapadas es recibir feedback de primera mano. Resulta crucial y vale más que 1000 documentos de especificación. Ningún "user story" puede superar a la propia experiencia. En otros proyectos en los que participé, la causa número uno de problemas era desconocimiento del dominio del problema. ¿Se familiarizan tus analistas y programadores de primera mano con el contexto específico del problema? Solo involucrando a todas las partes se consigue montar una plataforma tecnológica con éxito. Nosotros estamos muy orgullosos de nuestra comida de perro, ¿y tú?

Dogfooding en deMartina