Szerző: Budai Péter

2005. február 25. 10:38

Nem megerősítésre van szükség, hanem a visszavonás lehetőségére

Pár napja olvasgattam az MSDN magazint és egy számomra elsőre meglehetősen meglepő, azonban mélyen elgondolkodtató írást találtam az {end bracket} gondolatébresztő cikksorozat részeként. Az alább olvasható vélemény Davis S. Platt ott megjelent írása alapján született.

Pár napja olvasgattam az MSDN magazint és egy számomra elsőre meglehetősen meglepő, azonban mélyen elgondolkodtató írást találtam az {end bracket} gondolatébresztő cikksorozat részeként. Az alább olvasható vélemény Davis S. Platt ott megjelent írása alapján született.

"Are you SURE?"

A legtöbb felhasználói felületen, amivel a számítógépet nap mint nap használó emberek találkoznak, van pár nagyon gonosz felugró ablak, ami csak annyit tartalmaz: "TÉNYLEG biztos vagy abban, hogy ezt akarod csinálni?". Ez egy rettenetesen barátságtalan, kellemetlen és az esetek többségében nem is igazán hatékony módja a dolgok elintézésének. Igazából a legtöbb helyzetben teljesen szükségtelen a megjelenítése.

Kevesen vannak, akik egy ilyenre azt mondanák, hogy "Jajj, tényleg nem is ezt akartam, kösz, hogy szóltál!" Ha belegondoltok, hány olyan embert ismertek, aki tényleg elgondolkodik egy megerősítés elolvasása után és nem kattintja le az igent reflexből? Én nagyon keveset, legfeljebb a szüleimet, akik mindent elolvasnak, azonban akármennyi időt szánnak is a szöveg értelmezésére, valójában nem lesznek okosabbak tőle. Ugyanolyan tanácstalanul nyomják meg találomra valamelyik gombot, mintha semmi se lenne írva az ablakra.

Ezópusz

Manapság túl sok helyen találkozhatunk megerősítésekkel és nem igazán bizonyulnak hasznosnak a legtöbb esetben. Pontosan azt a hatást érik el vele, mint amikor Ezópusz meséjében a pásztorfiú farkast emleget tréfából, viszont mikor tényleg felbukkan, már senki sem hisz neki.

Ha arra gondolunk, hogy a mindennapi életben hány dolog kér megerősítést tőlünk, mielőtt megtesszük, megérthetjük, hogy igazából kevés szükség van rá. Az autó sem kérdezi meg, hogy tényleg el akarod-e indítani és a bevásárláskor sem kérdez rá fizetéskor a pénztárnál dolgozó alkalmazott, hogy biztosan meg akarod-e venni az elé tett árukat. A programozók folyamatosan megerősítést kérnek, vagy azért, hogy bizonyíthassák főnökeiknek, hogy a kód csak olyat tesz, amit a felhasználó kért, ezáltal bármit megírhatnak a szoftverekbe ami eszükbe jut, vagy azért mert azt hiszik, hogy a felhasználók nincsenek tisztában tetteik következményeivel.

Az utóbbi megállapítás igaz is lehet, tekintve az elérhető felhasználói felületek gyakorta gyatra minőségét, de a megerősítés akkor sem jelent üdvözítő megoldást. Ha azt egy felhasználó meglátja, csak még jobban összezavarodik. Egyszerűen megadja azt a lehetőséget a programozóknak, hogy ne kelljen értelmesen átgondolniuk az elkészített felhasználói felületet, illetve a benne található funkciók működését, elrendezését -- helyette ennek átlátásának feladata az összezavart felhasználóra hárul.

Undo

Mi lenne a megoldás? A leghasznosabb az lenne, ha minden tevékenyeget vissza lehetne vonni, amit a felhasználó tett. Elvégre még a legképzettebb, legtapasztaltabb felhasználók is tévedhetnek néha, nekik sem jönne rosszul, ha a döntést követő percekben még lenne lehetőség az eseményt meg nem történtté tenni.

Nagyon kevés olyan alkalmazást vagy programrészt láthatunk, ami képes a visszavonás (undo) és az újra elvégzés (redo) műveleteire. Elsőként talán a szövegszerkesztő és képszerkesztő alkalmazások ugorhatnak be ennek kapcsán, de igazán a szerkesztésre alkalmas programokon túl kevés példát tudnék felsorolni. Pedig mennyivel kényelmesebb úgy kitapasztalni egy alkalmazást, hogy mindent büntetlenül megnyomhatunk benne, és ha az eredmény eltér a várttól, akkor egyszerűen visszacsináljuk. Sokkal intuitívabb módja lenne ez a szoftverek megismerésének, nem lenne szükség annyi dokumentációra, sem annyi óvatosságra az alkalmazásokkal szemben.

Tény, hogy a visszavonás képességének leprogramozása gyakran keservesen nehéz feladat, a kezdő programozóknak nem sok esélyük van arra, hogy ezt hatékonyan és bővíthetően képesek legyenek megírni. Azonban amikor tőlünk, mint egy leendő szoftver felhasználójától megkérdezik, hogy szeretnénk-e egy bizonyos lépés elé megerősítést, mondjuk nyugodtan azt: inkább lehessen visszavonni utána, ha nem vagyunk elégedettek az eredménnyel. Ha van megfelelő programozójuk megcsinálják és az eredmény nagy valószínűséggel messze kényelmesebb és egyben használhatóbb is lesz.

Lim-lomtár

Vannak olyan tevékenységek, amiket nem lehet visszavonhatóvá tenni: ilyen például egy fájl törlése, vagy ha továbbmegyünk és feltételezzük a lomtár használatát, akkor a lomtár ürítése. Ezen a ponton mondjuk gyökeresen eltér a véleményem a David S. Platt által írtaktól. Szerinte a fájlok lomtárba helyezése előtt nem is kéne megkérdezni a felhasználót arról, hogy biztos-e ebben, hiszen ha nem akarta, később visszacsinálhatja. Azonban szerintem ez a hozzáállás amiatt veszélyes, mert a lomtár mérete limitált és így igenis előfordulhat, hogy a lomtárba helyezés helyett valamelyik állományunk véglegesen törlődik. A lomtár nem egy teljes körű, mindent visszacsináló megoldás és ezt igenis észben kell tartani.

Arra viszont ismét oda kellene figyelniük a fejlesztőknek, hogy két egymástól gyökeresen eltérő funkciót, különösen, ha az egyik visszavonhatatlan, nem szabadna egymás közelébe tenni, kockáztatva ezzel azt, hogy a felhasználó véletlenül mellékattint és pont az ellenkezője történik annak amit szeretne. A mellékattintások kezelésére tökéletes lenne a megerősítés, csak az alkalmazás nem tudja eldönteni, mikor történt mellékattintás, és mikor szándékos cselekedet, ezért vagy minden alkalommal rákérdez, vagy sosem. A megoldás itt is a megfelelő felhasználói felület megtervezése lenne.

Véleménye van?

Mik azok a sötét mintázatok, vagy ahogy az angol nevezi őket, dark patternek? Miért találkozunk egyre többször velük és mit tehetünk, hogy ne kerüljünk a csapdájukba?

a címlapról