El caótico proceso de creación de código en Facebook

He encontrado un interesante post en el blog FrameThink, en el cuál su autor que usa un pseudónimo "yeeguy", dice que ha tenido contacto directo con los ingenieros de Facebook por más de seis meses y ha logrado compilar unas notas sobre la metodología de desarrollo de software dentro del gigante de las redes sociales. Dado que el autor del post no puede ser claramente identificado y sus colaboradores "epriest" y "fryfrog" tampoco, debemos tomar todo esto pon pinzas. Pero hay cosas que me han llamado la atención y por ello las he incluído en este post.

He aquí algunas notas interesantes sobre el proceso de desarrollo de software en Facebook:

  • Los dos departamentos más grandes de la compañía son Ingeniería (desarrollo de software) y Operaciones (administración de sistemas), con 400 a 500 empleados cada uno. Justos estos departamentos suman más de la mitad de los empleados de Facebook.
  • La relación entre gerentes de producto e ingenieros está entre 7 a 1 y 10 a 1.
  • Todos los ingenieros que se unen a Facebook pasan por un "campamento de entrenamiento" que dura entre 4 a 6 semanas, en donde son entrenados sobre las peculiaridades del sistema corriendo errores y atendiendo clases y charlas de ingenieros seniors. Se estima que el 10% de los participantes de estos campamentos no los aprueban y por lo tanto no son admitidos en la compañía.
  • Después del campamento de entrenamiento, "todos" los ingenieros ganan acceso a la base de datos de Facebook. Según Facebook hay políticas internas muy estrictas que definen que es causal de despido. Ciertamente si esto es así, es una razón más para no poner información personal en Facebook, ya que por la famosa "cultura del encubrimiento" en las grandes organizaciones, nunca se sabrá de los malos manejos hasta que hayan causado un gran daño.
  • Cualquier ingeniero puede editar cualquier parte del código de Facebook a voluntad. ¡Uy!, si eso es cierto para mi es un milagro inexplicable todo el servicio no ha colapsado completamento.
  • Es una cultura basada en la ingeniería, según uno de los ingenieros entrevistados: "Los gerentes de son básicamente inútiles aquí". Como ideal me parece bueno, pero en la práctica, poner a un grupo de seres humanos a trabajar juntos, sin ningún tipo de supervisión y coordinación es simplemente imposible.
  • Durante las reuniones interdepartamentales de cada mes, son los ingenieros quienes llevan el hilo conductor, los que presentan los reportes de progreso de productos. Si alguién de marketing o de gerencia de productos hace muchas preguntas, entonces recibe sus gerentes reciben un feedback de que esa persona ha hablado demasiado en la reunion. Otra vez, esto parecen los sueños de algún desarrollador, pero no es la forma como operan grandes compañías, es más ni Google que es una empresa mucho más posicionada en el mercado y con una larga tradición de gerencia orientada a la ingeniería, opera de esta manera.
  • Las disputas de si una nueva idea vale la pena ser implementada, es usualmente resuelta invirtiendo una semana en desarrollarla y luego probandola en un pequeño grupo de usuarios, por ejemplo implementar esta nueva característica en el 1% de los usuarios de Nevada.
  • Los ingenieros están interesados en resolver los problemas relacionados a la infraestructura como la escalabilidad. Debido a que son problemas más "difíciles", estos generan más prestigio entre los compañeros. Esto me parece el clásico "macho men" en versión geek, donde las cosas no se hacen pensando en su necesidad, sino en el prestigio que se obtendrá.
  • Es mandatorio que el código implementado sea revisado por varios ingenieros antes de ser puesto en funcionamiento. Rumores de que Zuckerberg personalmente revisa todo cambio asociado con los feed news.
  • Por defecto todo cambio en el código es aplicado semanalmente (los martes).
  • Facebook tienen 60,000 servidores. Existen 9 niveles para implementar nuevo código. El nivel de implementación más pequeño sólo afecta a 6 servidores. Si se detecta algún error durante la implementación del nuevo código se detiene inmediatamente el proceso se repara el error y se incia otra vez desde el primer nivel de implementación.

Bueno, el artículo es bastante largo y ofrece algunas ideas que pueden parecer buenas, pero suenan utópicas en el mundo real. Pero al menos para lo que sirve todo esto, es para cuestionarnos si la forma como desarrollamos software dentro de nuestras empresas es la correcta. Cuantas veces no hemos querido enviar al de marketing bien lejos porque propone cosas absurdas o imposibles de implementar, pero en el mundo real es la gente de marketing la que tiene la sartén por el mango y no el departamento de ingeniería.

8 oficios al borde de la extinsión

La naturaleza y las sociedades humanas evolucionan, lo único que permanece constante es el cambio. Es por ello que lo que ayer fuera una necesidad, hoy puede estar olvidado. Muchas personas apenas hace un siglo vivían a construir sillas de montar, látigos o cambiarle las herraduras a los caballos, hoy día apenas pueden encontrar trabajo en un hipódromo debido a que la sociedad se ha motorizado, no fue cambio de la noche a la mañana, pero si fue un proceso inevitable e irreversible. Es por ello que me ha llamado la atención el post de Ujala Sehgal en Business Insiders, en donde propone 8 oficios que están en peligro de extinsión inminente. Aquí la lista:

  1. Empleados de laboratorios fotográficos. Con la revolución de la fotografía digital, es evidente que este oficio no sólo está en peligro de existinción, podríamos decir que es un fósil viviente.
  2. Empleado de tienda de alquiler de videos. Con servicios como Netflix, que envía por correo a tu casa los DVD o permite ver por Internet las películas, es comprensible porque tener una tienda de alquiler de videos o trabajar en una, significa estar en proceso de extinsión.
  3. Recibidor/Pagador en un banco. No se sorprendan, con cajeros automáticos ATM  cada día más inteligentes, la última generación permite depositar billetes sueltos y cheques, reconociendolos y cargando el saldo correncto a la cuenta. El hasta ahora respetable y seguro oficio de trabajar como cajero en un banco tiene sus días contados.
  4. Agente de viajes. Si, las aerolíneas venden ahora directamente por Internet los pasajes aereos con grandes descuentos, pero no sólo ellas. Websites especializados como Orbitz o Expedia, que son verdaderas agencias de viajes online, permiten comprar los pasajes, reservar los hoteles y alquilar los autos, todo a través de la web y con un muy alto grado de satisfacción de sus clientes a un punto tal que muchas agencias de viajes tradicionales están cerrando.
  5. Empleado de tiendas de música. Esto es obvio, con tantas tiendas en Internet de música como iTunes Store o AmazonMP3, que venden a muy bajo precio. Esto sin contar todos los modos ilegales de conseguir música.
  6. Fabricante de relojes. Ciertamente la revolución digital ha hecho que las clásicas relojerías desaparezcan, pero ahora incluso las pocas que sobreviven pueden desaparecer ya que un reloj es una funcionalidad presente en casi todo dispositivo electrónico, por ejemplo nuestros celulares tienen uno, nuestras PCs tienen uno, etc.
  7. Cajero de supermercado. Con sistemas de autoservicio donde Ud. hace las veces de cajero y paga con su tarjeta de crédito, esta posición que da empleo a tantas personas en el mundo está condenada a desaparecer en el mediano plazo, conforme la mayoría de supermercados automatice el proceso de cobrar a sus clientes en las cajas. Eso sin contar la revolución del eCommerce que puede no sólo desaparecer los puestos de los cajeros, sino también de las personas de limpieza y mantenimiento.
  8. Cartero. Con la llegada del e-mail, del gobierno electrónico, las facturas electrónicas y tantas otras formas de automatizar el flujo de documentos electrónicamente,  La necesidad de carteros que entreguen no sólo las cartas sino los recibos, notificaciones, etc. ha disminuido a tal punto que el correo norteamericano necesitaría más ayuda del gobierno para poder seguir operando a pesar de que contínuamente ha estado incrementando sus tarifas y reduciendo sus gastos a través de mayor automatización.

Se hicieron millonarios copiando websites

Los que siguen este blog recordarán el post  "Copia hasta superar al original", en el cual comentaba la famosa frase de Mark Pincus, fundador de Zynga: "No quiero la maldita innovación. Ustedes no son más inteligentes que sus competidores. Sólo copien lo que ellos hacen y haganlo hasta que ustedes obtegan los mismos resultados.". Si Uds. se sintieron impactados por ese post, este los hará caerse de espalda, esta es la historia de los hermanos Samwer, Marc, Oliver y Alexander. Llegaron a Silicon Valley en 1998 con el pretexto de que estaban desarrollando su tesis de grado y entrevistaron a todos los grandes emprendedores de esa época y a su regreso a Alemania crearon "alando.de" un clon de eBay que vendieron al mismo eBay por 50 millones de dólares 4 meses después.

Este fue sólo el inicio de la carrera como empresarios de la clonación de websites de los hermanos Samwer, con el dinero obtenido con la venta de "alando.de" iniciaron una nueva empresa llamada "Jamba!" que en un principio fue creada para distribuir cotizaciones de bolsa a teléfonos celulares, pero debido a que la idea no despegaba los hermanos Samwe rápidamente la transformaron a un website para vender ringtones y crecieron rápidamente. En el momento en que comenzaron a ganar tracción con la ide la vendieron a Verising por 270 millones de dólares.

Luego invirtieron en el clone de Facebook alemán llamado StudiVZ, que luego vendieran este proyecto a la compañía de medios alemana Georg von Holtzbrinck GmbH, por la nada despreciable suma de 100 millones de dólares en el 2007. Una estrategia de salida muy ingeniosa para un website que no ofrecía ningun valor agregado ya que sólo era una copia de Facebook y estaba amarrado al pequeño mercado alemán que en esos momentos comenzaba a sufrir el asalto de Facebook.

 En el año 2006 los hermanos Samwer crearon su fondo de inversión "European Founders", que financia a cualquier empresa que desee clonar un website exitoso ya sea en Europa o en Estados Unidos. Adicionalmente a financiar a muchos clones europeos de Facebook y LinkedIn undo de estos clones es Nasza-Klasa, ellos han invertido también en Facebook y LinkedIn, es decir ganan en cualquier caso, si la empresa original triunfa y elimina a los clones, o si los clones logran derrotar al original. Es decir le apuestan a todos los caballos, una idea ciertamente muy inteligente.

Otros clones que están siendo financiados por los hermanos Samwer son Plinga, la versión alemana de Zynga, CitiDeals que es la versión europea de Groupon (que fuera lanzada en enero del 2010 y adquirida en mayo del 2010 por el mismo Groupon por $100 millones) y Frazr un clone de Twitter que ha dejado de existir.

Si alguién siente curiosidad por conocer a estos empresarios de la copia de websites, aquí la fotografía oficial de ellos tomada de su website European Founders:

Hermanos Samwer

Para aquellos que deseen repetir la idea de copiar websites y luego venderlos a la empresa de quien lo copiaron, les contaré que la idea no funciona para un mercado emergente como el Perú, la razón es muy simple, el mercado interno peruano es muy pequeño y no hay ventaja estratégica para las empresas originales de posicionar su producto o servicio a través del clone que desarrollo una base de usuarios primero. Estas ideas sólo funcionan en grandes mercados como Europa, Japón, China, India, Brasil o Rusia. Mala suerte, latinoamérica en su conjunto sería un mercado muy interesante, pero debido a la atomización del mercado latino, estamos en seria desventaja respecto a otros mercados.

La cultura del encubrimiento

Cuantas veces no nos hemos encontrado ante noticias que nos hacen pensar, como este banco, este país o esta transnacional pueden ser tan ciegas para no haberlo visto venir, en el mejor de los casos o a veces nos llevan a cuestionar el grado de inteligencia de sus directivos. Pues resulta muchas veces tan obvio la razón del fracaso que se nos hace difícil comprender como dejaron que ocurriera e incluso pensamos que alguien debió haber hecho mucho dinero dejando que esto ocurriera. Sin embargo he encontrado un muy interesantes post de Steve Blank, en su blog que lleva el mismo título que este "The cover-up culture". Blank fue un activo empresario, ahora retirado y ejerciendo como profesor de la Escuela de Ingeniería de la Universidad de Stanford y también en la Escuela de Negocios de U.C. Berkeley Hass.

Realmente, las reflexiones que hace sobre la naturaleza humana y su rol en las Startups me parecen fundamentales para entender el comportamiento en las grandes organizaciones, desde medinas empresas a grandes transnacionales. Es por ello que me he tomado el tiempo de traducirlo al español en la esperanza de que encuentren este artículo tan aleccionador como me ha parecido a mí, espero sus comentarios.

En una Startup "Las buenas noticias tiene que viajar rápido, pero una mala noticia tiene que viajar mucho más rápido."

Hay algo en la combinación de la naturaleza humana (la racionalización y el autoengaño) y la jerarquía de las grandes organizaciones (empresas, gobierno, ejercito, etc) que conspira activamente para ocultar el fracaso y los errores. El encubrimiento institucional es algo tan arraigado que lo asumimos como un hecho más de la vida.

Sin embargo, para una Startup la cultura del encubrimiento es como la muerte. En una Startup sus fundadores y el directorio, necesitan hacer exactamente lo contrario a lo que hace una gran empresa – las fallas deben ser compartidas, discutidas y analizadas en profundidad para extraer "lecciones aprendidas" para que un nuevo curso puede ser tomado.

Mienteme en mi cara.

La primera vez que vi un encubrimiento corporativo fue como un nuevo miembro de la junta directiva de una compañía de tamaño medio público. El vicepresidente de una división operativa había tenido problemas en el desarrollo de productos, el producto estaba demorado y se demoraría aún más en estar listo. El plan de ingresos tenía al nuevo producto incluído en sus estimaciones y estaba claro que esta división del Director General iba a fallar en su pronóstico (sucede todo el tiempo, nada nuevo aquí.) Yo sabía de todo esto desde antes de la reunión de la junta, ya que había hablado con varias personas involucradas, para mi nada de esto fue una sorpresa. Lo que realmente me sorpredió, fue la audacia que mostro el vicepresidente de la división que nos dijo en la reunión del consejo directivo. "El producto está a tiempo. No hay problemas. Vamos a hacer que los números cuadren". La desconexión entre la realidad y la voluntad de tener éxito a toda costa de un alto ejecutivo que lo lleva a mentir descaradamente a su director general y el directorio en pleno, me dejó impresionado.

Hubiera sido mucho más sencillo para él decir: "Estamos jodidos, y necesitamos tu ayuda". No fue hasta después que profundizé y me dí cuenta de que toda la compañía tenía una "cultura del encubrimiento" – el CEO usualmente es castigado por el fracaso y las malas noticias. Dado que sólo las buenas noticias son premiadas (como se define en el plan de ingresos y productos compartidos con analistas de Wall Street), entendí por qué evitan las malas noticias y se encubren los errores, son la elección racional del gerente general en esta empresa. Debido a ello es que al principio de mi carrera un consejo directivo me golpeo sin sentido, cuando no pude cumplir una meta.

Encubrimiento o parecer un idiota.

En las grandes empresas los ejecutivos son contratados y compensados por la ejecución eficaz y eficiente. Si metes la pata, hay una suposición tácita de que te has equivocado en un proceso conocido – algo que era repetible y predecible. Es por ello que se encubren los errores, no sólo porque te hacen ver como un fracasado, pero sobre todo porque hace ver a la línea de mando (tu jefe, el jefe de tu jefe, etc) como unos idiota. Además, lo más probable es que la información que se oculta no será inmediatamente detectada o dañará a la empresa.

Digo esto no porque este post es sobre el encubrimiento en las grandes empresas, (yo lo dejo a los expertos en comportamiento organizacional y la teoría social), pero a diferencia de esta clase de comportamiento, la cultura que las Startup necesita ser muy diferente para sobrevivir.

La cultura del encubrimiento: El papel de la Junta Directiva.

Como fundador de una Startup rápidamente aprendí el grado de apertura que podía tener con mi junta directiva. Algunas veces tuve no tan buenos inversionistas que creían que una Startup debía desarrollarse como un caso de estudio de Harvard. Hicieron caso omiso de la realidad que la mayoría las Startup son un conjunto caótico de acontecimientos de los cuales los fundadores están tratando de extraer un patrón repetible y rentable. La primera vez que entregue una mala noticia me devolvieron mi cabeza en una bandeja. ¿La lección que este CEO castigado apredió de esa reunión de junta directiva? No le des al directorio una mala noticia.

En otras Startups tuve suerte y había grandes inversionistas que sabían cómo manejar y lidiar con el caos. Se dieron cuenta de que las condiciones cambian tan rápidamente que las hipótesis del plan de negocio original se vuelven irrelevantes. Estos inversores me enseñaron las métricas adecuadas para la búsqueda de un modelo de negocio, cómo explicarle a la junta directiva que no se pudo cumplir una meta, y la forma de detectar cuando es hora de cambiar la estrategia. Yo pensaba en estos miembros de la junta directiva como compañeros y compartía todo con ellos, lo bueno, lo malo y lo feo.

Estos miembros de la junta directiva me animaron a inculcar la cultura adecuada en la empresa. Me recordaron que las fallas las Startups les dicen a los fundadores que dirección no seguir, mientras te enseñan cómo tener éxito. Esto significa que encubrir el fracaso en una Startup era como tirar el dinero en la calle. Así que en lugar de una cultura del encubrimiento ellos alientan una "Cultura de las Lecciones Aprendidas".

Startups: Las buenas noticias necesitan viajar rápido, pero las malas noticias tienen que viajar más rápido.

Un elemento clave de la cultura de "lecciones aprendidas" es la difusión rápida de información. Toda la información, ya sea buena o mala, debe ser compartida con rapidez. Nos enseñó que para nuestra compañía era más importante la comprensión de por qué perdíamos ciertas ventas a por qué habíamos ganado otras; entender por qué los productos de la competencia eran mejores era más importante que la racionalización de las formas en que los nuestros eran superiores. Todas las noticias, pero sobre todo las malas, tenían que ser compartidas, disecadas, comprendidas y puestas en práctica. En cada reunión semanal de los departamentos de la compañía hablamos de lo que funcionaba y no funcionaba. Y cuando encontrábamos a empleados que acumulaban información o encubian problemas los despedíamos. Ellos eran un veneno para la cultura de la Startup.

Las conversaciones resultantes nos ha hecho más inteligente, más ágiles e imparables.

Lecciones aprendidas:

  • Las startups se construyen alrededor de rápidas iteraciones de hipótesis. La mayoría de ellas a su vez resultan ser incorrectas.
  • Asegúrese de que su junta directiva no lo golpeará por decir la verdad.
  • Construir una cultura de rápida difusión de todas las noticias, buenas o malas
  • Los fundadores deben predicar con el ejemplo en compartir las lecciones aprendidas
  • Analice conjuntamente los fracasos, haga una iteración, cambie de dirección, y vuelva a intentarlo.
  • La cultura del encubrimiento es la muerte para una Startup.
  • Despedir a los empleados que acumulan información u ocultan las malas noticias.

 

Negropontismo

En el Perú, desde el 2007 el gobierno está metido hasta las orejas a de una forma u otra intentando hacer que el proyecto Una Laptop Por Niño funcione. Los cuestionamientos sobre la ideoneidad profesional de los integrantes del proyecto o su honestidad quedan fuera del espectro de la discusión cuando introducimos una nueva variable, el "Negropontismo". O como lo dice muy bien un post de OLPCNews, la creencia de que entregarles una laptop con conexión a Internet a los niños, producirá un milagro de la noche a la mañana los niños aprenderan a aprender por si mismos y tendremos a un nuevo Sergey Brin o Larry Page en el tercer mundo.

En el Negropontismo, se asume que basta repartir las laptops, no es importante entrenar a los profesores, mejorar la infraestructura de los salones de clase, mejorar la salud o alimentación de los niños. Las laptops por si solas haran la transformación, claro para los que no tenemos esta fé en las computadoras, nos resulta por decir lo menos sorprendente y nos deja perplejos como seres humanos con un alto grado de educación, muchos de ellos con títulos de doctores o masters, se comporten como simples creyentes y no cuestionen los resultados de las estadísticas de las pruebas de campo que señalan, que el milagro no ocurre.

Para ilustrar que significa Negropontismo, en OLPCNews publicaron una imagen que resume la creencia que mueve a todos los que apoyan el proyecto, es decir la creencia de que algo mágico, un milagro ocurre con el sólo hecho de entregarle laptops a los niños, aquí el gráfico:

Por si fuera poco, no hace mucho Nicholas Negroponte ha hecho una declaraciones en la "Techonomy Conference 2010", en las que dice:

Algo que las personas me han dicho sobre la tecnología, particularmente sobre las laptops desde el principio, "Nicholas, tú no puedes darle a un niño una laptop, laptops conectadas a Internet y luego irte." Bien, saben que, Usted si puede. Ud. realmente puede. Y nosotros hemos encontrado que los niños en las partes más remotas del mundo, cuando reciben esta conexión, como algunos de los niños en estas fotos, no sólo se enseñan a si mismos a como leer y escribir, sino más importante, y esto lo hemos encontrado en el Perú primero, ellos enseñan a sus padres a como leer y escribir.

Si esto es lo que creer el profeta de las OLPC, es comprensible porque sus discípulos siguen a cigas la misma creencia. Es por ello que sospechar malos manejos o ineptitud carecen de sentido, cuando en realidad todo esto es un asunto de fé. Obviamente la fé impide la necesaria autocrítica y la mucho más importante corrección de los problemas detectados.