Diez hipótesis para invertir en tecnología

Roger McNamee, un músico y empresario, fundador y director de Elevation Partners (una firma de capital de riesgo), dio una conferencia titulada igual que este post, hace ya casi un mes (28 de Junio 2011), ante una audiencia conformada por ejecutivos de la industria televisiva americana y que se puede ver completa en FORA.tv. En ella, ofrece algunas ideas interesantes sobre el futuro de la web, por ejemplo asegura que Microsoft está fuera del negocio, que es el final de Google, que Apple es la mayor empresa en innovación en este momento, que el iPad es la mayor revolución de la industria desde de la creación del PC y que las redes sociales se han vuelto un commodity más y Facebook ha decidido ser un Twitter con esteroides y no tiene sentido tratar de competir contra Facebook. Además de dedicar casi la mitad de su presentación ha hablar sobre HTML5 y como Adobe Flash no puede competir contra HTML5.

Seguir leyendo

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.

2011 un año de cambios

Este 2011 inicia con un CES (Consumer Electronics Show) lleno de novedades, primero Microsoft ha dejado luego de mucho tiempo de actuar a la defensiva (ha reconocido que el monopolio que ejercía sobre el mercado ha terminado) y ha pasado a la ofensiva para recuperar todo el terreno perdido, un buen ejemplo ha sido Kinect, pero por otro lado tenemos el anuncio oficial de que la próxima versión de Windows correrá sobre procesadores ARM, con lo cual acepta que la era PC está llegando a su fin y la nueva forma que tomarán las computadoras será la de una tablet o un teléfono celular. Pero las novedades no termina alli, Facebook romperá la barrerá de los 500 accionistas este año 2011 y a más tardar el 1 de mayo del 2012 tendrá que presentar de manera pública su balance contable, todo esto independientemente de que el trato realizado con Goldman Sachs sea observado por la SEC (Securities and Exchange Commission) o no, según me he enterado por Business Insiders. Ojo, el que tenga que presentar sus balances contables de manera pública no significa que tendrá que inciar una oferta pública de acciones en la bolsa de valores, de forma que cualquier pequeño inversionista pueda comprarlas, sólo significa que por fin sabremos realmente cuánto es el monto de dinero que le reporta a Mark Zuckerberg el colectar y vender a anunciantes nuestra información privada.

En el mismo CES, Google nos ha presentado a Honeycomb (aka Android 3.0), el primer sistema operativo orientado a tables y Motorola aprovechando la atención generada nos ha mostrado el primer supertablet con procesador de dos núcleos y la nueva versión de Android llamado Xoom. Amazon prepara el lanzamiento de su propio App Store, y ya está invitando a los desarrolladores a que se unan al mismo a través de una suscripción de $99 anuales (el primer año es gratis). Me pregunto por qué tendría que pagar $99 al año para que mis aplicaciones aparezcan en el Amazon App Store, si pagando $35 por única vez, se pueden publicar aplicaciones en el Android Market de Google y mis aplicaciones aparecerían tambien en Amazon, además no tendrían que pasar por el proceso de aprobación de Amazon, sino que inmediatamente estarían disponibles. En fin veamos que se les ocurre a los marketeros de Amazon para convencernos que que compartir nuestra ganacias con ellos es mejor.

Lo único malo de este 2011 para mi por lo menos, es que aún los usuarios de Nexus One no tenemos el Android 2.3 en nuestros celulares, parce que Google está prestando más atención a quitarle el mercado de las tablets a Apple que a seguir actualizando su propio celular introducido hace apenas 1 año.

Aquí les dejo un videito que encontré sobre como luce Gmail en Android 3.0, realmente sorprendente:

 

 

Cómo reclamar tu cuenta @facebook.com

Ya hace más de un mes Facebook anunción su nuevo servicio Facebook Messages que permitiría a sus usuarios recibir mensajes de correo electrónico en una dirección "@facebook.com", hace ya un par de semanas que tengo mi cuenta en dicho dominio y el servicio Messages activado en mi cuenta de Facebook, sin embargo me he dado cuenta que la gran mayoría de mis contactos aún no han reclamado su cuenta en dicho dominio, es por ello que he decidido traduir los pasos que encontré en el blog TechZene que explican como obtener dicho tipo de direcciones.

Aquí como proceder.

  1. Entre a su cuenta de Facebook.
  2. Vaya a este URL y haga click en el botón verde de la parte inferior que dice "Request an Invitarion".
  3. Puede que tome algún tiempo en que reciba la invitación que llegará dentro de su cuenta de Facebook en "Mensajes", en la forma de un mensaje de alerta. En mi experiencia personal puedo decir que tomó aproximadamente una semana.
  4. Cuando active su nueva dirección de correo en @facebook.com debe de elegir un nombre que coincida con su vaniry URL.
  5. Puede asociar su número de celular a Facebook también para que los mensajes SMS que reciba sean almacenados también en "Mensajes", esta opción funciona en USA, pero no se si estará disponible internacionalmente.
  6. Todos los correos que reciba de sus amigos iran a un folder espacial llamado "Mensajes" y los correos electrónicos que reciba de personas que no están dentro de sus amigos en Facebook iran a un folder llamado otros.

En lo personal me parece muy eficiente la manera como están organizados los mensajes que se parecen más a los mensajes del muro que a un buzón de correo electrónico, ya que no puede marcar con etiquetas los mensajes como en Gmail o moverlos a folders como en la mayoría de otros servicios.

Espero que este tip les sea de utilidad.

Cambiemos algo para que todo siga igual

Esta frase de "cambiemos algo para que todo siga igual", la leí por primera vez cuando comencé a seguir el blog de Santiago Niño Becerra en La Carta de la Bolsa, y la usa para indicar que el statu quo se puede mantener haciendo algunos cambios, incluso algunos espectaculares, siempre y cuando la estructura siga siendo la misma. He decidido hacer algunos cambios en mi blog para que todo siga siendo igual entonces.

Lo que siempre me ha preocupado de mi blog y todo lo que escribo en el es que pasaría si por alguna razón de fuerza mayor (enfermedad, muerte o despido) no puedo seguir manteniendolo en mi propio servidor o conservando el nombre de dominio. Entonces se me ha ocurrido comenzar a tener otros lugares que sirvan como fuente alterna en caso de que mi blog principal esté caído, o no pueda ser mantenido. Logicamente esto tiene consecuencias, la primera es que a Google no le gusta el contenido duplicado porque estropea sus índices de búsqueda y tiende a penalizar dichos websites, pero por otro lado ya desde hace buen tiempo la principal fuente de tráfico de mi blog no es Google sino las redes sociales y supongo que con el tiempo esto se convertirá en regla, por lo que en cierto modo tener una presencia en todas las posibles redes sociales ayudará en cierto modo.

Por lo pronto ya he comenzado ha hacer una primera migración a todos estos websites:

http://volkan68.wordpress.com/

http://volkan68.posterous.com/

Pero la idea es ir agregando otros servicios de blogging como tumblr y blogger, aunque aún tengo problemas para poder exportar desde wordpress a dichos servicios, pero espero en el transcurso de los próximos días poder hacerlo. Además no sólo es importante mover lo que ya he escrito, más de mil post a la fecha, sino mantener todo sincronizado para que el contenido siempre esté actualizado en todos los websites, esto último aún no he podido conseguirlo, pero le dedicaré un tiempo para que publicando una sóla vez aquí automáticamente el contendio sea repetido en toda mi red de blogs a través de Internet.

Otro pequeño cambio en el servidor virtual que utilizo ha sido incrementar la RAM de 512MB a 1 GB, espero que esto permita que siga respondiendo de igual modo en caso de que el tráfico al site continúe su tendencia al alza. Pero no puedo negar que estoy muy interesado en cambiar de DB, como todos sabran WordPress actualmente sólo soporta MySQL, aunque hay la posibilidad de usar otros motores de base de datos, pero haciendo un cambio profundo en el CMS que incluye instalar un PDO plugin. La idea que tengo sería usar WordPress con MongoDB como motor de base de datos, al parecer no es algo tan sencillo pero quien sabe con tiempo se pueda hacer.

¿Por qué usar MongoDB?, la primera razón es porque esta base de datos NoSQL está emergiendo como uno de los estándares de facto, la segunda es la noticia que leí ayer en Business Insiders de que Sequoia Capital invertirá 6.5 millones de dólares en 10gen la compañía que está detras del desarrollo de MongoDB. Finalmente, la tercera y última razón es que MongoDB puede ser instalado en un sólo server y luego escalar al tamaño que se desee, con lo que en principio comenzar a utilizar MongoDB debería de ser tan simple como usar cualquier otra instalación de motores de base de datos como MySQL o PostgreSQL, algo que he comprobado cuando instalé a modo de prueba Diaspora.

Como dice el título "cambiemos algo para que todo siga igual".