>
MENU

Bill Hilf: il nuovo Windows Server Marketing Manager

Cosa ne pensa Dell del FUD su Linux?

12 ottobre 2007 Visualizzazioni: 474 Business

Open Source: 10 modi per renderlo umano

Vi siete mai chiesti cosa servirebbe al software libero ed open-source per esplodere sul mercato informatico? Tante discussioni sterili e flame inutili si sono susseguite su diversi media, soprattutto su Internet, riguardo all’inaffidabilità e all’ancora scarsa maturità delle applicazioni suddette. Vediamo allora 10 modi per renderlo più umano, dunque più competitivo sul mercato.


A lanciare la proposta è stato Jono DiCarlo, esperto sviluppatore software della società Humanized, sul suo blog. Le proposte sono interessanti e ci piacerebbe discuterne insieme a voi.

Le cinque cose da fare nella progettazione di un nuovo software:

  1. Ingaggiare un dittatore benevolo
    Colui che sia in grado di avere una visione a 360° dell’interfaccia utente (UI). Qualcuno che sia in grado di prendere delle decisioni oculate e che possa dire “no” a tutte quella feature del software che non servono.
  2. Rendere i programmi usabili in maniera predefinita
    Non basarsi su un’interfaccia configurabile. Basarsi piuttosto su una interfaccia usabile e quanto meno configurabile possibile.
  3. Progettare attorno ai Task
    Prima di tutto bisognerebbe capire i reali bisogni e le funzionalità che le persone vogliono trarre da un software. Rendere queste funzionalità quanto più semplici possibili, eliminando ogni feature che possa complicare l’intero processo.
  4. Progettare un’architettura orientata ai Plug-In
    E’ l’unica soluzione possibile che permetta di evitare il sovraccarico di funzionalità che un’applicazione comune possa contenere al suo interno, limitandone così la sua complessità.
  5. User Testing, User Testing, User Testing!
    Far collaudare al diretto interessato, dunque all’utente, tutte le funzionalità dell’applicazione.

Le cinque cose da NON fare nella progettazione di un nuovo software:

  1. Sviluppare senza una metrica
    Quando qualcuno segnala una nuova feature da aggiungere al vostro programma, trovate a tutti i costi un modo per inserirla al suo interno. Al contrario bisognerebbe prima considerarne la sua validità e soprattutto la sua efficienza.
  2. Creare cloni
    Non bisognerebbe creare cloni su cloni di altri programmi esistenti. L’idea di duplicare l’interfaccia di un altro applicativo non è sicuramente produttiva, anzi scadente.
  3. Lasciare l’organizzazione della UI all’utente finale
    Non sono sicuro di come debba funzionare questa cosa, allora creo una check-box che lasci scegliere all’utente“, è sicuramente la scelta più errata.
  4. Creare una scarsa UI
    Il programma ha delle finestre e delle GUI, ora! Questo lo rende sicuramente user-friendly, giusto?“. E’ ancora una volta la scelta di progettazione sbagliata.
  5. Creare un’interfaccia grafica per idioti
    Se pensate di avere a che fare sempre e solo con utenti alle prime armi o che debbano leggere manuali su manuali sulla vostra applicazione, avete ancora una volta sbagliato la progettazione del vostro software.

Non pensate anche voi che l’Open Source inglobi al suo interno anche applicativi che seguono, in toto, solo gli ultimi cinque punti? Che le discussioni abbiano inizio.

di Vincenzo Ciaglia - TuxJournal.net

twittergoogle_pluslinkedinmail
  • http://stato-brodo.blogspot.com/ Manuel

    Parole sante!

  • Rudi

    Complimenti veramente.
    Ottime considerazioni.

  • Nicola

    Puoi trovarmi d'accordo su quasi tutto eccetto il punto 2 "Rendere i programmi usabili in maniera predefinita"!
    Non vedo perché gli sviluppatori dovrebbero rendere le interfacce meno configurabili possibile… E' vero che per l'utente alle prime armi trovarsi di fronte a innumerevoli opzioni provoca un senso di profondo disagio a volte ma è pur vero che l'utente più smaliziato deve poter configurare le proprio applicazioni come meglio crede!
    Amo il software libero proprio perché con esso ho a disposizione mille possibilità di configurazione e personalizzazione e non vedo perché dovremo invece seguire la strada di MS che propone tutto già bello e configurato senza dare alcuna possibilità (o quasi) di personalizzare e configurare le applicazioni come meglio l'utente crede! Questo punto per quanto mi riguarda è da bocciare in maniera assoluta!
    Per il resto che dire… Ottime proposte! ;-)

  • visnotjl

    ai primi 10 aggiungerei:
    11)  Standardizzare la documentazione.
    Vi è capitato di dover leggere "l' intera biblioteca di Alessandria" cercando un' informazione essenziale ?  Vi è capitato di trovarla solo per un colpo di fortuna e magari in un  "forum" anzichè dove doveva essere ?  Vi è piaciuto ?

    agli altri cinque aggiungerei:
    6) Scrivere cinque o sei readme, suddividendo fra loro accuratamente i consigli sulla configurazione migliore. Disperderli successivamente fra le sottocartelle dell' applicazione. Nel applicxxx.doc, in share, mescolare i pensieri di Lao Tze alla descrizione dell' applicativo.

  • http://kronixcb.blogspot.com pasquale

    io uso ubuntu e quindi gnome..e come dice alla fine dell’articolo…se nn erro gnome è stato criticato per essere troppo semplice…e si tralasciano le cose basilari che deve avere un DE (tipo, prima della feisty, la storia del tastino Svuota cestino nel Cestino appunto :P )

  • zoiba

    leggo "Le cinque cose da fare nella progettazione di un nuovo software" e mi sembra di vedere Gnome.
    Beh sono regole di buonsenso.
    Avere una visione a 360° non è però cosa facile, già 180° sarebbe una bella cosa :-)

    Sono d'accordo che non bisognerebbe clonare applicazioni esistenti ma il grosso dell'utenza, purtroppo, vuole agire secondo schemi già acquisiti.
    Spesso ci si trova davanti a questi giudizi da parte degli utenti:
    GUI simile = scopiazzatura, nessuna innovazione
    GUI innovativa = difficile, non user friendly

    che serva una via di mezzo?

  • http://www.formulaonline.it/blog Enrico

    In poche parole occorre un'analisi approfondita, sotto tutti i punti di vista.
    Ho una convinzione che mi porto dietro da anni: i programmi dovrebbero essere configurabili e personalizzabili a "strati".
    Mi spiego meglio.
    Il software deve essere dotato di una interfaccia che lo rende usabile in maniera predefinita (vedi punto 2 della to-do list);  ma deve essere possibile accedere a livelli successivi di configurazione/personalizzazione da chi ne ha le competenze.
    Inoltre l'interfaccia utente dovrebbe simulare il più possibile dei comportamenti reali, possibilmente incrementando le possibilità di interazione disponibili nel mondo reale.
    Purtroppo chi sviluppa programmi, tende a comprimere eccessivamente le esigenze utente, in modo da non complicare troppo lo sviluppo.
    La prima cosa che ne risulta sacrificata, alla fine, è proprio l'usabilità.
    In realtà, nel lungo periodo, sarebbe più utile un atteggiamento opposto, cercando di prevedere le esigenze future che, presumibilmente, sorgeranno una volta che l'utente utilizzerà il nuovo software.
    In modo che quando saranno richieste, sarà più semplice implementarle.
    Per ottenere buoni risultati è fondamentale, in ogni caso, il coordinamento tra vari team di sviluppo.
    A mio parere questa è la lacuna maggiore dell'opensource.
    Alcune altre considerazioni le ho fatte in un post di alcuni mesi fa.

  • Daniele

    Io proprorrei anche:

    6. Programmare applicazioni e framework indipendenti dalle distribuzioni.

    Attenzione, segue lunga argomentazione.

    A prescindere dalle logiche di etica dell'accessibilità dei sorgenti e del costo del software. Se io mi compro un pc con windows so di trovare tutto ciò che mi serve e anche tutte le amenità che non mi servono ma voglio avere per diletto (e questo comprende anche la schiera biblica e lucrosa dei videogiochi), senza sbattimenti. I negozi vendono prodotti per windows, dai siti internet si scaricano programmini e accessori per windows, haimè, illegalmente si scaricano e si crakkano programmi per windows (è immorale ma la disponibilità di programmi crakkati rientra nelle considerazioni di moltissime persone, non si può semplicemente ignorare il problema).

    Torniamo a noi. Questa schiera di possibilità che windows offre all'utente non è frutto di una intrinseca superiorità del sistema operativo ma di una politica di standardizzazione che certamente obbliga ad una serie di compromessi al ribasso ma d'altra parte fa si che chiunque, sia esso un programmatore in erba o una multinazionale dell'intrattenimento possa sviluppare un qualsiasi prodotto nella consapevolezza che funzionerà dappertutto, senza che l'utente debba ricompilarsi nulla, ne smanettare da nessuna parte.

    Sono d'accordo che la ricchezza e la varietà delle distribuzioni sia un punto di forza di linux e non una debolezza, ma forse accanto ad iniziative encomiabili come wine bisognerebbe iniziare a pensare e a programmare all'insegna dell'interoperabilità tra di noi oltre che dell'interoperabilità con l'esterno. Ci vorrebbe una piattaforma standard e stabile nel tempo che permetta alle software house di fornire agli utenti desktop alternative vere per programmi che difficilmente possono essere sviluppati senza avere alle spalle un fiume di cash che i modelli virtuosi dell'economia open non sono ancora in grado di generare, e mi riferisco a produzioni faraoniche come gli ultimi final fantasy, autocad e photoshop (anche se va detto che qui GIMP ha quasi recuperato).

    Servirebbe una piattaforma che non costringa le software house a fare delle modifiche troppo radicali, perchè se devo spendere una cifra anche modesta per adattare il mio software a una fetta di mercato troppo piccola probabilmente mi farò due conti in tasca e mi risparmierò la fatica… e a quella fetta di mercato continuerà a mancare il software… e continuerà ad essere piccola… e io continuerò a non produrre per lei i miei software. E un circolo vizioso e il primo passo per spezzarlo è mettere un po' di ordine nell'anarchia che ci divide.

    Daniele

  • Duality

    Io sono contrario alla limitazione della possibilità di configurazione dell'interfaccia.
    Secondo me la scelta più corretta è quella di dare al programma delle impostazioni di default quanto più usabili possibili e permettere comunque una radicale personalizzazione se l'utente ne ha voglia.

  • http://Punto5dellecosedaNONfare Di ME

    dovrebbe essere tatuato a fuoco addosso agli sviluppatori di Gnome cosi’ che se ne ricordino bene :D

  • Alex

    Io ho abbandonato Windows XP, tantando un ritorno a Windows 2000, per poi scoprire Linux e restarci definitivamente (è il mio unico e solo OS installato sia a casa che in ufficio), proprio perché era pensato per idioti. Dovesse diventarlo anche Linux, migrerei verso FreeBSD.
    Mi sta bene se il software inizia a diventare più semplice da usare. Mi sta meno bene se per diventare semplice deve limitare la libertà di chi vuole fare le cose complicate o in modo più complicato (ma potente).

    Tanto per buttare li un esempio: la shell. Toglietela e avrete un Linux semplice, ma che non vale più niente.
    Aggiungete ai suoi tool una GUI (aggiungete, non sostituite i suoi tool con un tool grafico), e avrete fatto contenti tutti.

    Spero di essere stato il più chiaro possibile.

  • lightuono

    Bravo Alex ti quoto alla grande!!!  :D

  • http://leodav.altervista.org leo

    Sono uno sviluppatore e per esperienza ho capito una cosa:
    quando il cliente ti chiede una cosa semplice semplice che, caso mai, dovrebbe fare solo e soltanto una cosa, allora è la volta che l'applicazione che uscirà alla fine sarà mostruosamente complicata da usare e ancora di piu' da gestire.
    Piu' le cose appaiono semplici piu' sono complicate da realizzare!
    Avete presente il cerchio di Giotto?

  • riva.dani

    Tutto vero, ma spesso non si seguono queste linee guida per il semplice motivo che manca il presupposto iniziale: non tutti i programmatori desiderano che il proprio software sia reso più “umano”. Ed in alcuni casi hanno ragione. ;)

  • riva.dani

    PS: Mi permetto di aggiungere una cosa: il concetto di semplicità ultimamente è sempre più stravolto. Innanzitutto molti pensano che Linux è difficile perchè diverso da Windows: niente di più falso, prima di imparare Linux occorre disimparare le (buone e cattive) abitudini che Windows ci ha inculcato. In secondo luogo credete davvero che gli “smanettoni” siano stupidi e masochisti? Vediamo un esempio: l’installazione di un programma, ad esempio pidgin. Secondo voi è più semplice.

    1) Aprire un terminale >> Digitare (o copiare/incollare da una qualunque guida) “sudo apt-get install pidgin” >> Invio >> Digitare S per autorizzare l’installazione delle dipendenze >> Invio

    2) Aprire Synaptic >> Cliccare sul pulsante “Cerca” >> Digitare “pidgin” nel campo di ricerca >> Dare Invio >> Individuare tra i (nel mio caso) 9 pacchetti che corrispondono a tale chiave di ricerca quello con nome “pidgin” >> Cliccare col destro su detto pacchetto >> Scegliere dal menu contestuale la voce “Marca per l’installazione” >> Cliccare sul pulsante “Marca” della finestra che compare per autorizzare l’installazione delle dipendenze >> Cliccare sul pulsante “Applica” della barra dei menù di Synaptic >> Cliccare su OK per conferma definitiva (la accendiamo?)

    Non è un’esagerazione, ma esattamente il risultato di una semplice prova che ho svolto mentre compilavo questo post. ;)
    Ora ditemi se veramente la GUI è più intuitiva della shell. 0_o