Joel on Software

Joel on Software   La Opinión de Joel sobre qué es Software

 

Otros artículos de "Joel on Software" en Español

Otros artículos de "Joel on Software" en Inglés

Envíele un Email al autor (solo en Inglés)

 

Los Buenos Programas Toman Diez Años. Acostúmbrense.


Por Joel Spolsky
Traducido por Luis Lara
Editado por Joaquín Gracia Murugarren
Julio 21, 2001

Observen esta pequeña gráfica:

Lotus Notes installed base, chart.
[Fuente: Iris Associates]

Esta gráfica muestra el número de licencias instaladas de Lotus Notes workgroup, desde que se introdujo en el mercado en 1989 hasta el 2000. De hecho, cuando Notes 1.0 fue finalmente liberado, había estado bajo desarrollo durante cinco años. Hay que notar que realmente pasó un buen tiempo antes de que Notes fuera lo suficientemente bueno para que la gente empezara a comprarlo. Es más, desde que se escribió la primer línea de código en 1984, hasta la parte de la curva que empieza a subir y que fue cuando las cosas se pusieron interesantes, pasaron cerca de 11 años. Durante todo este tiempo, Ray Ozzie y su tripulación no estuvieron tomando piñas coladas en el bar de St Barts. Estaban escribiendo código.

La razón de por qué les cuento esta historia, es que no es algo inusual en aplicaciones de software serias. La base de datos Oracle lleva en el mercado 22 años. El desarrollo de Windows NT empezó hace 12 años. Microsoft Word es particularmente longevo; recuerdo haber visto Word 1.0 para DOS en secundaria (ya me delaté, ¿no es cierto? Eso fue en 1983.)

Para la gente experimentada en software nada de esto es muy sorprendente. Primero escribes la primera versión de tu software, unas pocas personas lo utilizan y puede que les guste, pero faltan muchas opciones básicas, hay problemas de rendimiento, así que un año después, liberas la versión 2.0. Y todo mundo opina y sugiere qué nuevas funcionalidades deben incluirse en la 2.0, en la 3.0, y en la 4.0, porque hay muchas cosas importantes por hacer. Recuerdo mis días en el equipo Excel, cuando había muchísimas cosas que simplemente teníamos que hacer: Tablas Pivote, hojas de cálculo en 3-D. VBA. Acceso a Datos. Para cuando finalmente lanzabas la nueva versión al público expectante, la gente simplemente se pegaba por comprarlo. ¿Recuerdan Windows 3.1? objetivamente, necesitaba de archivos con nombres largos, necesitaba protección de memoria, necesitaba el plug and play, y necesitaba un millón de cosas importantes sin las cuales no podríamos, ni siquiera, imaginar vivir sin ellas, pero no había tiempo, y todas esas innovaciones tuvieron que esperar hasta Windows 95.

Pero esto pasó únicamente en los primeros diez años. Después de eso, nadie puede imaginar ni una sola mejora más que realmente necesite. ¿Existe algo que necesites en Excel 2000 o Windows 2000 que no tenga ya? Con todo respeto a mis amigos en el equipo Office, tengo la sensación de que no hay ninguna nueva función útil en Office desde la versión de 1995. Muchas de las llamadas "mejoras" añadidas desde entonces, como el denigrante ex-clip de papel y el auto destrozador de documentos, son solo estorbos y O'Reilly esta haciendo un magnífico negocio vendiendo libros que te dicen como deshabilitarlas.

De modo que, cuesta un largo tiempo el escribir un buen programa, pero cuando ya está terminado, está terminado. Oh, por supuesto, puedes sacar una nueva versión cada uno o dos años tratando de conseguir beneficios de las actualizaciones, pero tarde o temprano la gente va a preguntar: "¿Y por qué arreglar algo que no falla?"

picture-fruit:  

El fallo de no comprender la regla de los diez años conduce a errores de negocios cruciales.

Error numero 1. El síndrome de Se Grande Rápido. Esta falacia de la burbuja de Internet ya ha sido comentada muchas veces por todo el mundo, así que no hablare mucho de ella. Pero una observación importante es que las compañías burbuja que están tratando de crear software (a diferencia de las tiendas de comida para perros) simplemente no tienen el suficiente tiempo para que su software sea bueno. Mi ejemplo favorito es desktop.com, que tenía el principio de algo que seguramente habría sido muy bueno si hubieran trabajado en él durante diez años. Pero la mentalidad de construir-en-el-aire, la desmesurada contratación de trabajadores, el enorme despilfarro la compañía, y la necesidad de incrementar el valor de las acciones cada diez minutos hizo imposible el poder desarrollar software durante diez años. Y la versión 1.0, igual que todas, era realmente horrible, y nadie podría ni siquiera imaginarse usándola. Pero desktop.com 8.0 podría haber sido bastante buena. Lástima que nunca lo sabremos.

Error numero 2. El síndrome de la Super-Promoción. Cuando liberas la 1.0, deberías dejarla tranquila durante un tiempo. Deja que los usuarios precoces la encuentren. Porque si empiezas a comercializarla y promocionarla demasiado, cuando la gente vea lo poco que has hecho, se sentirán decepcionados. Desktop.com es un ejemplo de esto, así como Marimba, y Groove: tuvieron tanta promoción desde el día uno, que la gente se detuvo a ver su versión 1.0, tratando de ver todo lo excitante que era, pero como la mayoría de las versiones 1.0, era tan emocionante con ver crecer el pasto seco. Así que ahora hay millones de personas en el mundo que no han visto a Marimba desde 1996, y que piensan que aún es una extraña lista para descargar applets Java que fueron lanzados juntos hace como 4 meses.

Mantener tranquila la versión 1.0 significa que debes ser capaz de sobrevivir aun con pocas ventas. Y esto significa que necesitas bajar tus costes, lo que significa menos empleados, lo cual, al inicio del desarrollo de software realmente es una muy buena idea, porque si al principio únicamente puedes contratar a 1 programador, la arquitectura debería ser razonablemente consistente e inteligente, en lugar de un gran revoltijo con docenas de conflictivas ideas de cientos de programadores que deben ser reescritas por completo (como Netscape, de acuerdo con los defensores de la decisión de tirar todo el código fuente y empezar desde cero).

Error numero 3. Creer en el Tiempo de Internet. Cerca de 1996, el New York Times fue el primero en notar que las nuevas versiones del navegador Netscape salían cada seis meses más o menos, mucho más rápido que el acostumbrado ciclo de dos años para actualizaciones utilizado por compañías como Microsoft. Esto llevó a crear el mito de algo llamado el "Tiempo de Internet" en el cual "los negocios se mueven mucho más rápido". Lo cuál parece bonito, pero no es cierto. El software no esta siendo creado más rápido, sólo esta siendo liberado más frecuentemente. Y en las primeras etapas de un nuevo producto de software, hay tantas cosas importantes que debes agregar, que puedes sacar nuevas versiones cada seis meses y aún tener grandiosas características que la gente Debe Tener. Así que lo haces. Pero no estás escribiendo software más rápido que antes. (Tengo que dar reconocimiento al equipo del Internet Explorer. En las versiones 3.0 y 4.0 del IE, seguramente desarrollaron el software cerca de diez veces más rápido que la norma en la industria. Esto no tuvo nada que ver con el Internet y sí con el hecho de tener un fantástico y bien preparado equipo, ayudado además por 15 años de experiencia colectiva creando aplicaciones comerciales en Microsoft.)

Error numero 4. Perder los beneficios de las actualizaciones cuando la aplicación está terminada. Un poco de sabiduría popular: en los primeros días (finales de los 80s), la industria de los PCs estaba creciendo tan rápido que casi todas las aplicaciones de software estaban siendo vendidas a usuarios nuevos. Microsoft generalmente cobraba cerca de $30 usd por actualizar su aplicación de $500 usd, hasta que alguien se dio cuenta que el crecimiento de usuarios nuevos estaba siendo nulo, y que había demasiadas copias que estaban siendo compradas como actualización para conseguir un precio menor. Lo que nos lleva a donde estamos ahora, con actualizaciones que generalmente cuestan un 50%-60% del precio de la versión completa y que constituyen la mayoría de las ventas. El problema ahora es que ya no se te ocurre ninguna nueva característica que sirva, y primero le agregas un clip para papel, y después se lo quitas, tratando de cobrar las dos veces, pero la gente ya no esta cayendo en el truco. Entonces es cuando empiezas pensar que mejor deberías cobrar por licencias anuales, y así convertir tu producto en una suscripción y obtener el permiso de sustraer el dinero a tus clientes aun sin tener que agregar ninguna mejora. Es un truco contable impecable: si vendes una aplicación de software por $100 usd, Wall Street lo valorará en $100 usd. Pero si puedes vender una licencia anual en $30 usd, entonces puedes pregonar que vas a recibir ganancias recurrentes de $30 usd durante los próximos 10 años, y esto vale $200 usd para Wall Street. ¡Tada! ¡El precio de la acción se duplica! (Casualmente, así es como SAS cobra por sus aplicaciones de software. Logran cerca de un 97% de renovaciones cada año.)

El problema es que con aplicaciones empaquetadas como las de Microsoft, los clientes no aceptan esto. Microsoft ha estado tratando de lograr que sus clientes acepten aplicaciones basadas en subscripciones desde principios de los 90's, y cada vez han tenido un rechazo masivo por parte de los clientes. Una vez que la gente se acostumbró a que es "dueña" del software que compró, y que no tiene que actualizar su versión si no quiere las nuevas características, entonces las compañías que tratan de vender un producto que ya esta totalmente terminado tienen un gran problema.

Error numero 5. El síndrome de "Lo Liberaremos Cuando Esté Listo". Esto me hace recordar. ¿Que demonios sucede con Mozilla? Me divertí con ellos hace más de un año porque habían pasado tres años y la maldita cosa aún no salía por la puerta. Hay una gráfica, frecuentemente obsoleta, en su sitio web que pretende mostrar que piensan liberar (ahora sí) para el último cuarto del 2001. Dado que esta gente realmente no tienen nada parecido a un plan en las que basar sus estimaciones no estoy seguro por qué piensan esto. Ah, este es estado del desarrollo de software en la Tierra del Tiempo de Internet.

Pero me estoy saliendo del tema. Si, el software cuesta 10 años en escribirse, y no, no hay forma posible de que un negocio pueda sobrevivir si no libera nada en 10 años. Para cuando calculas el flujo de ingresos de 10 años en el futuro a valor presente, te queda nada en absoluto (bupkis), especialmente cuando los analistas de negocios estiman que cualquier cosa después de 5 años tiene simplemente un "valor residual" en sus prefabricadas y ficticias hojas de cálculo que los convencen de que invertir en calcetines de muñecos por valor de $100.000.000 usd es una muy buena idea.

De cualquier forma, el plan de lograr un buen programa en el curso de 10 años, asume que al menos durante 8 de esos años, has tenido buena retroalimentación de tus clientes, y has podido incluir las buenas innovaciones de tus competidores, y se han incluido todas las buenas ideas de la gente que trabaja contigo porque creyeron que la versión 1.0 era muy prometedora. Tienes que liberar de manera temprana versiones incompletas -- pero no las sobrevalúes ni las anuncies durante el Super Bowl, porque simplemente aún no son tan buenas, no importa que tan inteligente seas.

Error numero 6. Actualizaciones Demasiado-Frecuentes (también conocido como el Síndrome Corel). Al principio, cuando le estás agregando nuevas funcionalidades a tu programa y no tienes una gran cantidad de clientes, es posible liberar una nueva versión cada 6 meses, y la gente te querrá por esas nuevas funcionalidades. Pero después de cuatro o cinco actualizaciones de este tipo, debes de bajar el ritmo, o tus clientes dejaran de actualizarse. Empezaran a saltarse actualizaciones para ahorrarse el sufrimiento o el costo de actualizarse. Y una vez que saltaron una actualización, empezaran a convencerse de que, eh, no siempre necesitan la última y más grande actualización. Yo utilice el Corel PhotoPaint 6.0 durante 5 años. Si, lo sé, tiene toda clase bugs y problemas, pero ya los conocía todos y cada uno de ellos, y siempre los compensaba arrastrando la selección un pixel a la derecha de donde yo pensaba que debería ser.

Roosevelt Memorial in Washington

Haz un plan a 10 años. Asegúrate de que puedes sobrevivir 10 años, porque los programas de software que producen 10.000 millones de dólares al año es lo que tardan. No te emociones demasiado con tu versión 1 y no pienses, ni por un minuto, que tienes esperanzas de alcanzar las grandes ligas con tu primera versión. Los buenos programas, como el vino, necesitan tiempo.



Esté articulo apareció originalmente en Inglés con el nombre

Good Software Takes Ten Years. Get Used To It.

 

Joel Spolsky es el fundador de Fog Creek Software, una pequeña empresa de software en Nueva York. Es titulado por la Universidad de Yale y ha trabajado como programador y gerente en Microsoft, Viacom, y Juno.


El contenido de estas páginas representan la opinión de una persona.
Todo el contenido es Copyright ©1999-2005  por Joel Spolsky. Todos los derechos son reservados.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky