{"id":392,"date":"2013-03-16T16:03:24","date_gmt":"2013-03-16T16:03:24","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/?p=392"},"modified":"2013-03-26T08:48:34","modified_gmt":"2013-03-26T08:48:34","slug":"complexity","status":"publish","type":"post","link":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/complexity\/","title":{"rendered":"Complejidad"},"content":{"rendered":"<p>En febrero del 2013, en <cite lang=\"en\">The Verge<\/cite> se publicaba una pieza, <a href=\"http:\/\/www.theverge.com\/2013\/2\/13\/3959868\/photoshop-is-a-city-for-everyone-how-adobe-endlessly-rebuilds-its\">Photoshop is a city for everyone: how Adobe endlessly rebuilds its classic app<\/a>, que resulta lectura imprescindible para todos aquellos que en alg\u00fan momento nos hemos enfrentado con piezas de software que han tenido un recorrido y presentan un grado de complejidad tan enorme como Photoshop y sus m\u00e1s de veinticinco a\u00f1os de historia. Y quien habla de Photoshop habla de Flash, o de Final Cut, o de Microsoft Office, pero tambi\u00e9n de cualquier sistema operativo con un m\u00ednimo de historia o, incluso, cualquier sitio web complejo, como el de cualquier gran tienda en l\u00ednea.<\/p>\n<p>La caracter\u00edstica com\u00fan que une a todos esos sistemas es que absolutamente nadie que los usa habitualmente est\u00e1 completamente satisfecho con ellos: todo usuario experimentado ha topado con alg\u00fan aspecto de su sistema operativo que va radicalmente en contra de su intuici\u00f3n, sin importar que se trate de Windows, el sistema que a todos nos encanta odiar, o Mac OS X o cualquier versi\u00f3n de Linux: si no te has encontrado con ese detalle que te hace hervir la sangre, es que no lo has usado lo suficiente. Y lo mismo pasa con cualquier otro de los ejemplos que hemos citado en el p\u00e1rrafo anterior. Si no es el tratamiento de tipograf\u00edas de Photoshop, es el funcionamiento de la inserci\u00f3n de im\u00e1genes en Word, el editor de c\u00f3digo de Flash, el consumo de memoria de Firefox&#8230;<\/p>\n<p>Lo grave es que, si investigamos a fondo cualquiera de esos defectos que nos resultan obvios y casi literalmente dolorosos, en la inmensa mayor\u00eda de casos \u2014si es que no en todos\u2014 descubriremos, en primer lugar, que s\u00ed, que el dise\u00f1ador, desarrollador, <i>product manager<\/i> o responsable de turno es consciente del problema desde hace tiempo (probablemente desde antes que nosotros). Y si no se ha resuelto es, casi siempre, por uno de dos motivos. El primero es que ese bloque de c\u00f3digo, aparentemente peque\u00f1o e inofensivo, es una pieza esencial de muchos otros bloques de c\u00f3digo de los que dependen un buen mont\u00f3n de funcionalidades esenciales del programa. Esto suele venir agravado, en m\u00e1s ocasiones de las que deber\u00eda, porque con los a\u00f1os el c\u00f3digo se ha vuelto tan complejo y la documentaci\u00f3n no est\u00e1 a la altura que la inversi\u00f3n en personas-hora que requerir\u00eda su correcci\u00f3n ser\u00eda tal que de ninguna forma compensa los problemas que causa actualmente. El segundo es que ese cuadro de di\u00e1logo de selecci\u00f3n de tipograf\u00eda que tanto odiamos es el mismo cuadro de di\u00e1logo que centenares, miles o, si hablamos de algo tan grande como Photoshop, probablemente decenas y decenas de miles de otros usuarios consideran perfecto e intocable&#8230;<\/p>\n<p>Sobre el primer aspecto, una an\u00e9cdota, probablemente ap\u00f3crifa, de un empleado de Microsoft, unos meses antes del lanzamiento de una nueva versi\u00f3n de Windows (95, si no me falla la memoria), dirigi\u00e9ndose a una gran tienda inform\u00e1tica para comprar <em>todas<\/em> las aplicaciones, probarlas <em>una a una<\/em> contra el sistema operativo a\u00fan en pruebas. El resultado (cuenta la leyenda, de nuevo) es que en el c\u00f3digo de Windows siempre ha habido decenas de miles de l\u00edneas de c\u00f3digo dedicadas a hacer que viejas aplicaciones, programadas para explotar <i>bugs<\/i> de versiones anteriores del sistema, sigan funcionando. Con el consiguiente efecto negativo sobre el rendimiento y la mantenibilidad globales del sistema.<\/p>\n<p>(Por cierto, que un art\u00edculo muy recomendable sobre el tema es <a href=\"http:\/\/www.joelonsoftware.com\/items\/2008\/03\/17.html\">Martian Headsets<\/a>, de Joel Spolsky.)<\/p>\n<p>Sobre el segundo aspecto, el de la existencia de una base de usuarios que se ha acostumbrado al funcionamiento de la aplicaci\u00f3n que sea, basta recordar el clamor popular cuando Microsoft lanz\u00f3 Office 2007 y su interfaz <i>ribbon<\/i>. A pesar de ser el resultado de una exhaustiva investigaci\u00f3n en el campo de la interacci\u00f3n persona ordenador, millones de usuarios se rebelaron contra el cambio y muy probablemente dejaron de comprar una actualizaci\u00f3n, con la consiguiente y millonaria p\u00e9rdida de ingresos por parte de la empresa de Redmond.<\/p>\n<p>\u00bfSon estos problemas solventables? Hasta cierto punto. Parece que hay empresas que tienen el pulso m\u00e1s firme a la hora de dar pasos adelante. Apple, con sus actualizaciones del sistema operativo que, con una cierta frecuencia, resultan incompatibles con versiones relativamente recientes de softwares populares, o con sus cambios de arquitectura (de la primera Motorola 68000 a PowerPC y finalmente a Intel) parece haber salido airosa casi siempre (la horma de su zapato la encontraron con el caso Final Cut, pero ese es un caso relativamente menor). Por lo que respecta a los cambios en la interfaz, un buen ejemplo es el de Facebook, que afronta con determinaci\u00f3n la enorme crisis de relaciones p\u00fablicas que ha supuesto cada cambio a su &#8216;muro&#8217; y s\u00f3lo eval\u00faan si el cambio debe retirarse o no unos d\u00edas despu\u00e9s, cuando ha retrocedido la inevitable ola de quejas ante cualquier cambio m\u00e1s o menos radical.<\/p>\n<p>Para los que dentro de un tiempo ser\u00e9is graduados y graduadas en Multimedia, el desarrollo de aplicaciones complejas no es, seguramente, el campo que m\u00e1s os afecta. Pero sin duda os encontrar\u00e9is, tanto en el rol de usuarios como en el de creadores o productores, batallando con sistemas que presentan factores como estos. Y es muy importante anticipar la inevitabilidad de estos problemas para, en la medida de lo posible, minimizar su impacto futuro sobre vuestra actividad.<\/p>\n<p>Querr\u00eda cerrar con un par de an\u00e9cdotas. En primer lugar, quiz\u00e1s, la mejor ilustraci\u00f3n del problema que conozco: una tira c\u00f3mica publicada en xkcd.com, casualmente apenas unos d\u00edas antes que el art\u00edculo con que abr\u00edamos esta pieza.<\/p>\n<p><a href=\"https:\/\/www.xkcd.com\/1172\/\"><img decoding=\"async\" src=\"http:\/\/imgs.xkcd.com\/comics\/workflow.png\" alt=\"C\u00f3mic. S\u00f3lo contiene el siguiente texto, en ingl\u00e9s: Changes in version 10.17: The CPU no longer overheats when you hold down spacebar. Comments. Longtimeuser4 writes: This update broke my workflow! My control key es hard to reach, so I hold spacebar instead, and I configured emacs to interpret a rapid temperature rise as Control. Admin write: That's horrifying. Longtime user4 writes: Look, my setup works for me. Just add an option to reenable spacebar heating.\" title=\"There are probably children out there holding down spacebar to stay warm in the winter! YOUR UPDATE MURDERS CHILDREN.\" class=\"aligncenter size-full \" \/><\/a><\/p>\n<p>Y, en segundo y \u00faltimo lugar, un enlace (<a href=\"http:\/\/computerhistory.org\/atchm\/adobe-photoshop-source-code\/\">http:\/\/computerhistory.org\/atchm\/adobe-photoshop-source-code\/<\/a>) desde el que podr\u00e9is acceder al c\u00f3digo fuente original , en Pascal, para Mac sobre arquitectura Motorola 68000 de la versi\u00f3n 1.0.1 de Photoshop, de 1990, que \u00abapenas\u00bb contiene 128,000 l\u00edneas de c\u00f3digo y que cabe, comprimido, en un solo diskette de la \u00e9poca (algo absolutamente impensable apenas unas versiones m\u00e1s tarde).<\/p>","protected":false},"excerpt":{"rendered":"<p>En febrero del 2013, en The Verge se publicaba una pieza, Photoshop is a city for everyone: how Adobe endlessly rebuilds its classic app, que resulta lectura imprescindible para todos aquellos que en alg\u00fan momento nos hemos enfrentado con piezas de software que han tenido un recorrido y presentan un grado de complejidad tan enorme &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/complexity\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abComplejidad\u00bb<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[109,110,65,66,108],"class_list":["post-392","post","type-post","status-publish","format-standard","hentry","category-technologies","tag-complejidad","tag-complexitat","tag-desarrollo","tag-desenvolupament","tag-software","entry"],"_links":{"self":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/comments?post=392"}],"version-history":[{"count":7,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/392\/revisions"}],"predecessor-version":[{"id":437,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/392\/revisions\/437"}],"wp:attachment":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/media?parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/categories?post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/tags?post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}