Responsabilidad legal…

January 19th, 2005

En una cita anterior, intenté introducir la problemática que afecta a día de hoy al sector informático y que, en breves palabras, se traduce en una falta de responsabilidad legal por parte de los fabricantes de productos.

Se me ocurren diversas formas, tanto desde el punto de vista del fabricante, como desde el punto de vista del consumidor para intentar atajar el problema, en la medida de lo posible.

Desde el punto de vista del fabricante:

En primer lugar, la seguridad ha sido, hasta hoy, algo efímero, insustancial y poco considerado en los desarrollos de software. El fabricante, como empresa, debe intentar diferenciar su producto de la competencia y esto se ha venido consiguiendo añadiendo más y más funcionalidad al producto. Puede tomarse como ejemplo Microsoft Word 2003. Microsoft Word 2003 es un producto lleno de funcionalidades, la mayoría de las cuales sólo se utilizan en casos muy determinados. ¿Cúantos de vosotros utilizáis el control de cambios? ¿Y el soporte de Administración de Derechos Digitales (DRM)? De hecho, muchos de los usuarios desconocen la mayoría de las características y se limitan a utilizar lo visible, sin “rascar la superficie”. ¿Cuántas veces habré visto documentos que no utilizan hojas de estilo, o que se limitan a separar párrafos utilizandos dos saltos de carro en lugar de utilizar el pertinente espacio de separación entre párrafos del estilo Normal, o que centran texto utilizando espacios en blanco o tabuladores en lugar de emplear el alineado central? ¿Y cuántos usan las macros? Seguro que más de uno ha sufrido en sus carnes los Virus de Macro de Microsoft Office, una funcionalidad que les ha servidor para infectarse y puede que perder algún documento, pero que no han utilizado conscientemente en su vida. Interesante, ¿verdad?

La complejidad es el mayor enemigo de la seguridad y la calidad. Si un producto tiene dos interruptores, y cada uno de ellos puede estar en la posición A o B, tenemos un total de 4 posibles combinaciones. Si aumentamos el número de interruptores a 6, el número de combinaciones crece hasta 64. Puede observarse un crecimiento exponencial. En ingeniería del software, los programas se prueban creando casos de prueba que intentan comprobar cómo actúan los algoritmos cuando se introducen determinadas entradas. En el caso del ejemplo anterior, para probar el funcionamiento completo del sistema, sería necesario probar 64 diferentes combinaciones de los interruptores, eso sin contar las propias depedencias derivadas del posible estado interno del sistema. Lamentablemente, en el mundo software, no siempre es posible, ni sencillo probar todas las combinaciones. Sólo se prueban las más habituales (y me pregunto cómo de intensas fueron las pruebas de las macros de Office, dado su horrible historial de inseguridad). De hecho, a medida que aumentan las funcionalidades de un software, más casos de prueba deben contemplarse, y más difícil es diseñarlos, automatizarlos y validar los resultados.

Si estos sistemas software, de complejidad alta, se integran con otros, la complejidad resultante vuelve a aumentar, creando además problemas de dependencia, compatibilidad, integración, temporalidad, etc. Los sistemas más seguros son siempre los más sencillos, que no los más simples: aquellos que disponen de unas interfaces sencillas, bien definidas, y de la funcionalidad justa, ni más ni menos. No quiero que mi nevera me permita ver la televisión, leer el correo o reproducir la música que hay almacenada en mi PC del cuarto trastero de forma inalámbrica. Mi nevera sirve para mantener y conservar los alimentos, y cualquier funcionalidad extra introducida encarecerá el producto, lo hará más vulnerable a fallos, más complejo, menos seguro, y acabará produciéndome dolor de cabeza.

Luego, primer punto: Señores fabricantes de software, dejen de una vez de vendernos productos cada vez más difíciles de usar, con demasiadas funcionalidades y características inútiles, más caros y difiíciles de mantener. Véndanme un producto barato, fiable y de calidad, que sea seguro y no se infecte de virus o me estalle en la cara porque los ciclos de prueba de Ustedes llevarían años para probar todos y cada uno de los interruptores, recovecos, y funcionalidades. Así, nunca conseguirán que me sienta ni seguro, ni satisfecho.

En segundo lugar, la desfachatez de eliminar toda responsabilidad legal del juego es, cuanto menos, irrisoria, inmoral y poco “responsable”, valga la redundancia. Mi horno microondas, mi televisor en color, mi coche o mi nevera, me aseguran una mínima calidad y seguridad. Estoy casi convencido de que el microondas no me explotará en la cara mientras caliento un vaso de leche por las mañanas. Todos estos productos, de primera necesidad, cubren una posible indemnización, un derecho a juicio, o incluso una reparación o cambio gratuito si se encuentran en periodo de garantía.

Los fabricantes de software, en cambio, prefieren ignorar la realidad y “hacerse los suecos”. Señores de Microsoft, su producto estrella Windows es un producto tan habitual como un televisor y, por ende, puede considerarse un producto de consumo, fruto de una economía de escala ganada a pulso de monopolio. ¿Por qué su producto, que no incurre en costes de manufacturación como una lavadora al no estar compuesto de materias primas como plástico, metales o gases, está exento de las mismas leyes y normas que son aplicables a ese electrodoméstico? ¿Acaso creen que su producto es diferente? ¿Acaso piensan que su producto es mejor y que Ustedes están más allá y por encima de esas pequeñeces? Espero que no y, al menos, lo hagan conscientemente a sabiendas de que están creando un mercado de necesidades e incertidumbres, así como de inseguridad y frustación.

Por ello, el segundo punto es: Señores fabricantes, asuman sus responsabilidades y sus fallos. Yo les pago con billetes de 50€ totalmente funcionales, probados, carentes de defectos y válidos por un periodo de tiempo prolongado. Ustedes me pagan con un producto inferior, lleno de fallos y errores de diseño, de corta duración (porque tendría que actualizarlo casi cada semana con parches) y, además de reconocerlo, se niegan a adquirir una responsabilidad por ello. ¿Se imaginan Ustedes si en Redmond, un buen día, sus ascensores cayeran en picado suicidando a 20 de sus empleados y no pudieran hacer nada, ni pedir responsabilidad, ni daños ni perjuicios a la empresa que instaló el ascensor? ¿No es acaso Windows el “ascensor” que mueve diariamente miles de documentos electrónicos por la Red de Redes?

Desde el punto de vista del consumidor:

En primer lugar, deberíamos preguntarnos por qué, hasta la fecha, hemos estado comprando productos de calidad inferior, y hemos abusado de ellos hasta integrarlos en nuestras vidas y nuestras empresas. La respuesta es que, inicialmente, no existía un mercado suficientemente accesible al consumidor. Sobre el año 95, Windows 95 empezó a venderse de forma considerable, y hoy en día, es un producto inseparable que se vende con cualquier odenador, vaya a usarse o no.

En algunos casos, el producto se adquiere “inconscientemente” o de forma obligatorio, Mucha gente no compra Windows XP. Compra un PC que, casualmente viene con Windows XP. Si estas personas leyeran el “Acuerdo de Licencia de Usuario Final”, quedarían espantadas al comprender la cantidad de responsabilidades que se declinan de forma expresa. El usuario debería elegir no comprar el producto y buscar un sustituto. Hasta hace poco, no existía tal sustituto. Desgraciadamente, y sin embargo, otros fabricantes de software, no sólo Microsoft, hacen caso omiso de los usuarios y deciden establecerse por encima de la responsabilidad moral y ética abogando por un caos y una falta de legislación referente a la calidad de sus productos.

Afortunadamente, aunque otros fabricantes persiguen la misma filosofía de hacer oídos sordos, sus productos son netamente superiores, y son una alternativa viable. Hace ya casi medio año que compré un PowerBook de Apple,. El hardware es sensacional y, por supuesto, está cubierto por una garantía de 3 años. El software, sin embargo, no. A pesar de ello, el sistema operativo de mi PowerBook, Mac OS X, funciona mucho mejor, ofrece las mismas capacidades, es mucho más seguro (el número de virus existentes para esta plataforma no alcanza ni los dos dígitos) y es más vistoso que Windows. Aún no he tenido que usar un Anti-Virus, ni software Anti-Spyware, para evitar ser infectado por las hordas de agentes patógenos que plagan Internet cada día.

Es un ejemplo más de que el consumidor debe aprovechar su capacidad, su libertad y su derecho a elegir. Yo lo hice, y soy mucho más feliz desde entonces.

Así pues, en primer lugar: Señores consumidores, ¿por qué adquieren ciégamente productos que les abandonan sin ningún tipo de escrúpulos ante cualquier problema o defecto? ¿Si su fabricante de automóvil le dijera que el vehículo no le ofrece ninguna garantía y que, además, muy posiblemente sufra un accidente cada semana, al igual que les ocurrió a otros consumidores que, como Usted, compraron el mismo modelo de coche, no decidiría irse a otro concesionario y comrpar un coche de una marca diferente que le ofreciera unas mínimas garantías? No traten de engañarme… yo sé que lo harían. ¿Por que con Windows no lo hacen? Microsoft quiere integrar una variante de Windows en algunos coches de gama alta. No para que el coche conduzca solo, gracias a Dios, pero para controlar aspectos como el navegador GPS. ¿Compraría Usted un coche semejante? Recapacite.

En última instancia, dicen que la naturaleza es sabia. Y tienen razón. La diversidad de especies es lo que permite que, en caso de una catástrofe vírica, otras especies puedan sobrevivir y adaptarse. Es lo que Darwin llamó la “Teoría de la Evolución de las Especies”. En informática, sin embargo, todos usáis Windows, la misma especie vulnerable. Cuando aparece un nuevo virus, todos sus usuarios caen enfermos, sin remisión, hasta que aparece la vacuna. Cuando existe diversidad, el virus sólo afecta a ciertos organismos. En el caso de la informática, y en el mío más concretamente que tengo en casa un auténtico Zoo de sistemas operativos como Mac OS X, OpenBSD, FreeBSD, Linux, NetBSD — la diversidad es un factor de ventaja. Si algún dia me tropiezo con un virus para Linux, el resto de los sitemas operativos sobrevivirán, inalterados y totalmente ajenos al problema. Si todas mis máquinas utilizaran Windows, un virus diseñado específicamente contra él (y ya existen más de 100.000 de ellos) acabaría con todos los equipos de un plumazo, de una tacada, así de simple. Y no me vale la excusa de los Anti-Virus: la medicina siempre va por detrás de las enfermedades. Si en vez de ser mi casa se trata de mi negocio, esta situación podría suponer horas o incluso días de reparaciones, que se traducen en tiempo, y por ello, en pérdidas económicas. En los tiempos que corren, el tiempo es oro.

Así que, por último: Señores consumidores, si Ustedes tienen coches diferentes, pintados en colores diferentes, distintas marcas de televisión, reproductos MP3 de toda índole, y cámaras y móviles de las más diversas marcas y fabircantes, ¿por qué son tan poco originales y todos utilizan Windows cuando existen soluciones ahí fuera que seguro les permitirán hacer lo msimo? ¿No son Ustedes el máximo exponente de la diversidad biológica? ¿Por qué no se aplican el cuento?

¿Seguridad informática?

January 19th, 2005

Estoy cansado de leer todos los días noticias de nuevos virus informáticos que aparecen, como venidos del mismo infierno, y se comen tus datos o a tu suegra, matan a tu perro y envían cientos de correos electrónicos basura a todos tus amigos insultándoles y declarándoles tu odio eterno.

Creo que el problema con la tecnología informática reside, principalmente, en la falta de responsabilidad legal. En otras industrias, como la automovilística, la aeronáutica, o la espacial, existen unos ciclos férreos de pruebas, así como una fuerte responsabilidad legal por parte de la compañía que comercializa el producto en caso de accidente o defecto. ¿Puede alguien imaginarse qué ocurriría si el último Airbus 380, en uno de sus primeros vuelos, se estrellase, repentinamente contra el suelo, destruyendo toda su carga? Eso significaría la muerte de cerca de 800 personas. ¿Puede alguien imaginarse las repercusiones que esto supondría? No soy experto en leyes, pero si se demostrase negligencia en el diseño y las pruebas del Airbus 380, es posible que los costes legales pudieran hundir el proyecto Airbus durante mucho, mucho tiempo.

En la industria del software, sustituyamos el Airbus 380 por Microsoft Windows, y la carga del avión por los archivos de datos, música y fotos de su propietario. Ahora bien, cualquier usuario novel asume que su sistema puede “estrellarse” una o varias veces a la semana destruyendo su carga, sus trabajo actual en forma de resumen, artículo, documento o carta de amor, y éste, el usuario, suele mirar con rostro atónito la pantalla de su monitor. A continuación, presiona una combinación de teclas y si ésta no funciona, presiona el botón de encendido. “Enciende y apaga”, solía argumentar a mis compañeros de trabajo cuando sus equipos, como si de vida propia se tratara, se negaban a imprimir, o decidían presentar en sus monitores una bonita pantalla azul llena de símbolos ininteligibles. ¿Qué ocurriría si un Airbus 380 se estrellase porque el diseño del fuselaje de una de sus alas no fue probado suficientemente y no es capaz de aguantar las altas temperaturas o se desintegrase por la presión? La gente clamaría por un error de diseño y se armaría un buen lío. Sin embargo, cuando un equipo PC con Windows es infectado por un virus, o un usuario inocente entrega, inconscientemente, sus datos bancarios a un criminal electrónico (lo que se conoce como Phising), nadie aboga por un tremendo error de diseño del navegador Internet Explorer, o los componentes inseguros ActiveX, los servicios de compartición de archivos, o el componente de ejecución distribuida DCOM. En lugar de ello, la gente gasta su dinero y su tiempo instalando un software Anti-Virus, un cortafuegos y el último software Anti-Spyware. Totalmente absurdo. Para solucionar un tremendo error de diseño, no solucionamos el problema de raíz, sino que añadimos más leña al fuego: más software, más tecnología, mayor complejidad para ocultar un hecho evitable: Windows es un producto defectuoso (al igual que otros tantos).

Si en la industria aeronáutica los accidentes se han reducido considerablemente, no es sólo por el hecho de utilizar técnicas de control que exceden con varios órdenes de magnitud las que se utilizan en la industria del software, no es sólo por el hecho de que cada vez que un ingeniero decide añadir un tornillo, o un mecánico revisar una pieza del fuselaje, debe hacerlo y dejarlo constar por escrito. No, no es sólo eso. Estas industrias tienen un compromiso legal, una responsabilidad, que les obliga moral, ética y económicamente a cargar con los costes derivados de cualquier posible incidente. Otra cosa es que luego los fabricantes de automóviles contraten seguros, u hordas de abogados vestidos de trajes oscuros e impecables, para hacer frente a los posibles problemas. La responsabilidad legal, la capacidad del consumidor de reclamar, el derecho a daños y perjuicios, está contemplado desde el principio.

Cuando Usted decide comprar esa bonita caja de cartón azul, con las letras Windows XP Professional impresas en la cubierta, y con precioso disco compacto, está, además, comprando un producto en cuyo “Acuerdo de Licencia de Usuario Final”, el fabricante declina cualquier responsabilidad derivada de fallos del producto. Esto resulta, por lo menos, sospechoso. Imagine que instala este software en su central nuclear, y ahora, imagínese que falla cuando el reactor está alcanzando una temperatura crítica. Ahora imagine que el reactor explota, suelta una nube radioactiva y miles de personas mueren por la lluvia ácida. Afortunadamente, esto es imposible. Principalmente porque el “Acuerdo de Licencia de Usuario Final” prohíbe el uso de Windows XP en sistemas relacionados con armamento o centrales nucleares.

Ahora imagine que instala este software en un sistema de control de aeropuertos, como pudiera ser el de AENA. Ahora, siéntese en su panel, controlando el radar y los sistemas y vea cómo, de repente, sin razón alguna aparente, el sistema falla y se encuentra Usted, pobre controlador aéreo, sentado en su mesa con diez aviones esperando instrucciones para aterrizar. La situación es más aterradora cuando comprende que, tras el engorroso escenario, las noticias en prensa y el cabreo de los pasajeros, no va a recibir ni un sólo duro… perdón, Euro, de indemnización por este defecto galopante.

¿Se imagina Usted qué pasaría si todas las semanas tuviera un accidente con su flamante BMW 745 sin motivo aparente, si cada vez que eligiera usar el coche para ir a trabajar éste no arrancase o decidiese que no le gusta su hijita de seis años y la puerta trasera no se abriese? Seguramente, podría denunciar a la compañía, solicitar un cambio de coche o una reparación o, en el caso de un accidente, una indemnización. Ya sabemos que esta indeminización no devolverá la vida de su hija, o la de su mujer o su perro, pero el mero hecho de que una compañía asuma esta responsabilidad supondrá:

1. Defensa legal por parte del damnificado.
2. El fabricante pondrá todo su empeño en mejorar la calidad de su producto para evitar situaciones embarazosas que cuestan dinero, pérdida de imagen, mala prensa. En definitiva, todo se traduce en pérdidas económicas, que es lo único que las empresas entienden.