Condividi!

Costo di un sito web

 

Valutare il costo di un sito web non è affatto semplice. Si, lo so, questa è una cosa che ripetono tutti.
Ciò che invece molti non spiegano è perché valutare il prezzo di un sito web non è semplice senza prima aver effettuato una analisi approfondita del potenziale progetto.

Analisi dei requisiti

Al fine di stabilire il costo di un sito web, stilando un preventivo professionale e dettagliato, è infatti necessario effettuare l’analisi dei requisiti, la prima fase, cioè, nella realizzazione di un qualsiasi sito internet.

Stima dei costi

Le tipologie di costi estratte dall’analisi dei requisiti rientrano, in sostanza, in due macro gruppi:

  • Costi di acquisto: acquisto server host, dominio, database, immagini,  plugins a pagamento, template grafici, budget per campagne PPC ecc…
  • Costi di realizzazione: in sostanza, tutto ciò che rimane.

Oltre a questi, dovrete calcolare i costi fissi come corrente elettrica, acqua, metano, costi di licenza per i software, spalmati, è chiaro, in relazione soltanto a quella che sarà la presunta durata del progetto.

I costi di acquisto sono facilmente reperibili e calcolabili.
I costi di realizzazione, invece, richiedono la conoscenza di un parametro fondamentale: il tempo impiegato. Il costo di ogni singola operazione da realizzare, infatti, è calcolato come Tr * Ch, dove Tr sta per “tempo di realizzazione” e Ch sta per “Costo orario“.

Ecco un esempio molto semplice, che dimostra come calcolare i costi di alcune operazioni comuni. Chiaramente i dati di questa tabella sono del tutto fittizi!

Operazione Tr (Minuti) Ch Totale
Creazione layout e template sito 480 € 20,00 € 160,00
Creazione layout e emplate alternativo – Home Page 120 € 20,00 € 40,00
Creazione layout e emplate alternativo – I nostri prodotti 120 € 20,00 € 40,00
Integrazione tasti social network – Colonna sinistra 15 € 18,00 € 4,50
Integrazione tasti social network – Home Page 15 € 18,00 € 4,50
Creazione Form Contatti – Creazione campi e test mail 30 € 18,00 € 9,00

A questo punto sorge una domanda cruciale: come è possibile stabilire in anticipo il tempo di realizzazione di una specifica operazione ?! Come si arriva a stabilire che per l’operazione X sono necessari Y minuti di lavoro?

Stimare i tempi di realizzazione

Questa è, per ogni professionista, la parte indubbiamente più faticosa e, talvolta, difficoltosa.
Prima di passare ad analizzare in che modo vanno stabiliti i tempi di realizzazione di una determinata operazione, è bene sottolineare come vada evitato in modo categorico il comune errore di valutare questi tempi “ad occhio”. Perchè?
Provate ad immaginare di dover creare 50 pagine per un sito web. Il tempo da voi stimato in passato, ad occhio, è di mezz’ora circa. A breve vi renderete conto che il tempo necessario è, invece, di 40 minuti. Sembrano pochi 10 minuti, vero? Non lo saranno più nel momento in cui li moltiplicherete per il numero di pagine (50), perchè diventeranno 500, cioè circa 8 ore in più che, ad una tariffa esemplificativa di 20€/h, equivalgono ad €160.
Sbagliare, come in questo caso, la stima dei tempi di realizzazione di una una singola operazione del 30% circa, può risultare, in progetti a basso costo, come una perdita economica irrisoria ed al massimo “fastidiosa”, mentre in progetti medio-grandi potrebbe risultare in un fallimento economico catastrofico.

La stima del tempo di realizzazione di una specifica operazione è quantificabile attraverso:

  • L’esperienza: avendo effettuato una stessa operazione in passato, è possibile stabilire, mediamente, quanto tempo comporti realizzarla di nuovo.
  • I test: poichè l’esperienza può mancare (primi lavori, giovane età o offerta di un nuovo servizio semi-sconosciuto), è necessario effettuare dei test e ripeterli per diversi casi d’uso. Questo sistema, oltre a stabilire i tempi di realizzazione, vi darà l’opportunità di sviscerare il problema, creando un sistema che vi consenta di ripetere tale operazioni nel modo più rapido ed efficiente possibile.

In ogni caso, comunque, stabilire i tempi di realizzazione “a tavolino” richiede i seguenti steps:

  1. Studiare nei dettagli il servizio che si va ad offrire, creando un workflow specifico dove ogni singolo step del lavoro da svolgere viene isolato e “cronometrato”, all’interno di un ambiente di sviluppo che automatizzi le procedure ripetitive, evitando di dover reinventare continuamente la ruota.
  2. Eseguire tale workflow più di una volta su casi d’uso di test, basati, cioè, su eventuali richieste che potrebbero realmente provenire da un potenziale cliente. Così facendo si possono agevolmente superare le prevedibili incertezze iniziali, che sono proprie di ogni nuovo servizio o processo da affrontare.

Una volta effettuata la stima dei tempi di realizzazione delle singole operazioni, vi basterà sommarli ai costi fissi e riversare il tutto al’interno del vostro preventivo.

Un esempio

Un cliente invia una mail in cui dice:

“Ho bisogno di registrare un lunghissimo elenco di dati in un archivio, per poi poterli consultare, filtrare, esportare in formato excel ed inviare tramite mail, il tutto tramite accesso criptato.”

Si potrebbe pensare ad un lavoro semplice, quasi banale. Beh, sicuramente per uno sviluppatore medio lo è, ma ciò che per un professionista fa la differenza non è la difficoltà del lavoro da effettuare, quanto il tempo necessario a svolgerlo. I termini in corsivo indicano da subito una necessità di approfondire la richiesta.

L’equazione “lavoro facile = tempi rapidi” è quanto di più sbagliato vi possa passare per la testa!!

Facciamo un’analogia: l’architetto che progetta grattacieli da una vita troverà facilissimo progettare la struttura di una casa su due piani, ma questo non significa che impiegherà due misere ore per farlo o che non ci sia bisogno di ulteriori competenze specifiche. Inoltre, potrebbe essergli richiesto di progettare l’arredamento degli interni, ed anche se è un architetto non è detto che sappia esattamente da dove partire, poiché le mode ed i sistemi d’arredamento cambiano molto velocemente, cosa che potrebbe costringerlo a lavorare un paio di giorni per poter riallineare le sue conoscenze con quelle che sono le tendenze del mercato, o a servirsi (pagando) di un arredatore professionista.

Tornando all’orribile equazione “lavoro facile = tempi rapidi”, è fin troppo semplice per un professionista dimostrare che tale equazione è una palese idiozia, anche se in realtà, purtroppo, chi non fa questo mestiere pensa proprio che sia corretta!

Rileggete pure la frase del finto cliente di cui sopra. Se ne effettuiamo una analisi dei requisiti semiseria e parzialmente incompleta, granularizzando tutto ciò che ruota intorno a quella richiesta, giungiamo ad una lista di operazioni da effettuare per poter completare il progetto che va ben al di là della semplice richiesta stessa:

  • Piattaforma di base
    • Backend con menu
    • Form di accesso con nome utente e password
      • Link per il recupero o la modifica della password
      • Sistema di blocco dopo X tentativi
        • Logica e sistema di sblocco successivi
    • Gestione degli accessi
      • Tabella per la consultazione di utenti e permessi
    • Gestione dei dati
      • Tabella per il riepilogo dei dati
        • Logica per il filtraggio dei dati
        • Form per il filtraggio dei dati
        • Esportazione dei dati in excel
        • Invio dati tramite mail
      • Form specifico, di sola lettura, per la consultazione di un record specifico
        • Esportazione dei dati in excel
        • Invio dati tramite mail
          • Creazione template mail
            • Layout e Grafica
            • Dati
      • Una maschera per la consultazione dei dati
  • * Per tutti i form e le operazioni CU (Create – Update)
    • Creazione Form
      • Inserimento Dati
      • Aggiornamento Dati
      • Lettura Dati
    • Validazione degli input
    • Sanitizzazione degli input
    • Controllo dei diritti
  • Per tutto il progetto
    • Studio ed implementazione grafica di base
    • Testing delle singole funzionalità. Ecco alcuni use cases:
      • Invio mail
        • Fallito. Cosa fare?
      • Esportazione dati
        • Fallita. Cosa fare?
        • Incompleta. Cosa fare?
      • Inserimento/modifica dati
        • Validazione lato browser fallita. Cosa fare?
        • Javascript disattivato, browser obsoleto.
          Necessaria validazione lato server. 

          • Validazione lato server fallita. Cosa fare?
        • Sessione scaduta. Cosa fare?
      • Accesso al backend.
        • Fallito. Cosa fare?
        • Diritti insufficienti. Cosa fare?
      • ecc…
    • ecc…
  • ecc…

Bene, questa è solo una piccola lista, nemmeno troppo corretta od ordinata (pensate se lo fosse cosa potrebbe venire fuori…) di quelle che sono le operazioni che un sviluppatore di trova a dover affrontare per una richiesta che, apparentemente, sembra banale e dai tempi di realizzazione rapidi.
Nota bene: ho volutamente tralasciato, inoltre, molte altre operazioni, tra cui tutte le operazioni riguardanti il database (acquisto, configurazione, creazione della tabella e dei singoli campi, interfacciamento con il software) ecc…

Mi auguro che tramite questo esempio sia molto più chiaro come ad una semplice idea o richiesta da parte di un cliente, non necessariamente segua un lavoro altrettanto semplice ed immediato.

Una attenta analisi dei requisiti ed un breve brainstorming iniziale possono salvare interi progetti e, cosa ancora più importante, la vostra attività professionale.