Mondi su mondi, sistemi di sistemi.

Facile, come bere un bicchier d’acqua

L’ultimo post di Brent Simmons, Anatomy of a fea­ture, è da leggere.

La richie­sta

Il punto di par­tenza è la sem­plice aggiunta di una nuova fea­ture in NetNewsWire: la pos­si­bi­lità di aggiun­gere il post che si sta leg­gendo a Instapaper. Ridotta all’osso, tutta la fac­cenda si tra­duce in una chia­mata http; una cosa che sa fare anche mia mamma, giusto?

Come le ciliegie…

No, per­ché ragio­nando intorno a que­sta fea­ture sca­tu­ri­scono tutta una serie di con­si­de­ra­zioni su ele­menti in qual­che modo col­le­gati che vanno valu­tati per il loro rap­porto costi/benefici.

Fatto que­sto, tutte le fea­ture di con­torno soprav­vis­sute al pro­cesso di sele­zione vanno imple­men­tate, richie­dendo molto più tempo della fea­ture prin­ci­pale, quella richie­sta dall’utente.

La lista della spesa

Quelle con­si­de­rate nell’articolo sono:

  1. sup­porto per account Instapaper multipli;
    • pos­si­bi­lità di aggior­nare i dati del pro­prio account;
  2. pul­sante dedi­cato nella barra degli strumenti;
  3. fun­zio­na­mento offline, sincronizzazione;
  4. inse­ri­mento delle cre­den­ziali per l’autenticazione;
  5. feed­back delle azioni;
  6. sup­porto per la sot­to­mis­sione di più pagine contemporaneamente;

I punti 1, 3 e 6 sono quelli che riguar­dano più da vicino gli aspetti fun­zio­nali, ma sono delle miglio­rie e sono stati scar­tati, tranne la pos­si­bi­lità di aggior­nare il pro­prio account Instapaper. Il punto 4 è invece indi­spen­sa­bile ed è stato con­si­de­rato come ele­mento a sé stante per­ché non era suf­fi­ciente riu­ti­liz­zare altri pezzi di GUI già disponibili.

Al lavoro

Poi tocca all’implementazione. Trattandosi di codice che lavora in rete la gestione degli errori è più lunga da scri­vere del codice vero e pro­prio; stessa cosa per la GUI delle cre­den­ziali; anche il feed­back dell’azione si rivela meno sem­plice del previsto.

Cosa abbiamo imparato?

Certo, non sem­pre le cose vanno così: a volte la richie­sta è vera­mente facile da sod­di­sfare. Non è nean­che pos­si­bile fare con­si­de­ra­zioni gene­rali sul rap­porto fra la quan­tità di lavoro spesa nelle parti ausi­lia­rie e quella nelle parti fon­da­men­tali. Ogni caso fa sto­ria a sé.

Sicuramente, però, pos­siamo dire che l’interazione con l’utente fa la parte del leone e con­ferma quello che ho visto anch’io in sva­riate occa­sioni. Inoltre, la cosa che mi fa sem­pre spe­cie è la dispa­rità fra il codice di sup­porto e quello operativo.

Domande, domande, domande…

Infine, non dimen­ti­chiamo che la fea­ture di par­tenza è molto cir­co­scritta e molto chiara. Quante volte capita di sen­tirsi fare richie­ste molto più nebu­lose? Quanti sono i pro­getti in cui si può dire di aver visto fare ana­lisi a que­sto livello di det­ta­glio lungo tutto il corso del pro­getto? È anche solo plau­si­bile pen­sarlo? Quali sareb­bero i costi? E quali sono i costi nel non farlo?

Per proseguire

Commenti e trackback sono disabilitati.