Qué puede aprender el software de Cholo Simeone?

Si se cree y se trabaja se puede.

 

Estamos los Atléticos de enhorabuena, se ha ganado la liga a los grandes. Soy del Atletico desde que viví en Madrid por 4 años  cuando era un crío.

Entonces me gustaba llevarle la contraria a los demás ;), la mayoría de la gente era del Real Madrid y del Barcelona, poco a poco le fui cogiendo cariño aquel equipo de la capital, tenía los mismos colores del equipo de mis amores el Sporting de Gijón. Lo que más me enamoró del Atlético era la pasión de su afición, que animaba y animaba sin descanso, nada que ver con ir al Bernabeu donde los errores son pagados con pitos.

Del Atletico de Cholo Simeone se pueden sacar muchos aprendizajes para nuestras empresas de software.

 

si se cree y trabaja se puede

 

Todavía no eres Facebook

En el último mes por lo menos 3 empresas diferentes que desarrollan en Velneo me han dicho, bueno, y que ocurre si nos convertimos en el próximo Facebook? Mi primera respuesta está clara, me alegraré infinitamente y tendréis todo nuestro apoyo. Lo que pasa que la mayoría de las empresas que conozco son pymes rentables de desarrollo de software. Conozco y trabajo con empresas de software que facturan, 100K, 1 Millón, 5 Millones y alguna 10 Millones, vendiendo software.

En todo el mundo hay 4 empresas grandes de tecnología (Google, Microsoft, Apple, Oracle) y millones de empresas de desarrollo pequeñas y medianas que se ganan muy bien la vida. Empeñarse en ser el Madrid, el Barcelona, Apple, Google, …. quizá sea un poco ambicioso. Primero márcate ser una empresa rentable y en crecimiento, después ya veremos el siguiente paso. El Atlético ha sabido muy bien cual es su rol y su presupuesto, ha jugado con sus armas y ha ganado la partida. No te creas lo que todavía no eres.

A falta de presupuesto trabajo

Cuando empezamos no teníamos ni un euro, (en aquella pesetas), la única forma de suplir la falta de capital y experiencia es la de trabajar, trabajar y trabajar. Al principio tu hora de trabajo no valdrá nada, con el tiempo y el trabajo todo cambia. Año a año, día a día y minuto a minuto, así se levanta un negocio de software. El Atlético lleva todo el año con la  mentalidad de partido a partido, domingo a domingo, latido a latido, no hay otra forma de levantar un negocio. Si no estás dispuesto no empieces.

 

Si se cree y se trabaja se puede

No pasarán 15 días sin que alguien te diga que tu proyecto no vale, que se irá al garete, que no sabes, que tu producto no vale, que no puedes, es normal, el que tiene que creer en tu idea eres tú, sólo tú. Hay que trabajar, fallar, levantarse, volver a fallar, volver a levantarse pero sobre todas las cosas, creer en lo que haces, creer que pese a todas las dificultades saldrás adelante. Esto no es un camino de rosas, acaso ha sido fácil para el Atlético ganar la liga, lo han pasado mal hasta el último minuto, han sufrido y trabajado en cada partido, si no trabajas y crees fracasarás.

Anuncios

Desarrollo de software iterativo e incremental

El desarrollo de software es espiral

Hace 12 años estaba en una conferencia de software libre, en ella varios filósofos hablaban en una mesa redonda sobre el desarrollo de software y su semejanza con la vida, varios afirmaban que la vida sigue patrones circulares, las modas, las cosas pasan y vuelven a pasar, volvemos a vestir cosas que se llevaban hace 10 años, etc… En ese debate una anciana levantó la mano y dijo la vida no es circular sigue un patrón de espiral, las cosas se repiten pero no son iguales, evolucionan.

desarrollo de software iterativo

APRENDE: Todo desarrollo de software empieza y acaba con un aprendizaje. En la vida observas, trabajas y aprendes, antes de empezar a desarrollar tienes que aprender de lo que hiciste en la última iteración. En nuestro caso lo primero que hacemos  cuando analizamos el resultado de una iteración de software es resumir los principales aprendizajes de la iteración, proyectos que funcionaron, otros que fallaron, unos que se cumplieron, otro no que no, siempre pasan cosas durante una iteración de las que debes aprender antes de ponerte con la siguiente. Este momento de reflexión antes de ponerse de nuevo a trabajar es básico porque marcará la diferencia de aplicar los aprendizajes al siguiente ciclo. Estamos tan ocupados programando que nos olvidamos de parar y aprender, esto produce que repitamos una y otra vez los mismos errores.

.

DESARROLLA: Esto es lo que sabemos hacer bien, lo que consideran los programadores su trabajo, meter líneas de código, hacer novedades, desarrollar funcionalidad. Hacer, hacer, hacer…. en esta fase siempre nos olvidamos, que quitar cosas, asentar, quitar bugs, hacerlo más estable, de más calidad es parte del desarrollo. Normalmente los clientes no valoran cuando tu código está más limpio, tiene menos bugs, va más rápido o es más estable. Aunque no es un parte valorada desde el exterior es un parte básica de la cuenta de resultados de los próximos 10 años. Un software estable y robusto quita trabajo a todos los departamentos de la empresa (soporte, consultoría, instaladores, comerciales, etc…). 

.

MIDE: El gran olvidado del desarrollo de software, ¿medir? qué tengo que medir?, desarrollamos funcionales que no se usan, otras que no se venden, otras que no gustan a los clientes, etc… y nunca nos paramos a medirlas. Antes de empezar a desarrollar una funcionalidad lo primero que debemos hacer es pensar ¿Cuál es el objetivo cuantitativo? ¿Qué pretendo conseguir? ¿Para qué lo hago?, cuando acabes evalúa y aquí enlazas con la primera fase, de esas mediciones extraes los primeros aprendizajes y todo empieza de nuevo.

5 aprendizajes para crear software

Sólo una cosa es más dolorosa que aprender de la experiencia, y es, no aprender de la experiencia.

Peter, Laurence Johnston 

.

.

1.-Aprende de todo lo que te rodea, puedes aprender de cualquier sector y persona para implementarlo en tu proyecto. El mejor empresario de España es Amancio Ortega, de un libro sobre su gestión obtuve 5 lecciones para el desarrollo de software. WordPress es una empresa que admiro y cuya cultura es muy especial, de la cual se puede apreciar un forma diferente de hacer las cosas.

.

2.-El cloud es una realidad, todavía queda mucho cambio por recorrer, las ventajas del cloud  están definidas y la mayoría de los nuevos programas se crean en la nube.

.

3.-El software se está comiendo el mundola economía más avanzada del mundo lo tiene muy claro, su presidente y los principales líderes del país están detrás del movimiento code.org que impulsa a la sociedad a creer que el futuro está en el desarrollo de software, si duda desde mi punto de vista estamos presenciando la silenciosa Cuarta revolución industrial y EEUU se ha dado cuenta impulsando a los niños que aprendan a programar.

 

.

4.-Crear software no es sólo programar, cuando empecé en este negocio pensé erróneamente que crear software era básicamente programar; sin tener en cuenta cosas como,  reflexionar antes de empezar, aprender a diseñar, conocer a tus usuarios, probar tu programa,  medir bien tu funcionalidad y conocer cual es el coste de los nuevos desarrollos, aspectos básicos si quieres tener una empresa de software rentable.

.

5.-Si quieres Ganar dinero programando, es necesario que aprendamos a vender software por internet ya que se está convirtiendo en un canal importante para la venta de software, si quieres que tu empresa crezca hay que vender lo que desarrollas.

.

.

gandhi_vivir-y-aprender

Lecciones de WordPress para el mundo del software

“Real artists Ship.”

 Desde que en 2007 elegí la plataforma WordPress para desarrollar este blog, siempre me fascinó el funcionamiento de la empresa que hay detrás Automattic.com, el modelo de negocio y su funcionamiento.

Cuando Scott Berkun, ex-Microsoft y autor de  Confessions of a Public Speaker publicó The year without pants and the Future of Work, la historia detrás de una año de trabajo en WordPress.com me lo compré inmediatamente. Aquí os voy a dejar las lecciones que extraigo de la lectura y que son aplicables a la empresas de software.

El teletrabajo es una realidad

En WordPress hoy día son 170 trabajadores el 100% de los mismos teletrabajadores de diferentes partes del mundo. En nuestras empresas el porcentaje de teletrabajadores sube cada año, Velneo por ejemplo tiene +50% de la plantilla en teletrabajo en diferentes ciudades. Las herramientas como Chat, Google Apps, Skype, hacen factible que trabajar desde casa sea una realidad hoy día.

El blog interno principal herramienta de comunicación

En wordpress además de las herramientas típicas disponen de Blogs internos  por departamento, casi no usan el email.  Estos blogs internos se denominan P2. Estas son sus principales vías comunicación:

1.-Blogs (P2): 75%

2.-IRC: 14%

3.-Skype: 5%

4.-Email: 1%

Los Blogs internos (P2), sirven para todo, documentar reuniones, tormentas de ides, bugtracking, discusiones, bromas, existen más de 50 blogs diferentes dentro de la compañía. Cualquier persona de la empresa puede entrar en cualquier blog o cualquier IRC. Una de las principales funcionalidades de estos blogs es que si escribes @nombreusuario le llegará una notificación al usuario en concreto para que lea ese post. Así te aseguras de que el usuario en concreto lea algo que tu necesitas que lea. Cualquier persona puede acceder a cualquier blog o chat, hacer búsquedas en el historial o participar.  La ventaja de no usar email es que todo el conocimiento se queda indexado en la compañía, podías buscar y encontrar cualquier tipo de información.

Enfoque a resultados

Las horas que trabajas en una empresa cada vez son menos importantes, el enfoque a resultados, objetivos y proyectos es el futuro de las empresas de software. Para el personal de soporte tienen unos paneles individuales con los resultados de cada persona. No importa a que hora llegues, no importa cuantas horas trabajes, los resultados son lo primero.

Captura de pantalla 2013-11-23 a la(s) 11.39.34

Real artist Ship

Una de las grandes ventajas de wordpress en la velocidad en el lanzamiento de nuevas funcionalidad y la agilidad de los cambios. Para los nuevos desarrollos seguían el siguiente patrón:

1.-Elige un problema que quieras solucionar.

2.-Escribe un post para anunciar su salida y una página de soporte.

3.-Elige que objetivo vas a medir para saber si el desarrollo será positivo para los usuarios. (mide antes y después de la salida)

4.-Desarrolla

5.-Pon en producción

6.-Estudia y aprende del cambio. (mide los datos)

7.-Repite

Mucha gente se preguntará, ¿Qué pasa con Marketing? ¿Experiencia de usuario? ¿Colisión entre diferentes proyectos? ¿Priorización? ¿Bugs?, etc… Correcto esta forma de trabajar deja fuera cientos de cosas que no se tienen en cuenta, a favor del proceso simple, rápido y fácil. No hay forma perfecta, WordPress no tiene Bugtracking aunque parezca una locura así funcionan y no les va mal ;).

Experimenta y mide

No existe debates de semanas sobre estrategia. La primera opción es probar, experimentar y medir. Recoger datos sobre las teorías y discutirlas sobre datos reales. Por supuesto que muchos experimentos fallan pero es parte del proceso que siguen. El sistema de experimentos continuos beneficia el largo plazo, se experimentan, mide, si te equivocas pruebas otra cosa y así el bucle continua. El error está bien visto, probar y equivocarse es algo bueno. La única forma de que una persona aprenda es equivocándose por si misma. No hay fase de pruebas o revisiones, ni fechas o coordinación. La única regla es que cuando lances algo público tendrás que estar online las siguientes horas al lanzamiento. En el libro lo comparan con ir a comer a un buen restaurante o ir de tapas. La estrategia de WordPress es servir tapas cada cinco minutos y probar que tal funcionan. Existen días  que 20 programadores lanzan 20 pequeñas nuevas funcionalidades, existe un IRC exclusivo para esos lanzamientos. ¿Cómo se puede trabajar sin fechas? ¿Sin copias de seguridad? ¿Sin coordinación? una de sus filosofías es las copias de seguridad no me hacen más seguro me hacen más vago. Los empleados son tratados como adultos, se confía en ellos y no hace falta poner controles para que no fallen.

Lugares habituales de trabajo

En casa: 60%

En  coffee shops: 17:82%

En una oficina: 8,91%

En hotel/aviones: 6,93%

En espacio co-worker: 3,96%

Otro: 1,98%

Aquí os dejo una lista de empresas que trabajan 100% con teletrabajadores.

Cualquier forma de trabajar es posible

Puedes estar de acuerdo o no con su forma de trabajar, lo que este  libro me demuestra es que cualquier forma de trabajar puede tener éxito, WordPress es una empresa de éxito mundial y tiene patrones de funcionamientos contrarios a los que dice la teoría del desarrollo de software.

 

Desarrollo de aplicaciones empresariales

Si le das a un niño un martillo, le parecerá que todo lo que encuentra necesita un golpe.

Un martillo de oro es cualquier herramienta, tecnología, paradigma o similar cuyos partidarios predicen que resolverá múltiples problemas, incluso aquellos para los que obviamente no es adecuada. De la misma forma que un martillo de oro físico sería bastante impresionante pero prácticamente inútil, puesto que el oro es un metal relativamente blando.

Dentro del mundo del desarrollo de software esto pasa constantemente, hoy día se programan ordenadores, móviles, dispositivos,(el software está en todos lados).. y con fines que van desde controlar el tráfico de una ciudad hasta crear una factura para una empresa, pasando por controlar un satélite en el espacio.

.

El Martillo de Oro en aplicaciones empresariales.

Esta es la razón principal de que no pueda comprender como alguien usa  C++ para desarrollar una aplicación de contabilidad para una empresa. En su mayoría las aplicaciones empresariales están compuestas por formularios sobre datos en los que el usuario final puede ver, agregar y modificar datos. Si desarrollas con herramientas generalistas invertirás muchas horas en tareas repetitivas para el acceso a base de datos desde formularios. Escribirás código para interactuar con la base de datos, código para la interfaz de usuario y código para la lógica del negocio. Si usas una plataforma de desarrollo como Velneo gran parte de ese trabajo ya lo realiza la plataforma, incluso puedes crear aplicaciones empresariales sencillas sin escribir una línea de código. Velneo es una plataforma diseñada, pensada y creada para el desarrollo de aplicaciones empresariales.

.

La aplicación empresarial y sus características.

Las aplicaciones empresariales tienen una buena base de datos y sobre todo una forma fácil de interactuar con ella, búsquedas, filtrados, ordenar, cruzar, … Las operaciones típicas de agregar, actualizar, guardar y eliminar tienen que estar incluidas en la plataforma de desarrollo sin que el programar tenga que preocuparse por ellas. Esta es la razón que de que sea tan importante elegir una plataforma adecuada a lo que necesitas desarrollar.

.

Ciclo de Vida de un proyecto de software

La vida no es una tecnología, ni una ciencia. La vida es un arte, has de sentirla. Es como el caminar por una cuerda floja.

Los proyectos de software, como la vida y las personas tienen sus ciclos. Como personas vivimos la juventud, madurez y vejez, los proyectos de software son pura vida y es básico conseguir quitarse el efecto miopía y ver ¿Dónde me encuentro en el proyecto?.

La juventud-El desarrollo

Estás empezando el proyecto, desarrollo, probar, equivocarte, caer, levantarte, muchas horas delante del ordenador para que el producto empiece a funcionar. Tendrás pocos clientes, los comerciales dirán que no pueden vender porque no hay producto, los clientes te pondrán a parir porque el proyecto está verde y falla mucho. Son las épocas más duras, donde muchos proyectos fracasan. El principal problema de esta fase es principalmente centrarse en desarrollo, tienes que vender y crear un producto completo. En las reuniones se hablará siempre del departamento de desarrollo, tu trabajo es llevar la atención al resto de departamentos. Creerte que puedes vender un producto joven es lo más importante para que tu empresa sobreviva.  ¿Dónde tienes que trabajar más? Precisamente en ayudar al departamento comercial, el departamento de desarrollo se moverá sólo por la presión de clientes y comerciales.

Tiempo estimado de 2 a 5 años. (Depende del tipo de producto)

La Madurez- Producto Completo

El producto funciona, de repente, en la reuniones casi no se habla de los departamentos de desarrollo, el problema pasa a soporte, documentación, demos, formación, necesitamos cosas que no tienen que ver con desarrollo, los manuales, los vídeos, la página web, los clientes te empiezan a presionar para que tengas un producto completo, el departamento comercial venderá pero su presión es tener todo listo para que la venta sea más fácil. Los clientes quieren mejor soporte, más rápido. La empresa se equilibra y el trabajo en equipo es básico, debemos apoyar a los departamentos que más ayuda necesiten. Cuanto antes tengas el producto completo, antes la empresa empezará a vender de manera exponencial. No tener claro tu producto completo, dar bandazos y dejarte llevar por la presión los principales problemas.

Tiempo estimado de 2 a 3 años.

La Vejez- Crece!!

Las ventas ya no son un problema, la empresa es rentable, tiene sus recursos, el equipo es sólido, problemas de escalabilidad, de dimensionamiento, de implantación de clientes, la empresa crece y los huesos duelen. Organizar un sólido departamento de ventas produce el crecimiento de consultores, implantadores y personal de soporte. La presión seguirá existiendo pero será diferente. No estar preparados para el crecimiento suele ser uno de los principales problemas de esta fase. Hay que saber vender, crecer y satisfacer a tus clientes.

Tiempo estamado de 5 a 10 años

La Muerte

Cuando menos te lo esperes y mejor te vaya todo, tu producto empezará a estar obsoleto y de repente…..hay que empezar uno nuevo….La juventud, si no te das cuenta de esto y cambias el chip MORIRÁS DE VERDAD. Empezar de nuevo es doloroso pero necesario, la muerte de un producto es parte de la vida.

Tiempo estamado de 5 a 10 años

Usuario Software

Un software sin usuarios es como un desierto sin oasis, está totalmente muerto.

 

Llevo unas semanas leyendo el libro Inspired, el cual recomiendo en especial a los responsables de proyectos de software.

En este blog ya hemos hablando varias veces la metodología de desarrollo de nuevos productos de software denominada MVP (Mínimo producto viable). El mínimo producto viable es una gran metodología que se trata en  Inspired,  según este libro lo más importante es conseguir usuarios reales que validen tu MVP.

.

1.- Seis usuarios contentos.

El primer objetivo es conseguir por lo menos seis usuarios reales, felices, que usen tu producto y que provengan de tu nicho objetivo. Para lograr estos seis usuarios probablemente tendrás que empezar con alrededor de 10 usuarios potenciales.

.

2.-Empieza desde el principio.

Desde el primer día que comiences a desarrollar el MVP, el responsable del proyecto tiene que empezar a buscar esos usuarios en el segmento de mercado. Los usuarios pueden ser de la base instalada, prospectos, nuevos registros, etc… lo más importante es que estos usuarios sientan que hay un problema real que solucionar, que lo tengan que solucionar rápido y que tu producto sea la respuesta.

.

3.-Los beneficios de los usuarios.

  • Los usuarios pueden participar en la definición del producto, tener un acceso privilegiado a los programadores, gestores y a la evolución de la solución.
  • Los usuarios necesitan solucionar un problema actual y están interesados en la solución que tu propones.
  • Los usuarios tendrán un coste muy reducido o incluso gratis.

.

4-Tus beneficios.

  • Tienes una serie de usuarios con los que puedes hablar y resolver tus dudas.
  • Tienes acceso a la empresa y a todos los usuarios que usen tu producto.
  • Los usuarios están dispuestos a realizar test de usabilidad de producto (en remoto o local)
  • Los usuarios están dispuestos a probar las versiones en formato betatester.
  • Si les satisface la solución podrás realizar un caso de éxito con su empresa.

.

5-Puntos críticos

  • Es importante que estos usuarios no paguen inicialmente por la colaboración. La intención es construir una relación de partner, no una de cliente/proveedor. Necesitas que los usuarios se involucren en el desarrollo del producto. Podrás cobrarle cuando consigas un producto que solucione su problema y que realmente quiera. 
  • A los departamentos de ventas les encantan este tipo de programas que se venden fácilmente, nunca gestiones más colaboradores de los que realmente puedas. El número de usuarios máximos en un programa de este tipo suele ser de 10.
  • Si te cuesta encontrar usuarios que acepten este trato y se pongan a trabajar con el software, lo que realmente tienes entre manos es un problema de concepto. Lo normal es que este tipo de propuestas tengan cientos de interesados. Si los clientes no están interesados en tu solución es que quizá no tengan el problema. Piensa si estás invirtiendo el tiempo en un proyecto que merezca la pena.
  • Es importante que los usuarios que selecciones sean de tu nicho objetivo y que  no sean early adopters son perfiles tolerantes que se apuntan a cualquier moda y que te pueden confundir.
  • Ten cuidado con no desarrollar un programa a medida para ese grupo de clientes, tienes que dejar claro desde el principio que estás desarrollando una solución general para el mercado.
  • Cuida la relación con estos parther, son realmente compañeros en el desarrollo y trátalos como tal.
  • Tienes que aprender a trabajar en equipo con ellos, pruebas de usuarios, betatester, prototipos, dudas, estáis desarrollando una solución conjunta.
  • Despliega todas las versiones antes a este grupo de usuarios y no las saques al público antes de que ellos sean realmente felices con la propuesta.

.

6-Puntos críticos si trabajas para programadores

Si desarrollas plataformas hay algo que tienes que tener en cuenta y que es especialmente crítica. Tienes que enfocarte al producto final de tu cliente y no el tuyo. Debes conseguir 6 productos realizados por los  tus clientes que puedan ser una referencia. No tienes que ocuparte sólo de tu producto si no del producto final que ellos van a desarrollar con tu plataforma. Tienes que conseguir que los productos que desarrollen con tu plataforma tengan éxito con sus clientes.

 

Esta técnica es una manera de desarrollar productos que los usuarios aman.

.

.

Software programacion

Zapatero a tus zapatos

Los programadores usamos software para crear programas. Usamos software para crear software. En los últimos veinte años el software de programación ha cambiado y hemos pasado de tener un lenguaje de programación para todo como podía ser C o C++ a tener software o plataformas que nos facilitan la vida y nos acortan los tiempos de desarrollo, dependiendo de lo que queramos desarrollar.

La evolución del software de programación está derivando en la especialización, empresas que desarrollan plataformas de programación para crear aplicaciones con diferentes fines.

No es lo mismo crear una aplicación para la gestión de una empresa, que un juego, que un programa para localización, que una aplicación para un móvil, que una base de datos, que un control de autómatas, que una aplicación de uso personal, que un software para controlar robots, el mundo se está softwarizando y existen software de todos los tipos y colores.

Con el software de programación está pasando lo mismo, no podemos programar todo en C, debemos usar las plataformas adecuadas al tipo de aplicación que vamos a desarrollar.

Algunos ejemplos de plataformas de desarrollo especializadas:

Crear software fácil

“Siempre he deseado que mi equipo sea tan fácil de usar como mi teléfono, mi deseo se ha hecho realidad porque ya no puedo encontrar la manera de usar mi teléfono.”
– Bjarne Stroustrup

.

Nos cuesta diseñar sencillo, fácil y agradable. Nos empeñamos en programar complicado, denso y eso que las empresas que triunfan en el mundo del desarrollo de software no paran de enseñarnos de como hay que hacer las cosas.

Una imagen vale más que mill palabras, la última imagen representa el formulario típico de una empresa de desarrollo de software.

.

No tiene que estar todo a un click

Creemos que le ahorramos tiempo al usuario al dejar todo a un simple click y lo único que hacemos en que se agobie con tanto click y opciones ocupando la pantalla. Los clicks organizan como lo hacen los armarios, las carpetas o los cajones. El orden ahorra tiempo. Al ocultar opciones las estamos ordenando sin darnos cuenta.

Un ejemplo es el mando a distancia de mi máquina de aire acondicionado. El primer día que empecé a trabajar con el aire, quería encender, apagar y cambiar la temperatura, el mando a distancia me lo puso fácil.

Si quiero hacer operaciones más complicadas con la máquina de aire, tengo que hacer dos click y pasar a un segundo nivel de información, donde el mando a distancia tiene múltiples y diferentes opciones.

Ordenemos nuestras pantallas como lo hacemos con nuestra ropa, usemos cajones y armarios. No todo tiene que estar tirado en el salon de casa.

10 Lecciones de Mark Zuckerberg para el desarrollo de software

Mark Zuckerberg ha desarrollado un software que en 8 años tiene 800 millones de usuarios, factura 3.800 millones de dólares, gana 1.000 millones y está valorado en 100.000 millones, Facebook.

Esa semana Mark Zuckerberg saca a bolsa el 5% de Facebook por un valor aproximado de 5.000 millones de dólares.

Este chaval de 27 años tiene mucho que enseñarnos y de su carta a inversores extraigo (a mi manera) los consejos que me parecen más útiles para el desarrollo de software.

.

1.- Nosotros no construimos servicios para ganar dinero, nosotros hacemos dinero para construir mejores servicios. Las personas prefieren usar productos de empresas que crean en algo más que ganar dinero. No nos levantamos cada mañana con el único objetivo de ganar dinero pero entendemos que el mejor camino para lograr nuestra misión es construir  una compañía fuerte económicamente.

.

2.-Desarrollamos rápido para probar los límites de lo que podemos hacer.

.

3.-Nuestra cultura incluye el desarrollo iterativo y creciente para la mejora continua. Creemos que algo siempre puede ser mejor y que nunca está acabado.

.

4.-Desarrollamos los mejores servicios a largo plazo, liberando versiones rápidas y aprendiendo de pequeñas iteraciones. Para construir esta metodología, hemos desarrollado un framework de testeo que nos permite en cualquier momento probar miles de versiones de Facebook. En nuestras paredes tenemos las palabras “Done is better than perfect”.

.

5.-No debatimos durante horas y días sobres si una idea es buena o cual es la mejor forma de hacerla. Desarrollamos un prototipo y vemos como funciona. Nuestro mantra es “Code wins arguments”.

.

6.-La cultura de Facebook es abierta y basada en meritocracia, creemos que la mejor idea e implementación siempre gana (en los test), no la persona que es la mejor convenciendo por una idea o la persona que coordina más gente. Para reforzar esta idea, cada pocos meses hacemos un hackathons donde todo el mundo desarrolla prototipos para las nuevas ideas que tienen. Al finalizar, juntos vemos y probamos todos los prototipos desarrollados. La mayoría de nuestros productos de más éxito salen de las hackathons, entre ellos el timeline, chat, vídeo, el framework de desarrollo móvil y algunas de las infraestructuras más importantes como el compilador HipHop.

.

7.- Focalízate en tener el mayor impacto, para lograrlo, nos focalizamos en arreglar los problemas que tengan el mayor impacto en los usuarios. Esto parece fácil, pero creemos que la mayoría de las empresas lo hacen mal y pierden mucho tiempo en desarrollos que no son importantes para sus usuarios.

.

8.-Muévete rápido, desarrolla más cosas y aprende rápido. Cuando las empresas se hacen grandes, se hacen lentas, porque tienen miedo a cometer errores y así pierden muchas oportunidades. Muévete rápido y rompe cosas. Si no estás cometiendo errores lo más probable es que no te estés moviendo los suficientemente rápido.

.

9.-Arriésgate, desarrollar grandes cosas es sinónimo de tomar riesgos. Sabemos que tomar riesgos asusta a muchas compañías y las aleja de lo que realmente tienen que hacer, nuestra frase, “El riesgo más grande es no tomar riesgos”, fomentamos que la gente haga cosas atrevidas aunque esto signifique cometer errores.

.

10.- Las personas con más información pueden tomar mejores decisiones. Nos aseguramos que todo el mundo en Facebook tiene acceso a la mayor cantidad posible de información sobre la empresa, así pueden tomar grandes decisiones con gran impacto.

La mayoría de estos conceptos de desarrollo de software están desarrollados en el libro The Lean Software.