Set 122014

programmmingSchemaIl concetto di quest’articolo è tutto racchiuso nel suo titolo.
Ti impegni nei confronti di qualcun altro nel realizzare un qualcosa entro certi termini.
Di solito questi termini temporali sono settimane se non mesi.

E’ facile immaginare che l’impegno di una persona per diverse settimane o mesi ha un costo, se questa persona è un libero professionista deve fare un corretto preventivo per non rischiare di trovarsi a lavorare molto di più di quello per cui è pagato. Se invece è il dipendente di un’azienda, l’azienda deve capire, anche se sembra banale, che il lavoro di quella risorsa ha un tempo di occupazione della stessa.
Inoltre quando ci si impegna nel realizzare un software in un qualche modo ci si compromette e bisogna stare molto attenti a come ci si compromette.
In molti lavori il lavoro è pagato per il tempo impiegato a svolgerlo (vedi artigiani), per il prodotto che si vende (vedi commercianti), o per le conoscenze acquisite con la propria formazione (vedi avvocati, medici o consulenti).
La produzione di software ad-hoc invece prende il peggio perché:

  • Viene pagato per il tempo impiegato alla realizzazione del software (come gli artigiani)
  • Richiede la formazione per acquisire competenze ed aggiornamento continuo (come i medici, avvocati ecc…)
  • Il software una volta realizzato non vive di vita propria (come nessun altro)

Quest’ultimo punto è il più grande motivo per cui ci si compromette.
Un software ha:

  • dei bug che vengono scoperti nel tempo e vanno riparati
  • soffre di malfunzionamenti che dipendono dall’evoluzione degli strumenti in uso e non strettamente dal software stesso. Esempio l’aggiornamento di un browser, di un sistema operativo, aggiornamenti di sicurezza di librerie in uso ecc… possono rompere il software realizzato.
  • soffre di malfunzionamenti che dipendono dal variare del numero di persone che lo utilizzano.
    Esempio funziona benissimo con 100 utenti e non funziona con 10.000 utenti perché va tarato sull’uso.

Quindi quando ci impegnamo a realizzare un software dobbiamo sapere: o che questo avrà vita limitata (esempio 1-3 anni) oppure dobbiamo prepararci a sostenerlo a vita sapendo che da un momento all’altro può smettere di funzionare qualcosa.

Quindi non solo è difficile (=costoso) realizzare un software, ma anche mantenerlo vivo è difficile (=costoso).

Perché sollevo questa questione ?
Perché credo che il software non vada prodotto per tentativi.
Voi fareste un lavoro che richiede un grande impegno, studio e concentrazione (quindi che succhi una gran parte della vostra vita nei prossimi mesi) basato su un’idea che è più estemporanea invece che pianificata, studiata con un business plan (quindi con un modello di business) ed uno studio (REALE) di mercato ?
Quando arriva il pinco pallo che ti propone di fare un nuovo Facebook o un nuovo sistema intelligente che vi viene da pensare ?

Per questo credo che è bene essere molto selettivi con i propri clienti, in fondo non è solo il cliente che investe dei soldi, ma anche chi realizza il software sta investendo il proprio tempo in quel cliente (ed in quel progetto/prodotto) e credo fermamente che alla fine questo faccia la differenza tra chi produce valore e chi semplicemente si limita a retribuire il tempo speso (sprecato).

 

Lascia un commento