Quando un'applicazione è troppo personalizzabile? [chiuso]

8

Supponiamo che tu stia sviluppando un'applicazione desktop e desideri che l'utente sia in grado di personalizzare menu, pulsanti, keymapping e altri comandi e componenti. Quanta personalizzazione dovrebbe essere consentita?

Mi piace che i miei ambienti siano praticamente infinitamente personalizzabili. Voglio anche che l'ambiente abbia un buon set di impostazioni predefinite, quindi posso semplicemente modificare le impostazioni di cui ho bisogno, piuttosto che dover impostare il tutto. Qualcuno ha qualche esperienza utente da indicare per supportare o contraddire la mia preferenza?

    
posta Michael K 24.01.2011 - 16:36
fonte

12 risposte

11

tieni presente che ogni opzione / personalizzazione che aggiungi renderà un programma più complesso, che sarà più difficile da utilizzare e da mantenere. Se è qualcosa che userebbe solo una piccola percentuale di persone, chiederei se ne vale la pena.

    
risposta data 24.01.2011 - 16:46
fonte
9

Quando farà una differenza positiva significativa agli utenti per consentire la personalizzazione.

Essenzialmente è come ogni altro requisito - ha bisogno di giustificare il costo / gli sforzi per implementarlo. Ciò potrebbe aumentare la produttività o l'usabilità, o potrebbe essere un certo livello di aumento della soddisfazione degli utenti, ma ci dovrebbe essere qualche motivo per farlo che giustifica lo sforzo richiesto.

Come persona a cui piacciono le personalizzazioni, le domande che dovresti porci sono:

  • Se dovessi pagare, cosa pagherei per questo livello di personalizzazione? Quante persone come me ci sono? E questo coprirebbe il costo per svilupparlo?

  • Che cosa fanno i miei concorrenti? Qual è l'aspettativa per i prodotti in quest'area?

  • Se invece di spendere lo sforzo rendendolo personalizzabile avrei dovuto spendere questo sforzo su altre funzionalità, quale preferirei? È vero per gli utenti tipici?

Ricorda che tutto ciò che scegli di implementare è in realtà qualcosa che non scegli di fare (almeno per ora), quindi tutto deve giustificare lo sforzo necessario.

    
risposta data 24.01.2011 - 16:46
fonte
5

Chiediti perché vuoi consentire all'utente di personalizzare ogni piccola cosa. È per evitare di prendere decisioni sul design da solo, forzandole invece sull'utente?

Ecco un buon post di Jeff sull'argomento: link

    
risposta data 24.01.2011 - 17:04
fonte
5

Gli utenti, in generale, odiano le applicazioni che sono così poco pensate da dover essere personalizzate per soddisfare le loro esigenze. Nella mia esperienza, la maggior parte degli utenti non è così a suo agio nell'usare un computer come una persona IT e non si personalizzerà nemmeno quando viene fornita l'opzione.

Se stai personalizzando per evitare di fare un buon lavoro di progettazione, stai personalizzando troppo. Se stai personalizzando perché ti piace la personalizzazione e non perché è un requisito, stai personalizzando troppo. Se hai una vera esigenza di personalizzazione, dovresti comunque chiedergli se è una buona idea e scoprire il motivo alla base del perché pensano che abbiano bisogno di personalizzazione. Spesso troverai un nuovo requisito che non hanno menzionato se utilizzi un requisito per la personalizzazione come luogo in cui avviare un dialogn con la persona che esegue i requisiti.

    
risposta data 24.01.2011 - 17:32
fonte
4

Dipende dall'applicazione

Questo può sembrare un errore, ma in realtà non lo è (o almeno non lo è).

La quantità di personalizzazione dovrebbe essere, in parte, dipendente dalla sofisticazione dell'utente finale atteso. È molto più probabile che i tipi di ingegnere entrino e armeggiano con le impostazioni dell'utente rispetto, ad esempio, a mia nonna che suona un solitario su una macchina Win98.

Dipende anche da cosa è l'applicazione stessa. Se il punto dell'applicazione è la facilità d'uso, non si vuole confonderlo con una serie di opzioni configurabili dall'utente.

Troppe opzioni configurabili rendono un'applicazione un'applicazione eccessivamente complessa. Se crei un'applicazione che ha molte di queste opzioni, almeno "le nascondo" in una schermata di configurazione o in una finestra di dialogo "Avanzate ..." e inserisco solo un sottoinsieme di cose che l'utente medio di quell'applicazione avrà vuoi cambiare nella schermata delle opzioni "normali".

Un'altra alternativa è "scuoiare" qualcosa. Ciò potrebbe significare il tradizionale "skinning" (ad esempio, la scheda "Aspetto" nelle Proprietà dello schermo di Windows), oppure potrebbe significare un insieme di opzioni che vengono impostate tutte contemporaneamente (ad esempio, la scheda "Temi" sullo stesso finestra di dialogo).

    
risposta data 24.01.2011 - 16:45
fonte
3

Generalmente non mi preoccupo. Ho dovuto lavorare su molte macchine diverse, e tenerle tutte personalizzate sarebbe più un problema di quanto sembri valga la pena. Se eseguo la personalizzazione su una macchina, mi arrabbierò quando un'altra macchina non la possiede. Semplificare lo spostamento delle personalizzazioni potrebbe aiutare un po '(prendere in considerazione gli utenti di emacs e i loro file site-lisp), ma spesso troverei troppa seccatura comunque.

Se la tua app non funzionerà correttamente, ma devi essere personalizzata, hai fallito.

Voglio il mio software preferito su una macchina, ma non penso che questo sia ciò che intendi per personalizzazione.

Un problema con la personalizzazione è che è una promessa a tutti i clienti che devi rispettare. Spedisci la versione A e i tuoi clienti personalizzano. Tutto bene. Ora, cosa fai con la versione B? Se interrompi le personalizzazioni dei tuoi clienti, saranno sconvolte e, se lo fai più di una volta, saranno molto riluttanti a personalizzare, quindi rimarrai con le funzionalità di personalizzazione che pochissime persone usano, oltre a essere infastidito clienti.

Questo significa che devi prestare attenzione a quale personalizzazione hai coinvolto in ogni aggiornamento. Questo può darti grattacapi, quando vuoi ristrutturare qualcosa che dovrebbe essere facile da fare, tranne che rovinerebbe le personalizzazioni. Devi prestare attenzione alle possibili combinazioni di personalizzazioni che potrebbero interagire male.

    
risposta data 24.01.2011 - 19:03
fonte
2

Un programma è troppo personalizzabile quando si verifica una delle seguenti condizioni:

  1. Non ci sono valori predefiniti preconfigurati per le cose. La personalizzazione è molto più appetibile se la roba funziona abbastanza bene anche se non la personalizzi. Ad esempio, odio vi perché il suo comportamento out-of-the-box in termini di ciò che il backspace e i tasti freccia fanno è così diverso dalla convenzione sul resto della macchina. So che questo può essere personalizzato, ma quando salgo su una macchina magazzino è praticamente inutilizzabile finché non spreco un po 'di tempo a giocherellare.

  2. Hai reso il tuo programma così personalizzabile che il suo aspetto e il suo aspetto sono effettivamente diversi su ogni macchina, distro Linux, ecc. e non puoi "imparare una volta, usare ovunque". Di nuovo, vedi vi.

  3. Hai creato una piattaforma interna in modo che l'utente stia meglio usando la piattaforma esterna per realizzare ciò che lui / lei vuole Ad esempio, una volta che un editor di testo o uno strumento di elaborazione del testo da riga di comando diventa troppo potente, è probabilmente più facile scrivere semplicemente uno script Python veloce e sporco ad-hoc per eseguire le manipolazioni di testo più complesse che imparare come usarle la piattaforma interna. Allo stesso modo, una volta che una libreria di stampa diventa troppo potente, probabilmente è meglio lasciare che l'utente interagisca direttamente con la libreria della GUI su cui è costruito per personalizzare i dettagli più fini della trama.

risposta data 24.01.2011 - 18:20
fonte
2

TL; DR: quando la tua applicazione diventa un quadro intimidatorio.

Dal punto di vista dello sviluppatore dell'applicazione , è in quel momento che la personalizzazione consentirebbe all'applicazione di rompere in modo tale che il supporto diventa impossibile, sia perché l'utente non è in grado di riferire come ha impostato l'applicazione o perché le varie interazioni tra le impostazioni diventano troppo tortuose per fare testa o croce. Pensa attentamente al sistema di personalizzazione e consenti alle informazioni di tornare a te in modo significativo.

Dal punto di vista dell'utente dell'applicazione , è quando l'utente sente come impostare l'applicazione è scoraggiante, spesso perché è simile alla programmazione, per una definizione libera di "programmazione" (questa include la GUI di programmazione orientata o Blinkenswitches ).

la linea è sfocata .

Sì, a volte un buon codice o una progettazione GUI (ri) può rendere l' della scheda di controllo delle applicazioni anche con lo stesso set di funzioni personalizzabili .

Crea una curva di apprendimento tra le impostazioni "casuale", "avanzato" e "esperto". Potrebbe arrivare fino a fornire un'API e / o uno scripting. Tutti gli utenti non iniziano su un piede uguale: un sistema a livelli renderà ognuno sentirsi a casa . Può anche creare un senso di progresso e realizzazione quando un principiante passa da "curato" a "avanzato".

Buoni esempi in varie aree includono Firefox (preferenze, about: config, userchrome.css & al.), Chrome (impostazioni di base vs "Sotto il cofano"), Mac OS X (pref panes, "defaults (1)" , applescript / automator), o anche vimrc di Vim. I cattivi esempi includono qualsiasi applicazione il cui riquadro delle impostazioni sembra un labirinto. Sono sicuro che potresti nominare una mezza dozzina dalla tua testa (a meno che non ti abbia traumatizzato per dimenticarle).

    
risposta data 24.01.2011 - 20:07
fonte
1

Firefox potrebbe essere un buon esempio: l'utente ha la possibilità di personalizzare l'interfaccia utente e aggiungere estensioni diverse secondo necessità. Il programma principale non è personalizzabile, ma il resto è un gioco leale.

    
risposta data 24.01.2011 - 16:37
fonte
1

Quando la tua applicazione si interrompe troppo spesso per il bene del cliente o per il benessere dello sviluppatore, probabilmente ne hai troppe.

Sto lavorando con un'app server client desktop .NET, SQL Server che consente:

    Custom Tables
    Custom Stored Procs & Views (These can have data modification capabilities as well)
    Creation of custom data sources in the application (Inside or outside the 'live' database)
    Creation of custom grid forms based on custom data source or combining of custom data sources
    Creation of custom reports based on custom data sources
    Creation of custom logic script on data entry fields 
    Customizable data import functionality
    Customizable workflow process data entry and notifications
    Customizable selection and placement of data entry fields/controls on standard forms
    Detailed user security settings to all forms, data CRUD, app functionality and reports

Seriamente, questa compagnia ha creato una bestia personalizzabile. È progettato per un mercato verticale, ma le altre implementazioni potrebbero essere illimitate.

    
risposta data 24.01.2011 - 17:22
fonte
1

Mi piace progettare per la personalizzazione, ma prima di implementarlo, preferirei che tutto il resto fosse davvero solido. In effetti, probabilmente mi piacerebbe avere la versione 1.0 fuori dalla porta in cui può essere gestita dagli utenti prima che iniziassi a pensare di aggiungere funzionalità personalizzabili dall'utente.

Prima di tutto, non so quali personalizzazioni saranno utili ai miei utenti del mondo reale. Può essere che siano contenti di come funziona l'interfaccia e preferiscono avere più funzioni disponibili piuttosto che avere una personalizzazione sufficiente da poter cambiare la posizione dei pulsanti o delle voci di menu.

Preferirei avere un'interfaccia davvero fantastica che costringa un po 'la mano dell'utente, che ha un sacco di personalizzazioni in corso, ma aspetta altri sei mesi o un anno prima che la mia applicazione possa essere rilasciata. La spedizione è una funzione!

L'unica eccezione certa è che se ho bisogno di combinazioni di tasti, nella maggior parte dei casi, desidero renderle personalizzabili, perché non sai mai cos'altro un utente è in esecuzione e sarebbe molto irritante scontrarsi con un altro applicazione in un modo che l'utente non potrebbe facilmente aggirare.

    
risposta data 24.01.2011 - 18:01
fonte
0

È possibile aggiungere le configurazioni di base e di buon senso a un menu, in modo che possano essere ottimizzate direttamente dall'interfaccia utente. Tutto il resto, che è più complicato, puoi inserire in qualche file di configurazione o in altri mezzi accessibili da uno strumento di configurazione o qualcosa del genere.

In questo modo, i tuoi utenti più comuni e non specializzati hanno accesso alle configurazioni di base di cui hanno bisogno per utilizzare l'app, mentre i tuoi utenti più specializzati, esperti o altrimenti più interessati possono utilizzare le configurazioni extra per soddisfare le loro esigenze altamente specializzate. / p>

Penso che questo sia il miglior compromesso tra avere un'app user friendly e altamente personalizzabile. Il successo di questo, però, è come dividi le configurazioni. Quali sono quelli importanti, che sono solo per ritocchi fantasia? Questa è la parte difficile che penso. E non dimenticare di aggiungere un pulsante di ripristino ai valori predefiniti, nel caso qualcuno rovini qualcosa.

    
risposta data 24.01.2011 - 21:14
fonte

Leggi altre domande sui tag