Complexitat

El febrer del 2013, a The Verge es publicava una peça, Photoshop is a city for everyone: how Adobe endlessly rebuilds its classic app, que és una lectura imprescindible per als qui en algun moment ens hem enfrontat amb peces de programari que han tingut un recorregut i presenten un grau de complexitat tan enorme com Photoshop i els més de vint-i-cinc anys d’història que té. I qui diu Photoshop diu Flash, o Final Cut, o Microsoft Office, però també qualsevol sistema operatiu amb una mica d’història o, fins i tot, qualsevol lloc web complex, com el de qualsevol gran botiga en línia.

La característica comuna que uneix tots aquests sistemes és que no hi ha ningú que habitualment els faci servir que n’estigui satisfet del tot: tot usuari experimentat ha topat amb algun aspecte del sistema operatiu d’aquests sistemes que va radicalment en contra de la seva intuïció, i tant és que sigui Windows (el sistema que a tothom ens encanta odiar), Mac OS X o qualsevol versió de Linux: si no us heu trobat amb aquest detall que fa bullir la sang, és que no l’heu fet servir prou. I passa la mateixa cosa amb qualsevol dels exemples que hem esmentat en el paràgraf anterior. Si no és el tractament de tipografies de Photoshop, és el funcionament de la inserció d’imatges en Word, l’editor de codi de Flash, el consum de memòria de Firefox…

La cosa greu és que, si investiguem a fons qualsevol d’aquests defectes que ens resulten obvis i gairebé literalment dolorosos, en la gran majoria de casos –si no en tots– descobrirem, d’entrada, que sí, que el dissenyador, desenvolupador, product manager o responsable de torn és conscient del problema des de fa temps (segurament des d’abans que nosaltres). I si no s’ha resolt és, gairebé sempre, per un d’aquests dos motius. El primer és que aquest bloc de codi, aparentment petit i inofensiu, és una peça essencial de molts altres blocs de codi dels quals depenen un munt de funcionalitats essencials del programa. Això habitualment s’agreuja, més vegades de les que caldria, perquè amb els anys la documentació no està a l’altura i el codi s’ha tornat tan complex que la inversió en persones i hores que requeriria corregir-lo seria tan gran que no compensa de cap manera els problemes que causa avui dia. El segon és que aquest quadre de diàleg de selecció de tipografia que odiem tant és el mateix quadre de diàleg que centenars, milers o, si parlem d’una cosa tan gran com Photoshop, segurament desenes i desenes de milers d’altres usuaris consideren perfecte i intocable.

Sobre el primer aspecte, una anècdota, segurament apòcrifa, d’un empleat de Microsoft, uns mesos abans del llançament d’una nova versió de Windows (95, si no em falla la memòria), anant a una gran botiga d’informàtica per comprar totes les aplicacions, provar-les d’una a una amb el sistema operatiu, que encara estava en proves. El resultat (diu la llegenda, una altra vegada) és que en el codi de Windows sempre hi ha hagut desenes de milers de línies de codi dedicades a fer que hi hagi velles aplicacions, programades per a explotar errors (bugs) de versions anteriors del sistema, que continuïn funcionant, amb el consegüent efecte negatiu sobre el rendiment i el manteniment globals del sistema.

(Per cert, un article molt recomanable sobre el tema és Martian Headsets, de Joel Spolsky.)

Sobre el segon aspecte, el de l’existència d’una base d’usuaris que s’ha acostumat al funcionament de l’aplicació que sigui, n’hi ha prou de recordar el clam popular quan Microsoft va llançar l’Office 2007 i la interfície ribbon. Malgrat que era el resultat d’una exhaustiva recerca en el camp de la interacció persona-ordinador, hi va haver milions d’usuaris que es van rebel•lar contra el canvi i segurament van deixar de comprar l’actualització, amb la consegüent i milionària pèrdua d’ingressos per a l’empresa de Redmond.

Es poden resoldre, aquests problemes? Fins a cert punt, sí. Sembla que hi ha empreses que tenen més bon pols a l’hora de fer passos endavant. Apple, amb les seves actualitzacions del sistema operatiu, que sovint són incompatibles amb versions relativament recents de programaris populars, o amb els seus canvis d’arquitectura (de la primera Motorola 68000 a PowerPC i finalment a Intel), sembla que gairebé sempre n’ha sortit airosa (la sabata del seu peu la van trobar amb el cas Final Cut, però aquest cas és relativament menor). Pel que fa als canvis en la interfície, un bon exemple és Facebook, que afronta amb determinació l’enorme crisi de relacions públiques que ha comportat cada canvi al seu mur i només avalua si el canvi s’ha de retirar o no al cap d’uns quants dies, quan ha retrocedit la inevitable onada de queixes davant qualsevol canvi més o menys radical.

Per als qui d’aquí a un temps sereu graduats en Multimèdia, el desenvolupament d’aplicacions complexes no és, segurament, el camp que us afecta més. Sens dubte, però, us trobareu, tant en el rol d’usuaris com en el de creadors o productors, batallant amb sistemes que presenten factors com aquests. I és molt important anticipar la inevitabilitat d’aquests problemes per a minimitzar-ne, en la mesura del possible, l’impacte futur sobre la vostra activitat.

Vull acabar amb un parell d’anècdotes. En primer lloc, potser la millor il•lustració del problema que coneixem: una tira còmica publicada a xkcd.com, casualment no gaires dies abans de l’article amb què he obert aquesta peça.

Cómic. Només conté el següent text, en anglès: 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.

I, en segon lloc, un enllaç (http://computerhistory.org/atchm/adobe-photoshop-source-code/) des del qual podeu accedir al codi font original, en Pascal, per a Mac sobre arquitectura Motorola 68000 de la versió 1.0.1 de Photoshop, del 1990, que “amb prou feines” conté 128.000 línies de codi i que cap, comprimit, en un sol disquet de l’època (una cosa del tot impensable al cap de no gaires versions).

Publicat per César Córcoles

Professor del grau de Multimèdia de la UOC.