Superare la mancanza generale di abilità di progettazione dell'interfaccia utente negli sviluppatori [chiuso]


17

Mi è stato detto, e ho scoperto per me stesso, che molti sviluppatori non sono bravi nella progettazione dell'interfaccia utente (non so quanto sia vero) ma almeno è vero per me .

Nello sviluppo web buone capacità di sviluppo del codice non sono sufficienti senza grandi capacità nella progettazione dell'interfaccia utente per andare con loro.

Quindi per me, e molti sviluppatori come me, che hanno solo la metà (buone capacità di sviluppo) come dovremmo completare la nostra altra metà oltre a pagare per un designer?

L'uso di modelli Web Open Source con piccole modifiche è la soluzione migliore per questo o ci sono altre opzioni?


12
"Come persona UX con scarse capacità di sviluppo, come dovrei sviluppare un sito, senza pagare uno sviluppatore?"
Steven Evers,

Dovresti vedere a cosa sto lavorando ora - Disastro dell'interfaccia utente. Non credo che nessuno che abbia lavorato al progetto abbia mai consultato le guide alla progettazione dell'interfaccia utente. Lo stesso vale per il mio progetto precedente, solo su quello in cui ho forzato il problema e coinvolto il graphic designer, ma c'erano alcune parti del codice che erano fuori dal mio controllo e che erano davvero terribili.
Skizz,

7
Assumi un designer. È l'unico modo per esserne sicuri.
SF.

1
Questa domanda è problematica. Potresti anche parlare del superamento della generale mancanza di abilità di programmazione nei designer.
Alex Feinman,

Risposte:


11

Sono uno sviluppatore che non è anche così grande nel design. Faccio del mio meglio, quando lavoro su un progetto in cui devo progettare, per rendere le cose il più semplici possibile. Prendo un approccio molto logico e design solo per l'esperienza dell'utente. Non riesco a renderlo davvero bello, ma posso renderlo facile da usare e relativamente piacevole per gli occhi.

Ho letto molti di questi libri: http://www.uxbydesign.org/2009/06/24/20-user-experience-books-you-should-own/ e mi hanno davvero aiutato.

modifica il mio preferito in quell'elenco è Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition di Steve Krug


Non so perché gli sviluppatori si sentano come se dovessero essere sempre tutto per tutti. Sono già sviluppatore, designer, architetto, analista aziendale, supporto alla produzione e QA. Non è ancora abbastanza e ora devo essere anche un DBA.
maple_shaft

3
Inoltre, come libero professionista devi avere tutte le competenze da solo o essere costretto a esternalizzare parti di un progetto. Se non sei del tutto in grado di fare qualcosa, peccato che tu abbia bisogno di trovare qualcun altro. Ma se riesci ad apprendere le competenze, perché no, e renditi capace di guadagnare di più e diventare uno sviluppatore più attraente dal punto di vista dei potenziali clienti.
Sydenam,

2
Conosco e sono d'accordo con te, mi sto solo schifando di ciò che l'industria sta diventando. Sono circondato da persone che odiano il loro lavoro e sono oberate di lavoro e hanno una stupida idea che sperano siano i prossimi Angry Birds e mi chiedono se possono pagare un indiano $ 6 / l'ora per fare TUTTO IL LAVORO e appena aperto fonte per tutto senza contribuire perché open source dopotutto è GRATUITO. Quindi sperano di guadagnare milioni e di lasciare il lavoro. Questi possessori di cattive idee si aspettano sempre di più e poi ancora di più senza quasi soldi. Mi fa star male.
maple_shaft

5

Il design (di qualsiasi cosa) è una negoziazione tra le esigenze dei vari stakeholder (cliente, sviluppatore, utenti). Nessuna delle parti interessate è generalmente in una buona posizione per creare il miglior design perché tende a comprendere meglio le proprie esigenze e a metterle al di sopra delle esigenze delle altre parti interessate. Un buon designer può identificare le esigenze dei vari stakeholder - spesso ha bisogno che lo stakeholder stesso non si renda conto di averlo - e trovare una soluzione che funzioni per tutti.

Probabilmente l'hai visto tu stesso molte volte. Gli utenti pensano a come devono interagire con un sistema, di solito in termini di qualche altro sistema con cui hanno già familiarità. Gli sviluppatori pensano principalmente in termini di funzionamento del sistema. I clienti di solito vogliono qualcosa che risolva tutti i loro problemi, oppure vogliono risolvere qualche problema molto specifico al minor costo.

Per diventare un buon designer, devi imparare a smettere di pensare in anticipo a come implementerai qualcosa. Invece, devi concentrarti su ciò che gli altri stakeholder ti stanno dicendo su ciò di cui hanno bisogno e che vogliono, e devi essere in grado di leggere tra le righe. Come gli sviluppatori, i clienti e gli utenti hanno spesso in mente una soluzione preconcetta e tendono a descrivere quella soluzione anziché i requisiti sottostanti. (Detto questo, è importante rendersi conto che a volte un cliente significa quello che dicono quando ti dicono esattamente quello che vogliono; se non sei sicuro, chiedi.)

Più superficialmente, anche il design estetico di un'interfaccia utente è qualcosa con cui alcuni sviluppatori hanno problemi. Penso che ciò sia in parte dovuto al fatto che gli sviluppatori di software spesso non hanno molta formazione in estetica - gli studenti CS potrebbero non avere molto tempo per le lezioni di arte. Anche in parte è di nuovo perché siamo più interessati a come funziona qualcosa di quanto siamo in quello che sembra; non ci importa se gli angoli di un pulsante hanno un raggio di 9 pixel o un raggio di 10 pixel. Questi due fattori sono sicuramente correlati. A volte puoi superare questo problema facendo affidamento su soluzioni predefinite sotto forma di framework dell'interfaccia utente e l'utilizzo di componenti predefiniti ha il vantaggio di unificare visivamente il tuo lavoro con altre applicazioni sullo stesso sistema. Puoi migliorare le tue capacità estetiche leggendo, guardando il lavoro di altre persone, e prestando molta attenzione ai dettagli visivi che potresti aver ignorato in passato. Dovresti anche cercare di capire la logica che sta dietro le differenze visive: i pulsanti con angoli quadrati significano qualcosa di diverso dai pulsanti arrotondati? Come viene usato il colore? eccetera.


1
grazie per la risposta gr8 ci sono risorse, libri, siti che parlano di questo argomento: "logica dietro le differenze visive: i pulsanti con angoli quadrati significano qualcosa di diverso dai pulsanti arrotondati? Come viene utilizzato il colore? ecc."
Ali,

Su un lato nota e per pura curiosità, fare quadrato pulsanti-cornered significare qualcosa di diverso dai pulsanti arrotondati? Mi è stato chiesto questo su UX SE?
Sean Hanley,

I pulsanti colorati e arrotondati sono una preoccupazione grafica e non hanno nulla a che fare con UX. Una domanda migliore per UX sarebbe "cosa pensa il nostro utente del nostro sito con una combinazione di colori x una combinazione di colori" e il posizionamento di tali pulsanti.
Nic,

@Yadyn, dipende dal contesto. La geometria dei pulsanti può fornire all'utente un indizio sulla funzione e sul comportamento: i pulsanti quadrati ad angolo formano gruppi attraenti e spesso funzionano bene per selezionare opzioni o modalità. I pulsanti arrotondati non si accumulano così bene e spesso indicano operazioni distinte. Ma questi tipi di segnali visivi hanno un significato solo se vengono utilizzati coerentemente all'interno di un'applicazione o (meglio) in un'intera interfaccia grafica.
Caleb,

@melee, sto arrivando a questo dal punto di vista dello sviluppo delle applicazioni. Ci sono molte più interfacce sul web e sono d'accordo sul fatto che sia più difficile affrontare questo caso in quel contesto. Ma se hai preso una tipica applicazione desktop sul Mac e hai detto "I pulsanti blu sembrano fantastici - rendiamo tutti i pulsanti blu!" creeresti molta confusione per gli utenti perché gli utenti attribuiscono significato al colore e alla forma di un pulsante. Esempi qui (Apple HIG): tinyurl.com/6agv54v
Caleb,

3

Ecco alcune cose che trovo mi aiutano:

  • Prendi nota di ciò che ti piace / non ti piace in altri software. Siamo programmatori, trascorriamo gran parte della nostra vita al computer. Cerca di prendere nota di ciò che ami / odi quando usi il software. Non importa se si tratta di software per computer, videogiochi, dispositivi mobili, ecc. Cerca di tenere d'occhio ciò che è conveniente e facile da usare, e ciò che non lo è.

  • Trova uno strumento di schizzo facile da usare per disegnare l'interfaccia utente per te e i tuoi utenti. Adoro usare Balsamiq poiché è veloce, semplice e la versione web è gratuita.

  • Ricorda che non è necessario trovare qualcuno specializzato nella progettazione di software per aiutarti a progettare qualcosa: qualsiasi utente lo farà. Spesso eseguo i miei schizzi da alcune persone totalmente estranee al progetto solo perché so che sono in giro per tutto il giorno software e possono dirmi se qualcosa sembra a posto o è facile da usare. Tieni presente che spesso ti daranno idee folli su cosa fare e devi sapere cosa sarebbe semplicemente "bello" da fare e cosa potrebbe effettivamente migliorare la produttività.

  • Sentiti libero di chiedere su /ux// per domande dettagliate


1
Buon consiglio, buon strumento
NoChance,

2

Ad essere onesti, la progettazione dell'interfaccia utente è una cosa diversa. Uno sviluppatore pensa sempre a un design sottile e non è troppo creativo quando si tratta di progettazione. L'approccio definito che sento è quello di mantenere uno sviluppatore diverso per la progettazione dell'interfaccia utente. Anche se si aggiunge al costo, ma sicuramente ti aiuterà a raggiungere risultati migliori.

Per qualcuno che fa entrambe le cose da solo, non dà mai il miglior risultato. Quindi, IMHO questi due diversi aspetti dovrebbero essere assegnati a due diversi sviluppatori. Si consiglia una piccola conoscenza di HTML e CSS per lo skinning e lo sviluppo di temi in caso di CMS diversi, ma quando è necessario sviluppare un design completamente nuovo, consultare un designer dell'interfaccia utente.



2

Il design dell'interfaccia utente non è qualcosa che diventa naturale per molte persone. Tuttavia, recentemente sono migliorato molto seguendo alcuni semplici principi.

  1. Non andare fuori di testa, non è così difficile come pensi.

  2. Modella prima la struttura dei dati e il tuo motore. Crea modelli chiari e corrispondenti al mondo reale. Ovviamente ciò presuppone che tu abbia impiegato del tempo per capire di cosa ha bisogno il cliente.

  3. Ora, con un foglio di carta e una matita, siediti e inizia a disegnare il layout logico degli schermi. Questo normalmente presenta semplicemente il tuo modello di dati all'utente in modo organizzato. Il tuo obiettivo dovrebbe essere semplicemente:

    un. Imita l'ambiente in cui verrà distribuita l'app. Ad esempio, se si tratta di un'app di Windows, deve comportarsi come un'app di Windows, se è un'app Web, deve comportarsi come applicazioni Web simili più popolari della tua.

    b. Il tuo obiettivo è guidare l'utente attraverso il tuo modello di dati in un modo che LORO avrebbe previsto. Un'interfaccia utente è ben progettata quando un utente fa qualcosa nella tua applicazione e fa esattamente quello che si aspettavano che facesse.

    c. Questo richiede tempo ed è una curva di apprendimento, ma chiunque può farlo.

  4. Non preoccuparti della grafica, cioè dei pulsanti, degli sfondi, ecc ... il tuo unico obiettivo a questo punto è il layout logico della pagina.

  5. Devi padroneggiare la gui lib che stai usando sia che si tratti di html, gtk, cacao, android, Windows.Forms e così via nella misura in cui comprendi i meccanismi di gestione degli eventi, il motore di layout e recupera input e visualizzazione dati. Qualsiasi sviluppatore dovrebbe essere in grado di fare almeno questo.

  6. Non c'è da vergognarsi nel convincere un grafico a prendere il controllo da qui. Ma dovresti almeno riuscire a superare il passaggio 5. Questo è il 95% del carico di lavoro per l'intera app.

Ecco un utile articolo che mi ha trasformato da un povero designer di gui a un designer di gui molto migliore.

http://www.joelonsoftware.com/uibook/fog0000000249.html


Un buon consiglio, ma non sono d'accordo con il punto 2. Vorrei anche coinvolgere maggiormente l'utente nei passaggi precedenti.
NoChance,

1
@Emmad Se si considera l'applicazione come una serie di operazioni eseguite sui dati, l'unico scopo dell'interfaccia utente è quello di fornire un modo organizzato di ricevere input per il modello di dati e visualizzare il modello di dati. Il motivo per cui ho inserito 2 è perché scopro che dopo aver modellato i dati, l'interfaccia utente si posiziona. Faccio ampie interviste con l'utente finale per quanto riguarda il tipo di dati con cui vogliono fare? Questa è l'applicazione. Metto quindi le cose sulla pagina e poi chiedo, ora come vuoi che appaia? Non mi ha mai fatto del male.
Jonathan Henson,

1
Inoltre, quando permetto ai grafici di disegnare la GUI, finisce sempre in un disastro. Non sanno come organizzare i dati e quasi mai sanno cosa sia e cosa non sia possibile.
Jonathan Henson,

Grazie per aver spiegato, sono d'accordo con te sul fatto che i grafici non debbano essere incaricati della gestione delle informazioni.
NoChance,

1

Puoi anche cercare esempi di successo di siti "simili" per ottenere idee su layout, grafica e design. Con un po 'di modifiche al tuo programma di pittura preferito puoi prendere in prestito molte idee e farle tue. Non copiare apertamente - non è solo cattive maniere, probabilmente è anche illegale nella maggior parte dei casi.

Dopo aver preso in prestito alcune volte, inizierai a farti un'idea migliore dei progetti di siti di successo e imparerai anche gli strumenti per realizzare quei progetti (con le tue piccole modifiche).


1

Con l'introduzione dell'HTML, la creazione di un semplice sito non brutto è diventata una sfida. Anche se potresti avere il concetto, ci vogliono diversi trucchi, strumenti, grafica già pronta e conoscenza CSS per farlo bene. Inoltre, per produrre pagine nitide sono necessarie tecniche di usabilità e altri fattori umani che influenzano il processo di progettazione.

Gli sviluppatori trascorrono la maggior parte del loro tempo a combattere l'apprendimento di lingue complesse, OOP, ORM, SQL, T-SQL, ecc. Inoltre raramente investono in strumenti per la creazione di siti Web (la maggior parte sono costosi).

Di conseguenza, molti sviluppatori soffrono della loro incapacità di produrre splendide pagine Web. Credo che se imparerai gli strumenti richiesti, sarai in grado di creare anche buone pagine.

È anche importante sapere qual è il tuo ruolo nel processo di sviluppo dell'applicazione. Potresti scoprire che il web design è bello avere un'abilità piuttosto che un'abilità obbligatoria. Nei grandi progetti, non dovrebbe essere almeno un compito del programmatore per i motivi sopra menzionati.

Ho scoperto che questo strumento è un ottimo strumento, può aiutarti:

Artisteer

Dai un'occhiata e prova la demo, è davvero bello.


1

ancora nello sviluppo web buone capacità di sviluppo non sono sufficienti senza grandi capacità di progettazione

Non so se questa affermazione sia vera, penso che dipenda da dove lavori.

Ad esempio, un'azienda più piccola richiederà probabilmente di essere più flessibile con il proprio insieme di competenze, mentre una grande azienda potrebbe non avere le stesse aspettative e si potrebbe effettivamente impiegare tutto il tempo a svilupparsi mentre un team di progettazione lavora alla progettazione.

Microsoft ha effettivamente aggiornato il proprio set di strumenti per evidenziare la netta separazione tra sviluppatori e designer. Hanno introdotto Expression Blend con WPF, il che ora significa che lo sviluppatore può lavorare sulla funzionalità di un software e qualcun altro può progettare per esso. Entrambi usano strumenti diversi, entrambi possono lavorare contemporaneamente sul progetto ma uno fa funzionalità e uno fa il design.

Lo sviluppatore specifica i punti dati e il designer li visualizza.


grazie, ci stavo pensando mentre lo facevo senza squadra mentre lo facevo da solo libero professionista!
Ali,

Sicuramente non è vero con una grande azienda. Ha team di progettazione e sviluppo separati ed entrambi hanno bisogno solo di una conoscenza minima l'uno dall'altro (sapere cosa è possibile, sapere cosa è rotto).
SF.

1

Ricorda che anche il design può essere testato, non solo il codice. Inizia in modo semplice, prova il tuo progetto su un piccolo gruppo di persone, registra il loro feedback e vai da lì. Questo può aiutarti a identificare i problemi con il tuo design e darti idee su cosa potrebbe / dovrebbe essere fatto diversamente. Quindi rivedere il design e iterare.


0

Dovrai solo fingere e copiare altri disegni. Evita qualsiasi cosa di speciale, tranne per una o due funzionalità che saranno di grande beneficio per gli utenti. Segui alcune pratiche di base per limitare caratteri, colori e disordine.

Non abbiate paura di pubblicare domande su UI.stackexchange.com


+ 1- buon punto sulla limitazione dei colori, ecc. Il segno dell'interfaccia utente di un programmatore è di solito uno sfondo verde acqua al neon con un tag lampeggiante attorno a tutti i pulsanti e un tag di selezione intorno a tutto il resto. I siti Web di bell'aspetto utilizzano le impostazioni predefinite (sfondo bianco, caratteri regolari, ecc.) Per il 90%, con un paio di deviazioni interessanti.
Morgan Herlocker,

0

Anche se non è la tua area di competenza, penso che sia sempre interessante studiare come creare interfacce utente. Oggi la maggior parte delle pagine Web è molto dinamica e conoscere alcune competenze dell'interfaccia utente sarebbe sicuramente utile durante la creazione di componenti e l'impostazione delle loro interazioni con gli elementi della tua pagina. Provengo da un background di sviluppo solo back-end e sono rimasto sorpreso da quanto è coinvolto durante la creazione di interfacce.

C'è un libro particolarmente buono che ho letto sul web design e che è rivolto agli sviluppatori:

Web design per sviluppatori: http://pragprog.com/book/bhgwad/web-design-for-developers

È un libro di facile lettura che tocca tutte le fasi della creazione di interfacce: da semplici schizzi e prototipi di interfacce utente alla creazione di progetti con HTML + CSS.

Per migliorare ulteriormente le tue capacità di interfaccia utente, raccomando anche l'ultimo screencast di PeepCode con Ryan Singer: http://peepcode.com/products/ryan-singer-ux


0

Penso che raccogliere alcune nozioni di base su UX / UI / grafica / tipografia sia certamente uno sforzo prezioso. Ovviamente non puoi sempre avere un team di specialisti "a tutto tondo". Molte volte la gente deve indossare più cappelli. Un buon sviluppatore vedrà il valore nel trascorrere del tempo imparando cose al di fuori del proprio dominio e dovrebbe essere in grado di riconoscere almeno un buon lavoro nella progettazione.

Tuttavia, c'è qualcosa da dire su ciò che i designer fanno. Uno sviluppatore può fare così tanto nell'area del design (certamente alcuni più di altri). In particolare, i grandi progetti rivolti al pubblico che vanno ben oltre una ristretta nicchia traggono grande vantaggio dall'impiego di veri e propri professionisti del design. E non intendo semplicemente persone che possono oscillare attorno ai codici colore CSS e HTML. Intendo persone che hanno trascorso ANNI a studiare cose come la tipografia, che hanno letto e compreso il libro di Josef Alber sul colore , che possono fare bellissimi schizzi con carbone sbriciolato sulla carta da giornale. Queste sono competenze preziose e i progetti che lo riconoscono e che possono mettere queste abilità in un uso mirato hanno un vantaggio deciso rispetto alla concorrenza.

Detto questo, ci sono alcune aree in cui designer e sviluppatori possono sovrapporre le proprie competenze. Soprattutto UX e il suo sottodominio, UI. Io raccomando ...


0

Assumi un professionista.

Scherzi a parte, le interfacce utente degli sviluppatori hanno una terribile reputazione. Questo non è perché gli sviluppatori sono al di sotto della media nella progettazione, ma piuttosto perché gli sviluppatori sono al di sotto della media nel chiedere aiuto.

Uno sviluppatore ha la tendenza ad affrontare ogni sfida digitale che si presenta.

(Sono stato uno sviluppatore professionista per 10 anni e mia moglie è una designer di interfacce utente per 20 anni)

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.