miércoles, 7 de noviembre de 2007

Cuando el software se convierte en "feature"

Via incognitosis, que a su vez basado en lo leido en Coding Horror (muy recomendable para cualquier programador), leo algo de lo que llevo años quejandome amargamente, y me voy a centrar mi explicación en un software muy en particular.

Centremonos: Winamp. Mirando su historia, este programa nació en el 1997 de un tal Justin Frankel también co-creador de Gnutella, siendo un simple reproductor, bastante básico y que simplemente reproducia mp3 de bitrate estático y lleno de bugs. El objetivo era claro: Reproducer mp3. Tras varias versiones nuevas, se creo el ya conocido interfaz de Winamp, y se añadio la posibilidad de incorporar skins que permitian tener el reproductor muy personalizado y visualizaciones que iban al ritmo de la música. Para mi las verdaderas primeras versiones de Winamp fueron las 1.9x. Recordadas por todos, que fueron las primeras en incluir todo lo anteriormente citado. Ademas, permitia añadir nuevos plugins para soportar mas tipos de ficheros de audio, lo que dejo abierta la puerta para la eterna mejora del programa en compatibilidad. Eran estables y ligeras. Podian reproducir casi de todo, y si no, habia un plugin en algún sitio para añadirselo.
Tambien, remarcar que los años 97-98 fueron años muy expectaculares en cuanto a desarrollo, ya que sacaros al menos 30 versiones diferentes, entre ellas varias con el numero 666, incluida la mitica 1.666. Se estaba llegando a un reproductor perfecto.
Tras las versiones 1.x se paso a las rama 2.x, con pequeñas mejoras en cuanto a manejo de las listas, como por ejemplo un mejor playlist, atajos de teclado para casi todo... y se consiguió llegar a la mejor versión de este reproductor, por estabilidad, ligereza y versatilidad: 2.91/2.92 (son casi la misma con pequeños retoques). Ademas del desarrollo de ShoutCAST, que hacia de tu Winamp una emisora de radio en internet... Y el instalable del reproductor solo ocupaba 1Mb de tamaño.

Apartir de aquí, empieza la "featurelitis". Es decir, tenemos un reproductor redondo, Winamp. Muy conocido, ya que por aquel año 2002/2003 era el reproductor mas utilizado (ya que solo habia que ver la mierda de Windows Media Player, Real Player, QuickTime, etc... que habia por la época, que eran pesados, con muchos errores y encima no reproducian casi ningun formato en comparación con Winamp), con mucha gente desarrollando skins, plugins, y pequeñas utilidades que nos hacian la vida mas facil.

Nace, Winamp 3.x (debido, según las malas lenguas, a la compra de Nullsoft por AOL y salida del creador de Winamp de la empresa), rama que se dejo inconclusa (fué abandonada en fase "beta"), ya que fue una reescritura del Winamp completa, la cual no fueron capaces de que funcionara como es debido nunca, lleno de bugs y una ejecución exasperantemente lenta, abandonando todo lo desarrollado en la versión 2.x, versión bajada por 25 millones de usuarios, o eso decian, en todo el mundo. Todo por querer decir "esto es totalmente nuevo", "tiene muchas nuevas funcionalidades", "es diferente"... ¿Conocen la famosa teoria de la "resistencia al cambio"?

Y empieza la divergencia de lo que la gente esperaba de dicho programa. Se incluye de forma "Beta" un reproductor de video... ¿Realmente era necesario dicho "feature"?.
Winamp, era un programa muy asociado con el audio, y de golpe nos ofrencen una versión que hace "mas" de lo que inicialmente necesitamos. Demostrando asi, uno de los errores mas comunes en las empresas de software cuando tienen un programa exitoso. Quieren abarcar mucho mas cada vez, y muchas veces ya no es tanto calidad lo que venden, si no "features" que no se sabe nunca muy bien a quien consultan para saber su necesidad. Tratar de abarcar mas allá de lo que inicialmente estaba enfocado el software no es necesariamente malo, pero si, cuando el cambio es radical sobre un programa ya con mucho arraigo sobre las masas. Es como si el Paint de windows ahora fuera un Picasa de golpe... estoy seguro que nadie, inicialmente, dejaría de usar Picasa para pasarse a Paint.

Lo que quizas es mucho peor, y es otro "mal" muy introducido en la industria del software es la "featurelitis", como ya he comentado. Solo hay que mirar la pantalla del "Winamp Update" que adjunto en el articulo. La agobiante necesidad de añadir "features", no parches, no bugfixes... solo "features". Ese problema es crónico en Microsoft, donde hay un programa del cual me suelo reir mucho, como es el messeger, ya que lleva desde que salio haciendo casi lo mismo, cuando programas de software libre hacen lo mismo y mas. Eso sí, en cada nueva versión se nos vende como una amalgama de nuevas "features" que suelen resumirse en una: parches.
Vender parches no funciona. Vender "features" es lo que da pasta... asi de simple.
Alguién me dijo una vez que hay una fiebre de incluir mas funcionalidades y mas y mas... pero no de hacer que lo que realmente se espera que haga el programa, se haga bien, con un interfaz adecuado, sencillo y eficiente. En la web de Coding Horror lo dejan bastante claro en este artículo. El usuario no mirará que leches hace, sino que hace mas cosas que el resto, ya que la mayoria del software que se vende, es adicto a incluir una tabla comparativa, a poder ser gigante y que ocupe al menos 3 pantallas de tu navegador, donde se compara con el resto. En vez de incluir una lista de funcionalidades reales, se para a indicarte que "Puedes cambiar la decoración de las ventanas", por ejemplo, la cual es sin duda la mayor de las funcionalidades que puedo pedirle a un programa de hoja de calculo.

Ahora imaginemos, bueno no lo hagamos ya que es real en su versión 5.5, de un reproductor de audio que hace lo de siempre, mas lento, mas pesado, que hace muchas cosas que nunca usamos como por ejemplo reproducir videos, organizar una biblioteca, conectarse a 100 mil emisoras de radio, y una politica bastante asquerosa de intentar actualizarnos el software cada 15 dias por una nueva "increible" versión con cientos de "features" nuevos (que desconozco ya que ni tan siquiera los uso).
Al final, no usaremos Skin, o solo uno, y casi nunca los malditos plugins, asi como que nadie se preocupa de crear una "bibilioteca" de tus canciones o comprar online através de este software. Usaremos el Winamp, como se usaba en la versión 2.91 (o directamente tendrán esa versión instalada), sin cambios y quitando todo lo nuevo, ya que no hace falta.

La "featurelitis", es el mal del desarrollo de software. Haz un software y preocupate de que funcione, no de la lista de cosas que hace.


Nota: Este árticulo tiene mucha información sacada de Winamp Heavens.

No hay comentarios: