Perché una buona progettazione dell'interfaccia utente è così difficile per alcuni sviluppatori? [chiuso]


206

Alcuni di noi si divertono con gli aspetti più morbidi del design dell'interfaccia utente ( me stesso in particolare ). I "codificatori back-end" sono destinati a progettare solo logiche e livelli dati? C'è qualcosa che possiamo fare per riqualificare il nostro cervello per essere più efficaci nel progettare livelli di presentazione piacevoli e utili?

I colleghi mi hanno consigliato alcuni libri tra cui The Design of Sites , Non farmi pensare e Perché il software fa schifo , ma mi chiedo cosa hanno fatto gli altri per rimuovere le loro carenze in questo settore?


1
Per quanto mi riguarda (soffro dello stesso problema), conosco una buona interfaccia utente quando ne uso una. E sicuramente conosco un'interfaccia utente che mi dà fastidio. Ma ho un momento molto difficile cercando di progettarne uno da solo. È come l'occhio critico che ho quando utilizzo l'interfaccia utente di qualcun altro non funziona sui miei progetti.
JMD,

1
Odio il termine "programmatore back-end" e stavo cercando di tenerlo fuori dal titolo
Chris Ballance,

20
Graphic design! = UI design. Il primo riguarda le cose belle. Quest'ultimo riguarda il rendere le cose utili e utilizzabili.
Esko Luontola,

2
+1 @Esko. Spesso "carino" significa totalmente utilizzabile dalle Nazioni Unite. Ma i due possono coesistere se gestiti con cura e pensiero.
Dhaust

12
Perché lo sviluppo di software è così difficile per i progettisti dell'interfaccia utente?
Greg Hurlman,

Risposte:


360

Lasciami dirlo direttamente:

Migliorare questo non inizia con le linee guida. Inizia con il ripensare il modo in cui pensi al software.

La maggior parte degli sviluppatori hardcore ha praticamente zero empatia con gli utenti del loro software. Non hanno idea come gli utenti pensano, come gli utenti costruiscono modelli di software che usano e come usano un computer in generale.

È un problema tipico quando un esperto si scontra con un laico: come mai una persona normale potrebbe essere così stupida non capire cosa ha capito l'esperto 10 anni fa?

Uno dei primi fatti a riconoscere che è incredibilmente difficile da comprendere per quasi tutti gli sviluppatori esperti è questo:

Le persone normali hanno un concetto di software molto diverso da quello che hai tu. Non hanno la minima idea della programmazione. Nessuna. Zero. E a loro non importa nemmeno. Non pensano nemmeno che debbano preoccuparsene. Se li costringi a, elimineranno il tuo programma.

Questo è incredibilmente duro per uno sviluppatore. È orgoglioso del software che produce. Ama ogni singola caratteristica. Può dirti esattamente come funziona il codice. Forse ha persino inventato un incredibile algoritmo intelligente che lo ha reso il 50% più veloce di prima.

E all'utente non importa.

Che idiota.

Molti sviluppatori non possono sopportare di lavorare con utenti normali. Si deprimono per la loro inesistente conoscenza della tecnologia. Ed è per questo che la maggior parte degli sviluppatori evita e pensa che gli utenti debbano essere idioti.

Non sono.

Se uno sviluppatore di software acquista un'auto, si aspetta che funzioni senza problemi. Di solito non gli interessa la pressione dei pneumatici, la messa a punto meccanica che era importante per farlo funzionare in quel modo. Eccolo non è l'esperto. E se compra un'auto che non ha la messa a punto, la restituisce e compra quella che fa quello che vuole.

A molti sviluppatori di software piacciono i film. Film ben fatti che accendono la loro immaginazione. Ma non sono esperti nella produzione di film, nella produzione di effetti visivi o nella scrittura di buone sceneggiature cinematografiche. La maggior parte dei nerd è molto, molto, molto cattiva nella recitazione perché si tratta di mostrare emozioni complesse e poco di analisi. Se uno sviluppatore guarda un brutto film, si accorge solo che è brutto nel suo insieme. I nerd hanno persino creato IMDB per raccogliere informazioni su film buoni e cattivi in ​​modo che sappiano quali guardare e quali evitare. Ma non sono esperti nella creazione di film. Se un film è cattivo, non andranno al cinema (o non lo scaricheranno da BitTorrent;)

Quindi si riduce a: Evitare gli utenti normali come esperti è ignoranza. Perché in quelle aree (e ce ne sono così tante) in cui non sono esperti, si aspettano che gli esperti di altre aree abbiano già pensato alle persone normali che usano i loro prodotti o servizi.

Cosa puoi fare per rimediare? Più hardcore sei un programmatore, meno sarai aperto al normale pensiero dell'utente. Sarà alieno e privo di conoscenza per te. Penserai: non riesco a immaginare come le persone possano mai usare un computer con questa mancanza di conoscenza. Ma possono. Per ogni elemento dell'interfaccia utente, pensa: è necessario? Si adatta al concetto che un utente ha del mio strumento? Come posso farlo capire? Si prega di leggere sull'usabilità per questo, ci sono molti buoni libri. È anche un'intera area della scienza.

Ah e prima di dirlo, sì, sono un fan di Apple;)


8
Ottimo commento! Hai inchiodato uno degli ostacoli fondamentali nella progettazione del software. Un fatto difficile da inghiottire per sviluppatori induriti (come me), ma la verità è spesso.

12
+1. Consiglio di leggere "I detenuti gestiscono l'asilo", che fornisce dettagli dettagliati sulle differenze nelle mentalità degli utenti / degli sviluppatori e su alcuni rimedi.
Richard Levasseur,

9
+1 Ad essere onesti, qualsiasi sviluppatore che non si preoccupa per l'utente è un cattivo sviluppatore!
Gary Willoughby,

7
Punti molto validi e penso che questa mentalità sia anche parte del motivo per cui una serie di progetti gestiti da sviluppatori (ad esempio open source o what-have-you) si sono trovati difficili da usare - in generale, la maggior parte degli sviluppatori scrivere per se stessi come l'utente, non per l'utente "reale".
CloudyMusic,

25
+1 Questo è il motivo per cui Linux non è ancora pronto per il desktop dell'utente medio.
Bryan Anderson,

215

Il design dell'interfaccia utente è difficile

Alla domanda:

perché la progettazione dell'interfaccia utente è così difficile per la maggior parte degli sviluppatori?

Prova a porre la domanda inversa:

perché la programmazione è così difficile per la maggior parte dei progettisti dell'interfaccia utente ?

La codifica di un'interfaccia utente e la progettazione di un'interfaccia utente richiedono competenze diverse e una mentalità diversa. Il design dell'interfaccia utente è difficile per la maggior parte degli sviluppatori, non per alcuni sviluppatori, così come la scrittura del codice è difficile per la maggior parte dei designer, non per alcuni designer.

La codifica è difficile. Anche il design è difficile. Poche persone fanno entrambe bene. I bravi designer dell'interfaccia utente raramente scrivono codice. Potrebbero anche non sapere come, ma sono ancora buoni designer. Allora perché i bravi sviluppatori si sentono responsabili della progettazione dell'interfaccia utente?

Conoscere di più sulla progettazione dell'interfaccia utente ti renderà uno sviluppatore migliore, ma ciò non significa che dovresti essere responsabile della progettazione dell'interfaccia utente. È vero il contrario per i progettisti: sapere come scrivere codice renderà i progettisti migliori, ma ciò non significa che dovrebbero essere responsabili della codifica dell'interfaccia utente.

Come migliorare la progettazione dell'interfaccia utente

Per gli sviluppatori che desiderano migliorare la progettazione dell'interfaccia utente ho 3 consigli di base:

  1. Riconosci il design come un'abilità separata . La codifica e il design sono separati ma correlati. Il design dell'interfaccia utente non è un sottoinsieme della codifica. Richiede una mentalità, una base di conoscenza e un gruppo di abilità diversi. Ci sono persone là fuori che si concentrano sulla progettazione dell'interfaccia utente.
  2. Informazioni sul design . almeno un po '. Cerca di apprendere alcuni concetti e tecniche di progettazione dalla lunga lista di seguito. Se sei più ambizioso, leggi alcuni libri, partecipa a una conferenza, prendi una lezione, prendi una laurea. Esistono molti modi per conoscere il design. Il libro di Joel Spolky sul design dell'interfaccia utente è un buon primer per gli sviluppatori, ma c'è molto di più ed è qui che i designer entrano in scena.
  3. Lavora con i designer . Buoni designer, se puoi. Le persone che svolgono questo lavoro passano per vari titoli. Oggi, i titoli più comuni sono User Experience Designer (UXD), Information Architect (IA), Interaction Designer (ID) e Usability Engineer. Pensano al design tanto quanto al codice. Puoi imparare molto da loro e loro da te. Lavora con loro come puoi. Trova persone con queste competenze nella tua azienda. Forse devi assumere qualcuno. Oppure vai ad alcune conferenze, partecipa a webinar e trascorri del tempo nel mondo UXD / IA / ID.

Ecco alcune cose specifiche che puoi imparare. Non cercare di imparare tutto . Se sapessi tutto ciò che segue potresti definirti un designer dell'interazione o un architetto dell'informazione. Inizia con cose vicino alla cima dell'elenco . Concentrarsi su concetti e competenze specifici. Quindi spostare verso il basso e diramarsi. Se ti piace davvero questa roba, considerala come un percorso di carriera. Molti sviluppatori passano alla gestione, ma la progettazione di UX è un'altra opzione.

Perché la progettazione dell'interfaccia utente è difficile

Una buona progettazione dell'interfaccia utente è difficile perché comporta 2 competenze molto diverse:

  • Una profonda conoscenza della macchina . Le persone in questo gruppo si preoccupano prima del codice, poi delle persone. Hanno una profonda conoscenza tecnologica e abilità. Li chiamiamo sviluppatori, programmatori, ingegneri e così via.
  • Una profonda comprensione delle persone e del design : le persone di questo gruppo si preoccupano prima delle persone, poi del codice. Hanno una profonda conoscenza di come le persone interagiscono con le informazioni, i computer e il mondo che li circonda. Li chiamiamo designer dell'esperienza utente, architetti dell'informazione, designer dell'interazione, ingegneri dell'usabilità e così via.

Questa è la differenza essenziale tra questi 2 gruppi — tra sviluppatori e designer:

  • Gli sviluppatori lo fanno funzionare . Implementano le funzionalità sul tuo TiVo, sul tuo iPhone, sul tuo sito Web preferito, ecc. Si assicurano che faccia effettivamente ciò che dovrebbe fare. La loro massima priorità è farlo funzionare.
  • I progettisti rendere le persone amano lo . Capiscono come interagire con esso, come dovrebbe apparire e come dovrebbe sentirsi. Progettano l'esperienza di utilizzo dell'applicazione, del sito Web, del dispositivo. La loro massima priorità è farti innamorare di ciò che gli sviluppatori fanno. Questo è ciò che si intende per esperienza dell'utente e non è la stessa esperienza del marchio.

Inoltre, la programmazione e la progettazione richiedono mentalità diverse , non solo conoscenze e abilità diverse. Una buona progettazione dell'interfaccia utente richiede entrambe le mentalità, entrambe le basi di conoscenza, entrambi i gruppi di abilità. E ci vogliono anni per padroneggiare uno dei due.

Gli sviluppatori dovrebbero aspettarsi di trovare difficile la progettazione dell'interfaccia utente, proprio come i progettisti dell'interfaccia utente dovrebbero aspettarsi di trovare difficile scrivere codice.


8
Questa è la migliore risposta qui. Ottimi collegamenti BTW!
Bernard Igiri,

Eccellente panoramica del design dell'interfaccia utente! Ho anche osservato la tua idea di diverse mentalità. Faccio sia progettazione che programmazione dell'interfaccia utente, ed è meglio che mi concentri solo su uno di questi alla volta. [...]
Esko Luontola,

Se prendi decisioni sulla progettazione dell'interfaccia utente durante la programmazione, pensi che sia il modo più semplice di implementare, il che spesso porta a una cattiva progettazione dell'interfaccia utente. E se pensi all'implementazione mentre esegui la progettazione dell'interfaccia utente, potresti scegliere modelli di progettazione dell'interfaccia utente che sono più facili da implementare, ma non altrettanto validi per l'utente.
Esko Luontola,

2
Perché questo non è contrassegnato come la migliore risposta? Sembra molto meglio della risposta di Thorsten79.
AbdullahC

1
Vorrei poter aggiungere questa risposta direttamente ai preferiti. :)
Dan J,

70

Ciò che mi aiuta davvero a migliorare il mio design è quello di afferrare un collega sviluppatore, uno dei ragazzi del QA, il PM o chiunque si avvicini e faccia loro provare un particolare widget o schermo.

È incredibile quello che realizzerai quando guarderai qualcun altro usare il tuo software per la prima volta


Ho provato molto questo approccio e l'ho trovato molto efficace. Occasionalmente ho un amico non tecnico che lo usa per vedere cosa provoca loro dolore quando provano ad usarlo.
Chris Ballance,

Questo è lo stesso approccio che ho adottato.
Ed S.

Questo approccio potrebbe essere chiamato per caso "test di usabilità"? ;) Sì, è l'approccio che dovresti adottare prima, durante e dopo.
Ates Goral,

Questa sarebbe quasi la mia risposta esatta. Il controllo qualità e il supporto tecnico sono fantastici. Gli sviluppatori fanno schifo a UI Design, ripetono e fanno testare altri spesso.
Bill K,

7
Credo che sia chiamato il "test di usabilità del corridoio"
Kevin,

32

In definitiva, si tratta davvero di empatia: puoi metterti nei panni del tuo utente?

Una cosa che aiuta, ovviamente, è "mangiare il tuo cibo per cani": usare le tue applicazioni come un vero utente e vedere ciò che è fastidioso.

Un'altra buona idea è quella di trovare un modo per guardare un utente reale utilizzando l'applicazione, che può essere complicato come un laboratorio di usabilità con specchi unidirezionali, acquisizione video dello schermo, videocamere sugli utenti, ecc., Oppure può essere semplice come prototipazione cartacea utilizzando la persona successiva che capita di camminare per la sala.

Se tutto il resto fallisce, ricorda che è quasi sempre meglio che l'interfaccia utente sia troppo semplice che troppo complicata. È molto facile dire "oh, so come risolverlo, aggiungerò una casella in modo che l'utente possa decidere quale modalità preferisce". Presto l'interfaccia utente sarà troppo complicata. Scegli una modalità predefinita e imposta le preferenze come un'opzione di configurazione avanzata. O lascialo fuori.

Se leggi molto sul design, puoi facilmente appenderti su ombre cadute, angoli arrotondati e così via. Non è roba importante. Semplicità e rilevabilità sono le cose importanti.


ben messo. Molto spesso, i tentativi di aggiungere flessibilità si traducono semplicemente in disordine. Più semplice == migliore.
SquareCog,

Puoi metterti nei panni del tuo utente se si trovano dall'altra parte del pianeta, in una cultura che non hai mai sperimentato prima? L'internazionalizzazione è una considerazione importante nella progettazione dell'interfaccia utente solida. Non supponiamo che tutti vivano negli Stati Uniti.

Assolutamente; il mio attuale progetto è infatti rivolto a utenti di tutto il pianeta (praticamente in tutti i paesi diversi dagli Stati Uniti, dove sono). Rende l'empatia più difficile, non c'è dubbio - e tanto più importante tentare seriamente e vigorosamente.
Jacob Mattison,

Inoltre, aggiungerei che la stragrande maggioranza dei problemi di usabilità è sorprendentemente ovvia una volta che un utente reale lo guarda. Sì, ce ne saranno di sottili che sono specifici della cultura, ma puoi fare enormi miglioramenti usando il prossimo ragazzo che cammina per la sala.
Jacob Mattison,

+1, solo perché non posso +100 me stesso! Aggiungerò che acquisire esperienza utilizzando applicazioni molto diverse come erano state progettate ti aiuta a crescere come sviluppatore dell'interfaccia utente. Solo l'utilizzo di strumenti come Visual Studio o altri strumenti di sviluppo ostacolerà questa capacità ...
BQ.

26

Contrariamente al mito popolare non ci sono letteralmente aspetti soft nella progettazione dell'interfaccia utente, almeno non più del necessario per progettare un buon back-end.

Considerare quanto segue; un buon design di back-end si basa su principi ed elementi abbastanza solidi che qualsiasi buon sviluppatore conosce:

  • basso accoppiamento

  • alta coesione

  • motivi architettonici

  • migliori pratiche del settore

  • eccetera

Il buon design del back-end di solito nasce attraverso una serie di interazioni, in cui sulla base del feedback misurabile ottenuto durante i test o dell'uso effettivo il progetto iniziale viene gradualmente migliorato. A volte è necessario prototipare aspetti minori del back-end e provarli separatamente, ecc.

Una buona progettazione dell'interfaccia utente si basa sui solidi principi di:

  • visibilità

  • affordance

  • risposta

  • tolleranza

  • semplicità

  • consistenza

  • struttura

L'interfaccia utente nasce anche attraverso test e prove, attraverso iterazioni ma non con compilatore + seme di test automatizzato, ma persone. Analogamente al back-end ci sono best practice del settore, tecniche di misurazione e valutazione, modi di pensare alla UI e fissare obiettivi in ​​termini di modello utente, immagine di sistema, modello di progettazione, modello strutturale, modello funzionale ecc.

Le competenze necessarie per la progettazione dell'interfaccia utente sono piuttosto diverse dalla progettazione del back-end e quindi non aspettatevi di essere in grado di fare una buona interfaccia utente senza prima apprendere. Tuttavia, entrambe queste attività hanno in comune il processo di progettazione. Credo che chiunque sia in grado di progettare un buon software è in grado di progettare una buona interfaccia utente purché passi un po 'di tempo a imparare come.

Consiglio di seguire un corso sull'interazione uomo-computer, controllare il sito MIT e Yale, ad esempio per i materiali online:

Modello strutturale e funzionale nella comprensione e nell'uso

L'eccellente post precedente di Thorsten79 evidenzia l'argomento degli esperti di sviluppo software rispetto agli utenti e le differenze nella loro comprensione del software. Gli esperti di apprendimento umano distinguono tra modelli mentali funzionali e strutturali. Trovare la strada per la casa del tuo amico può essere un eccellente esempio della differenza tra i due:

  • Il primo approccio comprende una serie di istruzioni dettagliate: prendere la prima uscita dell'autostrada, quindi dopo 100 metri svoltare a sinistra ecc. Questo è un esempio di modello funzionale: elenco di passaggi concreti necessari per raggiungere un determinato obiettivo. I modelli funzionali sono facili da usare, non richiedono molto pensiero solo un'esecuzione diretta. Ovviamente c'è una penalità per la semplicità: potrebbe non essere il percorso più efficiente e qualsiasi situazione eccezionale (es. Una deviazione del traffico) può facilmente portare a un fallimento completo.

  • Un modo diverso di affrontare il compito è costruire un modello mentale strutturale. Nel nostro esempio sarebbe una mappa che trasmette molte informazioni sulla struttura interna dell '"oggetto task". Dalla comprensione della mappa e delle posizioni relative della casa nostra e dell'amico possiamo dedurre il modello funzionale (il percorso). Ovviamente è necessario uno sforzo maggiore, ma un modo molto più affidabile di completare l'attività nonostante le possibili deviazioni.

La scelta tra convogliare il modello funzionale o strutturale attraverso l'interfaccia utente (ad esempio, procedura guidata vs modalità avanzata) non è così semplice come potrebbe sembrare dal post di Thorsten79. Gli utenti avanzati e frequenti potrebbero preferire il modello strutturale, mentre gli utenti occasionali o meno espirati - funzionali.

Le mappe di Google sono un ottimo esempio: includono sia modelli funzionali che strutturali, così come molti navigatori satellitari.

Un'altra dimensione del problema è che il modello strutturale presentato tramite l'interfaccia utente non deve essere associato alla struttura del software, ma piuttosto alla mappa dell'attività dell'utente a portata di mano o dell'oggetto dell'attività coinvolto.

La difficoltà qui è che molti sviluppatori avranno un buon modello strutturale dei loro software interni, ma solo un modello funzionale dell'attività dell'utente a cui il software mira ad aiutare. Per costruire una buona interfaccia utente è necessario comprendere la struttura dell'oggetto task / task e mappare l'interfaccia utente a quella struttura.

Comunque, non posso ancora raccomandare di seguire un corso HCI formale abbastanza forte. Ci sono molte cose coinvolte come l' euristica , i principi derivati ​​dalla psicologia della Gestalt , il modo in cui gli umani imparano ecc.


+1 per il link
MW

Hai ragione, gli utenti possono diventare loro stessi esperti di un software e a loro piace quando qualcuno ha escogitato un modo per loro attraverso la "bella" UI per essere più veloce. Ecco dove sono tutte le scorciatoie da tastiera, per esempio. l'usabilità è un argomento molto interessante!
Thorsten79,

25

Ti suggerisco di iniziare facendo tutta la tua UI nello stesso modo in cui stai facendo ora, senza concentrarti su usabilità e cose.

testo alternativo http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

Ora pensa a questo:

Un designer sa di aver raggiunto la perfezione non quando non c'è più niente da aggiungere, ma quando non c'è più niente da togliere. - Saint-Exupéry

E applicalo nel tuo design.


Ecco perché preferisco di gran lunga Office 2007!
Richard Ev,

Se qualcuno si sta chiedendo da quale fossa ho scavato quella citazione, l'ho sentito dalla civiltà 4. Grande gioco. Non ho idea di chi sia l'autore, ma sicuramente potrebbe scrivere un'interfaccia utente migliore dei progettisti.
Hoffmann,

C'è un'altra buona citazione simile di A. Einstein: "Rendi tutto il più semplice possibile, ma non più semplice". Ho trovato queste idee applicabili anche al design dell'interfaccia utente: www.presentationzen.com. ... e +1
Pyry Jahkola,

Saint-Exupery era molto più di un progettista di aerei e piloti; +1 per averlo citato. Vale la pena leggere il suo libro per bambini ("Il piccolo principe"), ma sto diventando fuori tema.
David Thornley,

5
Avresti dovuto selezionare la vista di stampa ... non puoi vedere i righelli ora.
Pomeriggio

16

Molti sviluppatori pensano che, poiché possono scrivere codice, possono fare tutto. Progettare un'interfaccia è un'abilità completamente diversa, e non mi è stato insegnato affatto quando ho frequentato il college. Non è solo qualcosa che viene naturale.

Un altro buon libro è The Design of Everyday Things di Donald Norman.


Grazie, "The Design of Everyday Thinks" è sulla mia lista dei desideri di Amazon
Chris Ballance,

+1. "Il design delle cose di tutti i giorni" è anche nella lista di Horror Coding di lettura consigliata (buon elenco di libri per gli sviluppatori). Di recente ho finito di leggerlo e lo consiglio vivamente.
Mun,

Al momento sto leggendo "Il design delle cose di tutti i giorni" - è certamente molto buono, ma come menzionato nei commenti su un'altra risposta, "I detenuti gestiscono l'asilo" di Alan Cooper affronta esattamente questo argomento. Come sviluppatore, il libro stava "cambiando la vita"!
Stuart Helwig,

La mia peeve: molti sviluppatori (e designer, e altri) pensano che, poiché posso programmare, non posso progettare l'interfaccia utente. Non conosco molto bene Photoshop, ma penso di avere un buon occhio su ciò che funziona e cosa no. (The Design of Everyday things è stata la mia prima bibbia dell'interfaccia utente.)
Barry Brown,

14

C'è un'enorme differenza tra design ed estetica e sono spesso confusi.

Una bella interfaccia utente richiede abilità artistiche o almeno estetiche che molti, incluso me stesso, sono incapaci di produrre. Sfortunatamente, non è abbastanza e non rende utilizzabile l'interfaccia utente, come possiamo vedere in molte API pesanti basate su flash.

La produzione di UI utilizzabili richiede una comprensione di come gli umani interagiscono con i computer, alcuni problemi in psicologia (ad esempio, la legge di Fitt, la legge di Hick) e altri argomenti. Pochissimi programmi CS si allenano per questo. Pochissimi sviluppatori che conosco sceglieranno un libro di test utente su un libro JUnit, ecc.

Molti di noi sono anche "programmatori core", tendendo a pensare alle interfacce utente come alla facciata piuttosto che come un fattore che potrebbe fare o spezzare il successo del nostro progetto.

Inoltre, la maggior parte dell'esperienza di sviluppo dell'interfaccia utente è estremamente frustrante. Possiamo usare i costruttori di GUI di giocattoli come il vecchio VB e avere a che fare con un brutto codice di colla, oppure possiamo usare API che ci frustrano all'infinito, come provare a sistemare i layout in Swing.


"Possiamo usare i costruttori di GUI di giocattoli come il vecchio VB e avere a che fare con un brutto codice di colla, oppure possiamo usare API che ci frustrano all'infinito, come cercare di risolvere i layout in Swing." Hai davvero ridotto le mie esperienze con la costruzione della GUI. Se posso aggiungere: "o pazza combinazione DOM e CSS"
Hoffmann,

Sono sicuro che tutti hanno familiarità con Totally Gridbag? " madbean.com/anim/totallygridbag "
Uri,

12

Vai su Slashdot e leggi i commenti su qualsiasi articolo relativo ad Apple. Troverai un gran numero di persone che parlano di come i prodotti Apple non sono niente di speciale e attribuiscono il successo di iPod e iPhone a persone che cercano di essere alla moda o alla moda. In genere esamineranno gli elenchi delle funzionalità e segnaleranno che non hanno fatto nulla prima che i lettori MP3 o gli smartphone non facessero.

Poi ci sono persone a cui piacciono l'iPod e l'iPhone perché fanno ciò che gli utenti vogliono semplicemente e facilmente, senza fare riferimento ai manuali. Le interfacce sono intuitive quanto le interfacce diventano, memorabili e rilevabili. Non mi piace l'interfaccia utente su MacOSX come lo ero nelle versioni precedenti, penso che abbiano rinunciato a qualche utilità a favore dello sfarzo, ma l'iPod e l'iPhone sono esempi di design superbo.

Se sei nel primo campo, non pensi al modo in cui la persona media fa, e quindi probabilmente creerai interfacce utente sbagliate perché non puoi distinguerle da quelle buone. Questo non significa che sei senza speranza, ma piuttosto che devi imparare esplicitamente i buoni principi di progettazione dell'interfaccia e come riconoscere una buona interfaccia utente (tanto quanto qualcuno con Asperger potrebbe aver bisogno di apprendere esplicitamente le abilità sociali). Ovviamente, solo avere un'idea di una buona interfaccia utente non significa che puoi crearne una; il mio apprezzamento per la letteratura, ad esempio, non sembra estendersi alla capacità (attualmente) di scrivere storie pubblicabili.

Quindi, prova a sviluppare un senso per una buona progettazione dell'interfaccia utente. Ciò si estende oltre al semplice software. "The Design of Everyday Things" di Don Norman è un classico, e ci sono altri libri là fuori. Ottieni esempi di progetti di interfaccia utente di successo e gioca con loro abbastanza per avere un'idea della differenza. Riconosci che potresti dover imparare un nuovo modo di pensare sulle cose e divertirti.


+1 per un suggerimento The Design of Everyday Things
Oskar Duveborn,

+1 per un'ottima risposta. Penso che stia dicendo che stai ancora in bilico a 1 voto positivo (ora 2); quelli che si adattano alla tua descrizione probabilmente non penseranno di

Questa è una dichiarazione generale. Non tutti i commenti anti-Apple su Slashdot sono una critica alla sua interfaccia utente o una verifica della mancanza di comprensione dell'interfaccia utente. Apple ha una buona interfaccia utente e così molti dei suoi concorrenti.
Bernard Igiri,

Un altro pensiero: una mela non è per tutti; per esempio, non fornisce il fantastico potere fenomenale di una CLI.
J. Polfer,

2
Personalmente trovo che i prodotti Apple siano estremamente poco intuitivi da usare. Immagino di non essere l'unica persona frustrata quando il loro primo iPod avrebbe iniziato a mescolare le canzoni ogni volta che ho iniziato a fare jogging, o perché lo schermo dell'iPhone si inverte continuamente. Penso che le cose dovrebbero accadere solo da azioni dell'utente dirette e inequivocabili.
Lotus Notes,

10

La principale regola empirica a cui tengo, non è mai provare a fare entrambe le cose contemporaneamente. Se sto lavorando sul codice back-end, finirò di farlo, mi prenderò una pausa e tornerò con il mio cappello dell'interfaccia utente. Se provi a lavorarci mentre stai facendo il codice, ti avvicinerai con la mentalità sbagliata e, di conseguenza, finirai con alcune interfacce orribili.

Penso che sia sicuramente possibile essere sia un buon sviluppatore di back-end che un buon progettista dell'interfaccia utente, devi solo lavorarci, fare un po 'di lettura e ricerca sull'argomento (tutto, dal numero 7 di Miller agli archivi di Nielsen), e fare sicuro di capire perché la progettazione dell'interfaccia utente è della massima importanza.

Non penso che sia un caso il bisogno di essere creativi, ma piuttosto, come lo sviluppo del back-end, è una cosa molto metodica, molto strutturata che deve essere appresa. Sono le persone che diventano "creative" con le UI che creano alcune delle più grandi mostruosità dell'usabilità ... Voglio dire, dai un'occhiata ai siti Web Flash al 100%, per cominciare ...

Modifica : il libro di Krug è davvero buono ... leggilo, soprattutto se stai progettando per il Web.


e qual è il titolo di questo libro di
Krug

@refhat Era ben visibile nel primo post, quindi non l'ho collegato al momento, ma è questo: librarything.com/work/12322
James B

8

Ci sono molte ragioni per questo.

(1) Lo sviluppatore non riesce a vedere le cose dal punto di vista dell'utente. Questo è il solito sospetto: mancanza di empatia. Ma di solito non è vero dal momento che gli sviluppatori non sono così alieni come la gente li fa sembrare.

(2) Un'altra ragione più comune è che lo sviluppatore essendo così vicino alle proprie cose, essendo rimasto con le sue cose per così tanto tempo, non riesce a rendersi conto che le sue cose potrebbero non essere così familiari (un termine migliore che intuitivo) ad altre persone .

(3) Ancora un altro motivo è che lo sviluppatore manca di tecniche.

I MIEI GRANDI RECLAMI: leggi qualsiasi UI, progettazione dell'intersezione umana, libro di prototipazione. es. Progettare l'ovvio: un approccio di senso comune alla progettazione di applicazioni Web, non farmi pensare: un approccio di senso comune all'usabilità del web, progettare il momento, qualunque cosa.

Come discutono i flussi di attività? Come descrivono i punti decisionali? Cioè, in ogni caso d'uso, ci sono almeno 3 percorsi: successo, fallimento / eccezione, alternativa.

Quindi, dal punto A, puoi andare su A.1, A.2, A.3. Dal punto A.1, è possibile arrivare ad A.1.1, A.1.2, A.1.3 e così via.

Come mostrano tale flusso di attività di drill-down? Non lo fanno. Ci passano sopra.

Poiché anche gli experst dell'interfaccia utente non hanno una tecnica, gli sviluppatori non hanno alcuna possibilità. Pensa che sia chiaro nella sua testa. Ma non è nemmeno chiaro sulla carta, e tanto meno chiaro nell'implementazione del software.

Per questo devo usare le mie tecniche fatte a mano.


7

Cerco di rimanere in contatto con siti Web e testi specifici per il design. Ho trovato anche l'eccellente libro di Robin Williams The Non-Designer's Design Book molto interessante in questi studi.

Credo che il design e l'usabilità siano una parte molto importante dell'ingegneria del software e dovremmo imparare di più e smettere di dare scuse che non dovremmo progettare.

Tutti possono essere designer di tanto in tanto, così come tutti possono essere programmatori.


Non sono d'accordo sul fatto che tutti possano essere programmatori. Alcuni aspetti del commercio non possono essere insegnati, puoi hackerarlo o non puoi (nessun gioco di parole inteso.)
Chris Ballance,

2
Voglio dire, una volta ogni tanto, ciò non significa che il ragazzo sarà un buon programmatore o lo sarà per sempre.
Edwin Jarvis,

7

Quando ci si avvicina alla progettazione dell'interfaccia utente, ecco alcune delle cose che tengo a mente in tutto (di gran lunga non un elenco completo):

  • Comunicare un modello . L'interfaccia utente è una narrazione che spiega all'utente un modello mentale. Questo modello può essere un oggetto business, un insieme di relazioni, che cosa hai. L'importanza visiva, il posizionamento spaziale e l'ordinamento del flusso di lavoro contribuiscono tutti a comunicare questo modello all'utente. Ad esempio, un certo tipo di elenco rispetto a un altro implica cose diverse, così come la relazione di ciò che è nell'elenco con il resto del modello. In generale, trovo che sia meglio assicurarsi che venga comunicato un solo modello alla volta. I programmatori provano spesso a comunicare più di un modello, o parti di più, nello stesso spazio dell'interfaccia utente.

  • Coerenza . Riutilizzare le metafore dell'interfaccia utente popolari aiuta molto. Anche la coerenza interna è molto importante.

  • Raggruppamento di compiti . Gli utenti non devono spostare il mouse completamente sullo schermo per verificare o completare una sequenza di comandi correlata. Le finestre di dialogo modali e i menu a comparsa possono essere particolarmente dannosi in quest'area.

  • Conoscere il tuo pubblico . Se i tuoi utenti faranno le stesse attività più e più volte, diventeranno rapidamente utenti esperti in tali compiti e saranno frustrati dai tentativi di abbassare la barriera d'ingresso iniziale. Se i tuoi utenti svolgono raramente molti tipi diversi di attività, è meglio assicurarsi che l'interfaccia utente rimanga sempre attiva.


Metti in luce un buon punto con Conoscere il tuo pubblico ... Mi piace anche "Non sei il tuo utente" (Platt) e "Conosci il tuo utente" (Platt) Questo non può essere enfatizzato abbastanza
Chris Ballance,


5

Trovo che lo strumento migliore nella progettazione dell'interfaccia utente sia guardare un utente che tenta per la prima volta di utilizzare il software. Prendi un sacco di note e fai loro alcune domande. Non indirizzarli mai o tentare di spiegare come funziona il software. Questo è il lavoro dell'interfaccia utente (e della documentazione ben scritta).

Adottiamo costantemente questo approccio in tutti i progetti. È sempre affascinante guardare un utente gestire il software in un modo mai considerato prima.

Perché la progettazione dell'interfaccia utente è così difficile? Bene, in genere perché lo sviluppatore e l'utente non si incontrano mai.


Assolutamente d'accordo, ma è abbastanza possibile per uno sviluppatore applicare solidi principi di base dell'interfaccia utente.
nailitdown,

I solidi principi dell'interfaccia utente di base non funzionano in tutti i paesi. Distribuiamo software in molte regioni e c'è una grande differenza nella progettazione dell'interfaccia utente per diverse parti del globo. Prova a inviare in Cina la tua app incentrata sugli Stati Uniti ...

5

duffymo mi ha appena ricordato il motivo: molti programmatori pensano che "* Design" == "Art".

Un buon design dell'interfaccia utente non è assolutamente artistico. Segue solidi principi, di cui è possibile eseguire il backup dei dati se si ha il tempo di fare le ricerche.

Penso che tutto ciò che i programmatori devono fare è prendere il tempo per apprendere i principi. Penso che sia nella nostra natura applicare le migliori pratiche ogni volta che possiamo, sia nel codice che nel layout. Tutto quello che dobbiamo fare è renderci consapevoli di quali sono le migliori pratiche per questo aspetto del nostro lavoro.


Penso che non sia possibile scartare completamente l'estetica. Forse una brutta UI può essere utilizzabile quanto una bella, ma non è tutto ciò che serve a una UI. Dopotutto, l'interfaccia utente è il volto del tuo programma, proprio come la copertina di un libro: è molto più probabile che le persone scelgano un programma con un'interfaccia utente carina.
Tikhon Jelvis,

Assolutamente, l'estetica è importante, ma questo è Graphic Design, non UI design.
nailitdown

5

Cosa ho fatto per migliorare la progettazione dell'interfaccia utente?
Presta attenzione ad esso!

È come ogni volta che vedi un grafico sulle notizie o un segnale di bus elettronico e ti chiedi 'Come hanno ottenuto quei dati? Lo hanno fatto con sql grezzo o stanno usando LINQ? ' (o inserisci qui la tua curiosità geek comune).

Devi iniziare a farlo ma con elementi visivi di ogni tipo.

Ma proprio come imparare una nuova lingua, se non ti ci metti davvero dentro, non la imparerai mai.

Tratto da un'altra risposta che ho scritto:

Impara a guardare, a guardare davvero, il mondo intorno a te. Perché mi piace quell'interfaccia utente ma odio questa? Perché è così difficile trovare i piatti di pasta in questo menu del ristorante? Wow, sapevo cosa significasse quel segno prima ancora di leggere le parole. Perché era quello? Come mai quella copertina del libro sembra così sbagliata? Impara a dedicare del tempo a pensare al perché reagisci in modo simile a elementi visivi di ogni tipo, quindi applica questo al tuo lavoro.


+1 per il consiglio zen sull'imparare a guardare e pensare. Pochissime persone si chiedono cosa incontra l'occhio.
PlagueHammer,

5

Comunque lo fai (e ci sono alcuni grandi punti sopra), mi ha davvero aiutato una volta che ho accettato che NON C'È TALE COSA COME INTUITIVO ....

Riesco a sentire le discussioni rimbombare all'orizzonte ... quindi lasciami spiegare un po '.

Intuitivo: usare ciò che si sente giusto o vero in base a un metodo o sentimento inconscio.

Se (come postulato da Carl Sagan) accetti di non poter comprendere cose che sono assolutamente diverse da qualsiasi cosa tu abbia mai incontrato, allora come potresti "sapere" come usare qualcosa se non hai mai usato qualcosa di simile a distanza?

Pensaci: i bambini provano ad aprire le porte non perché "sanno" come funziona una maniglia della porta, ma perché hanno visto qualcun altro farlo ... spesso ruotano la manopola nella direzione sbagliata o tirano troppo presto. Devono IMPARARE come funziona una maniglia della porta. Questa conoscenza viene quindi applicata in casi diversi ma simili: aprire una finestra, aprire un cassetto, aprire quasi tutto ciò che è grande con una grande maniglia simile a una manopola.

Anche le cose semplici che ci sembrano intuitive non saranno affatto intuitive per le persone di altre culture. Se qualcuno ha tenuto il braccio davanti a loro e ha rinunciato con la mano su e giù al polso mantenendo il braccio fermo ... ti stanno rinunciando? Probabilmente, a meno che tu non sia in Giappone. Lì, questo segnale manuale può significare "vieni qui". Quindi chi ha ragione? Entrambi, ovviamente, nel proprio contesto. Ma se viaggi in entrambi, devi conoscere entrambi ... Progettazione dell'interfaccia utente.

Cerco di trovare le cose che sono già "familiari" ai potenziali utenti del mio progetto e quindi di costruire l'interfaccia utente attorno a loro: progettazione incentrata sull'utente.

Dai un'occhiata all'iPhone di Apple. Anche se lo odi, devi rispettare la quantità di pensiero che è entrata in esso. È perfetto? Ovviamente no. Nel tempo l '"intuitività" percepita di un oggetto può crescere o addirittura svanire completamente.

Per esempio. Quasi tutti sanno che una striscia di nero con due file di fori nella parte superiore e inferiore sembra una striscia di pellicola ... o no?

Chiedi al tuo bambino di 9 o 10 anni medio quello che pensa che sia. Potresti essere sorpreso di quanti bambini in questo momento avranno difficoltà a identificarlo come una striscia di pellicola, anche se è qualcosa che è ancora usato per rappresentare Hollywood o qualsiasi cosa legata al film. La maggior parte dei film degli ultimi 20 anni sono stati girati digitalmente. E quando è stata l'ultima volta che qualcuno di noi ha realizzato un film di QUALSIASI tipo, foto o film?

Quindi, tutto ciò che si riduce a me è: conoscere il tuo pubblico e cercare costantemente di tenere il passo con le tendenze e i cambiamenti in cose "intuitive", indirizzare i tuoi utenti principali e cercare di non fare cose che puniscono gli inesperti a favore di gli utenti avanzati o rallentare gli utenti avanzati per tenere in mano i novizi.

Alla fine, ogni programma richiederà un certo addestramento da parte dell'utente per usarlo. Quanta formazione e per quale livello di utente fa parte delle decisioni che devono essere prese.

Alcune cose sono più o meno familiari in base al livello di esperienza passata dell'utente target come essere umano, utente di computer, studente o altro.

Ho appena sparato per la parte più grassa della curva a campana e provo ad avere quante più persone possibile ma realizzando che non piacerò mai a tutti ....


4

So che Microsoft è piuttosto in contrasto con le proprie linee guida, ma ho scoperto che leggere le loro linee guida per la progettazione di Windows mi ha davvero aiutato. Ne ho una copia sul mio sito web qui , basta scorrere un po 'verso il basso la Vista UX Guide. Mi ha aiutato con cose come colori, spaziatura, layout e altro ancora.


+1 leggere le linee guida di progettazione della piattaforma è sicuramente qualcosa che si dovrebbe fare (e scoprire quanto spesso Microsoft infrange le proprie regole;)
Oskar Duveborn,

E inoltre leggi quelli Apple (Human Interface Guidelines). Hanno più basi e principi in loro. Questo ti fa capire cosa dovrebbe essere universale e cosa è specifico della piattaforma
Stephan Eggermont,

E mentre ci sei, leggi anche GNOME HIG. Tra questi tre inizia a diventare visibile ciò che è solo una cosa specifica di una singola piattaforma e ciò che sembra essere una buona idea in generale.
mghie,

La maggior parte di questi sono basati su IBM, ma ora è piuttosto obsoleto. Ad esempio, i comandi standard taglia e incolla erano Maiusc + Canc e Maiusc + Ins (funzionano ancora, tra l'altro).
Simon Buchan,

4

Credo che il problema principale non abbia nulla a che fare con diversi talenti o competenze. Il problema principale è che, come sviluppatore, sai troppo su ciò che l'applicazione fa e su come lo fa, e progetti automaticamente la tua interfaccia utente dal punto di vista di qualcuno che ha quella conoscenza.

Considerando che un utente in genere inizia a non sapere assolutamente nulla sull'applicazione e non dovrebbe mai aver bisogno di imparare qualcosa sul suo funzionamento interno.

È molto difficile, quasi impossibile, non usare la conoscenza che hai - ed è per questo che un'interfaccia utente non dovrebbe essere progettata da qualcuno che sta sviluppando l'app dietro di essa.


4

"Progettare da entrambi i lati dello schermo" presenta una ragione molto semplice ma profonda per cui i programmatori trovano difficile la progettazione dell'interfaccia utente: i programmatori sono addestrati a pensare in termini di casi limite mentre i progettisti dell'interfaccia utente sono addestrati a pensare in termini di casi comuni o di utilizzo.

Quindi passare da un mondo all'altro è certamente difficile se il traning predefinito in entrambi è l'esatto opposto dell'altro.


3

Dire che i programmi fanno schifo alla progettazione dell'interfaccia utente significa perdere il punto. Il punto del problema è che la formazione formale che la maggior parte degli sviluppatori ottiene approfondisce la tecnologia. Interazione uomo - computer non è un argomento semplice. Non è qualcosa che posso "fondere" con te fornendo una semplice istruzione di una riga che ti fa capire "oh gli utenti useranno questa applicazione in modo più efficace se faccio x invece di y".

Questo perché c'è una parte della progettazione dell'interfaccia utente che ti manca. Il cervello umano Per capire come progettare un'interfaccia utente, devi capire come la mente umana interagisce con i macchinari. C'è un corso eccellente che ho seguito all'Università del Minnesota su questo argomento tenuto da un professore di psicologia. Si chiama "Interazione uomo - macchina". Questo descrive molte delle ragioni per cui la progettazione dell'interfaccia utente è così complicata.

Poiché la psicologia si basa sulle correlazioni e non sulla causalità, non si può mai dimostrare che un metodo di progettazione dell'interfaccia utente funzionerà sempre in una determinata situazione. Puoi correlare il fatto che molti utenti troveranno attraente o efficiente un particolare design dell'interfaccia utente, ma non puoi provare che sarà sempre generalizzato.

Inoltre, ci sono due parti nella progettazione dell'interfaccia utente che molte persone sembrano perdere. C'è il fascino estetico e il flusso di lavoro funzionale. Se cerchi un appello estetico al 100%, sicuramente le persone lo faranno ma il tuo prodotto. Dubito fortemente che l'estetica ridurrà mai la frustrazione dell'utente.

Ci sono molti buoni libri su questo argomento e sul corso da seguire (come le esperienze utente di sketch di Bill Buxton e Cognition in the Wild di Edwin Hutchins). Esistono programmi di laurea in Interazione uomo - computer in molte università.

La risposta complessiva a questa domanda sta nel modo in cui agli individui viene insegnata l'informatica. È tutto basato sulla matematica, basato sulla logica e non sulla base dell'esperienza dell'utente. Per ottenere ciò, hai bisogno di più di una laurea in informatica di 4 anni generica (a meno che la tua laurea in informatica di 4 anni non abbia avuto un minore in psicologia e sia stata enfatizzata in Interazione uomo - computer).


Non sono d'accordo: i computer sono basati su matematica e logica, per loro natura. Qualsiasi insegnamento di programmazione informatica deve essere basato su matematica e logica.
Paul Nathan,

1
Sì, hai ragione Paul. I computer sono matematica e logica. La progettazione dell'interfaccia utente implica tuttavia un elemento umano, che ha dimostrato nella storia di essere molto meno basato sulla matematica e sulla logica.
jwendl,

Non è tanto che siano meno basati sulla matematica e sulla logica, è che la matematica e la logica dietro di loro sono molto più complesse, soprattutto al di là di chiunque oggi. Detto questo, scommetto che i buoni progetti dell'interfaccia utente sono tutti, in una certa misura, basati sulla geometria.
Tikhon Jelvis,

2

Trasformiamo la tua domanda in giro -

I "designer ui" sono condannati a progettare solo architetture di informazioni e livelli di presentazione? C'è qualcosa che possono fare per riqualificare il cervello per essere più efficaci nel progettare livelli di sistema piacevoli ed efficienti?

Sembra che i "designer ui" debbano prendere una prospettiva completamente diversa: dovrebbero guardare dall'interno della scatola verso l'esterno; invece di guardare fuori dalla scatola.

L' opinione di Alan Cooper "I detenuti gestiscono l'asilo" è che non possiamo prendere con successo entrambe le prospettive: possiamo imparare a indossare bene un cappello ma non possiamo semplicemente cambiare cappelli.


2

Penso che sia perché una buona interfaccia utente non è logica. Una buona interfaccia utente è intuitiva.

Gli sviluppatori di software in genere fanno male su "intuitivo"


Punto eccellente, richiede l' altro lato del cervello
Chris Ballance,

Non esiste una cosa intuitiva per l'interfaccia utente. C'è qualcosa di simile a quello che già so, ma è un po 'diverso.
Stephan Eggermont,

Nulla è "intuitivo", tutto è appreso. Intuitivo è una parola lanciata dagli uomini d'affari per far sudare i programmatori.
Bernard Igiri,

parlato come un vero programmatore .... e questa è la radice del problema.
Gregor Brandt,

@gbrandt Intuitive è una combinazione "familiare" e "semplice". Tuttavia, è ancora un obiettivo da raggiungere. La cosa difficile dell'usabilità è che ciò che è intuitivo per alcuni non è necessariamente intuitivo per altri. @Stephan ha ragione nel dire che "intuitivo" non è un "fatto" difficile, è relativo all'utente.
TM.

2

Un'inquadratura utile è considerare attivamente quello che stai facendo come progettare un processo di comunicazione. In un senso molto reale, la tua interfaccia è un linguaggio che l'utente deve usare per dire al computer cosa fare. Questo porta a considerare una serie di punti:

  1. L'utente parla già questa lingua? Usare un'interfaccia altamente idiosincratica è come comunicare in una lingua che non hai mai parlato prima. Quindi, se la tua interfaccia deve essere assolutamente idiosincratica, dovrebbe presentarsi al meglio con i termini più semplici e poche distrazioni. D'altra parte, se la tua interfaccia utilizza modi di dire a cui l'utente è abituato, acquisiranno sicurezza fin dall'inizio.
  2. Il nemico della comunicazione è il rumore. Il rumore uditivo interferisce con la comunicazione vocale; il rumore visivo interferisce con la comunicazione visiva. Più rumore riesci a eliminare dalla tua interfaccia, più facile sarà comunicare con essa.
  3. Come nella conversazione umana, spesso non è quello che dici, è come lo dici. Il modo in cui la maggior parte dei software comunica è scortese in misura tale da ottenere un pugno in faccia se fosse una persona. Come ti sentiresti se facessi una domanda a qualcuno e loro si siedessero lì e ti fissassero per diversi minuti, rifiutando di rispondere in qualsiasi altro modo, prima di rispondere? Molti elementi dell'interfaccia, come le barre di avanzamento e la selezione automatica della messa a fuoco, hanno la funzione fondamentale della cortesia. Chiediti come puoi rendere la giornata dell'utente un po 'più piacevole.

In realtà, è un po 'difficile determinare quali programmatori pensano di interazione interfaccia come essere, altro che un processo di comunicazione, ma forse il problema è che non venga pensato come qualcosa a tutti.


2

Ci sono già molti o buoni commenti, quindi non sono sicuro che ci sia molto da aggiungere. Ma comunque ...

  • Perché uno sviluppatore dovrebbe aspettarsi di essere in grado di progettare una buona interfaccia utente?
  • Quanta formazione ha avuto in quel campo?
  • Quanti libri ha letto?
  • Quante cose ha progettato in quanti anni?
  • Ha avuto l'opportunità di vedere la reazione dei suoi utenti?

Non ci aspettiamo che un "Joe l'idraulico" casuale sia in grado di scrivere un buon codice. Quindi, perché dovremmo aspettarci che "Joe il programmatore" casuale progetta una buona interfaccia utente?

L'empatia aiuta. Separare la progettazione dell'interfaccia utente e la programmazione aiuta. Il test di usabilità aiuta.

Ma il design dell'interfaccia utente è un mestiere che deve essere appreso e praticato, come qualsiasi altro.


Esattamente quello che stavo pensando, in che modo "sviluppatore" si riferisce a "User Interface Designer" ??
Jorge Córdoba,

@Jorge ecco ora che si riferisce: molti sviluppatori devono progettare interfacce utente per i loro datori di lavoro, anche se non sono designer. Nella mia compagnia non abbiamo NESSUN artista. Le nostre app non sembrano troppo male. In questo caso, devi avere recensioni e cose del gruppo per assicurarti che il design sia gradevole.
TM.

@TM: il design non è necessariamente UI / UX Design. Certo, potrebbe sembrare buono ma ciò non significa che funzioni bene .
Kevin Peno,

2

Gli sviluppatori non sono (necessariamente) bravi nella progettazione dell'interfaccia utente per lo stesso motivo per cui non sono (necessariamente) bravi a lavorare a maglia; è difficile, ci vuole pratica e non fa male che qualcuno ti mostri come, in primo luogo.

La maggior parte degli sviluppatori (me incluso) ha iniziato a "progettare" le interfacce utente perché era una parte necessaria della scrittura del software. Fino a quando uno sviluppatore non si impegna per ottenerlo, non lo sarà.


2

Per migliorare basta guardarsi intorno ai siti esistenti. Oltre ai libri già suggeriti, potresti dare un'occhiata all'eccellente libro di Robin Williams "The Non-designer Design Book" ( link Amazon disinfettato )

Dai un'occhiata a ciò che è possibile nel visual design dando un'occhiata anche alle varie proposte al The Zen Garden .

Il design dell'interfaccia utente è sicuramente un'arte, come i puntatori in C, alcune persone lo capiscono e altre no.

Ma almeno possiamo ridacchiare ai loro tentativi . A proposito, grazie OK / Annulla per un fumetto divertente e grazie Joel per averlo inserito nel tuo libro "The Best Software Writing I" ( link Amazon sterilizzato ).


2

L'interfaccia utente non è qualcosa che può essere applicato dopo il fatto, come una sottile mano di vernice. È qualcosa che deve essere lì all'inizio e basato su una vera ricerca. Ci sono tonnellate di ricerche sull'usabilità disponibili ovviamente. Deve non essere solo lì all'inizio, ma deve costituire il nucleo del motivo stesso per cui stai creando il software in primo luogo: c'è qualche lacuna nel mondo là fuori, qualche problema, e deve essere creato più utilizzabile e più efficiente.

Il software non è lì per se stesso. Il motivo dell'esistenza di una parte del software è PER LE PERSONE. È assolutamente ridicolo persino provare a trovare un'idea per una nuova porzione di software, senza capire perché qualcuno ne abbia bisogno. Eppure questo succede sempre.

Prima di scrivere una singola riga di codice, dovresti passare attraverso le versioni cartacee dell'interfaccia e testarlo su persone reali. Questo è un po 'strano e sciocco, funziona meglio con i bambini e qualcuno che si comporta come "il computer".

L'interfaccia deve sfruttare le nostre strutture cognitive naturali. In che modo un uomo delle caverne userebbe il tuo programma? Ad esempio, ci siamo evoluti per essere davvero bravi nel tracciare oggetti in movimento. Ecco perché le interfacce che usano simulazioni fisiche, come l'iPhone, funzionano meglio delle interfacce in cui i cambiamenti si verificano istantaneamente.

Siamo bravi in ​​certi tipi di astrazione, ma non in altri. Come programmatori, siamo addestrati a fare ginnastica mentale e flessioni per capire alcune delle astrazioni più strane. Ad esempio, comprendiamo che una sequenza di testo arcano può rappresentare ed essere tradotta in un modello di stato elettromagnetico su un piatto di metallo, che quando viene incontrato da un dispositivo accuratamente progettato, porta a una sequenza di eventi invisibili che si verificano alla velocità della luce su un dispositivo elettronico circuito, e questi eventi possono essere diretti per produrre un risultato utile. Questa è una cosa incredibilmente innaturale da capire. Comprendi che mentre ha una spiegazione perfettamente razionale per noi, per il mondo esterno, sembra che stiamo scrivendo incantesimi incomprensibili per convocare spiriti senzienti invisibili per fare le nostre offerte.

Il tipo di astrazioni che gli umani normali comprendono sono cose come mappe, diagrammi e simboli. Fai attenzione ai simboli, perché i simboli sono un concetto umano molto fragile che richiede uno sforzo mentale consapevole per decodificare, fino a quando il simbolo non viene appreso.

Il trucco con i simboli è che deve esserci una chiara relazione tra il simbolo e la cosa che rappresenta. La cosa che rappresenta deve essere un nome, nel qual caso il simbolo dovrebbe apparire MOLTO MOLTO simile alla cosa che rappresenta. Se un simbolo rappresenta un concetto più astratto, questo deve essere spiegato IN ANTICIPO. Vedi le inscrutabili icone senza etichetta nella barra degli strumenti di msword o Photoshop e i concetti astratti che rappresentano. È necessario IMPARARE che l'icona dello strumento di ritaglio in Photoshop indica CROP TOOL. bisogna capire cosa significa CROP. Questi sono i prerequisiti per utilizzare correttamente quel software. Il che fa emergere un punto importante, attenzione alle conoscenze ASSUNTE.

Otteniamo la capacità di comprendere le mappe solo all'età di 4 anni. Penso di aver letto da qualche parte una volta che gli scimpanzé acquisiscono la capacità di comprendere mappe all'età di 6 o 7 anni.

La ragione per cui le guis hanno avuto così tanto successo all'inizio è che hanno cambiato un panorama di interfacce testuali per lo più ai computer, in qualcosa che ha mappato i concetti del computer a qualcosa che somigliava a un luogo fisico. Dove i guis falliscono in termini di usabilità, è dove smettono di assomigliare a qualcosa che vedresti nella vita reale. Ci sono cose invisibili, imprevedibili, incomprensibili che accadono in un computer che non mostrano alcuna somiglianza con qualsiasi cosa tu abbia mai visto nel mondo fisico. Parte di questo è necessario, dal momento che non avrebbe senso creare un simulatore di realtà. L'idea è quella di salvare il lavoro, quindi ci deve essere un po 'di magia. Ma quella magia deve avere un senso ed essere radicata in un'astrazione che gli esseri umani sono ben adattati alla comprensione. È quando le nostre astrazioni iniziano a diventare profonde e stratificate, e non corrisponde al compito a portata di mano che le cose si guastano. In altre parole, l'interfaccia non funziona come una buona mappa per il software sottostante.

Ci sono molti libri. I due che ho letto, e quindi posso consigliare, sono "The Design of Everyday Things" di donald norman e "The Human Interface" di Jef Raskin.

Consiglio anche un corso di psicologia. "The Design of Every day Things" ne parla un po '. Molte interfacce si rompono a causa della "comprensione popolare" della psicologia da parte degli sviluppatori. Questo è simile alla "fisica popolare". Un oggetto in movimento rimane in movimento non ha alcun senso per la maggior parte delle persone. "Devi continuare a spingerlo per tenerlo in movimento!" pensa il novizio di fisica. I test degli utenti non hanno senso per la maggior parte degli sviluppatori. "Puoi semplicemente chiedere agli utenti cosa vogliono e dovrebbe essere abbastanza buono!" pensa il novizio di psicologia.

Raccomando Discovering Psychology, una serie di documentari PBS, ospitata da Philip Zimbardo. In caso contrario, prova a trovare un buon libro di testo di fisica. Il tipo costoso. Non la merda di auto-aiuto di pulp fiction che trovi in ​​Borders, ma le spesse cose hardbound che puoi trovare solo in una biblioteca universitaria. Questa è una base necessaria. Puoi fare un buon design senza di esso, ma avrai solo una comprensione intuitiva di ciò che sta succedendo. Leggere alcuni buoni libri ti darà una buona prospettiva.


2

Se leggessi il libro "Perché il software fa schifo" avresti visto la risposta di Platt, che è semplice:

  1. Gli sviluppatori preferiscono il controllo sulla facilità d'uso
  2. Le persone medie preferiscono la facilità d'uso al controllo

Ma un'altra risposta alla tua domanda sarebbe "perché l'odontoiatria è così difficile per alcuni sviluppatori?" - La progettazione dell'interfaccia utente viene eseguita al meglio da un designer dell'interfaccia utente.

http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.