Sviluppo software

Come chiedere un preventivo per lo sviluppo di un software personalizzato?

Scegli sempre il cammino che sembra il migliore anche se sembra il più difficile: l'abitudine lo renderà presto piacevole.

— Pitagora

Se hai letto tutti gli articoli di questa serie, avrai capito che il software su misura è una scelta difficile, ma è la scelta giusta. Non ti rimane che chiedere un preventivo a varie software house per decidere a chi affidare lo sviluppo del tuo progetto.

Se invece non sai bene quale software scegliere ti conviene prima leggere gli articoli precedenti:


Stabilire un budget#

Per prima cosa devi capire qual è il budget a tua disposizione. Il modo migliore è pensare al valore del software che stai per commissionare.

Già, perché il software ha un valore intrinseco che va oltre il solo costo per produrlo.

Per capire quanto vale il software bisogna fare due conti e rispondere a queste domande:

  • l'utilizzo di questo software nella mia azienda quanto tempo mi farà risparmiare all'anno?
  • l'utilizzo di questo software quanto mi farà guadagnare all'anno?
  • l'utilizzo di questo software che errori (costi) mi farà evitare?
  • l'utilizzo di questo software che benefici porterà alla mia azienda?

Per fare un esempio, se consideriamo un costo orario per dipendente di 16 euro e il nuovo software mi farà risparmiare almeno 2 ore al giorno per ogni dipendete, già con due dipendenti avrò un risparmio annuo di 16'000 euro in forza lavoro.

Tempo che potrà essere impiegato in altre attività determinando di fatto una crescita dell'azienda.

Se invece si tratta di un nuovo servizio a pagamento che l'azienda offre ai suoi clienti, per fare un esempio, con un ricavo di 20 euro/mese per cliente, già con 100 clienti l'azienda guadagnerà 24'000 euro/anno.

Un altro esempio potrebbe considerare il risparmio dovuto all'azzeramento degli errori umani. Ad esempio nel caso di un corriere espresso che lavora 300 spedizioni al giorno con una media di 3 pacchi ciascuna e ipotizzando un errore medio di 0.1 euro a pacco, su una base annuale sono 22'500 euro di errori risparmiati.

Se invece pensiamo a un software che popola un database di immobili all'asta prendendo i dati dai siti pubblici dei vari tribunali il risparmio è addirittura miracoloso, basta fare due conti. Su una regione come la Lombardia ci sono circa 5000 immobili all'asta. Per copiare tutti i dati e mantenerli aggiornati di mese in mese serve almeno un dipendente a tempo pieno. Se consideriamo il lavoro per tutte le regioni italiane il numero di dipendenti sale a 20. Tutto questo lavoro potrebbe essere automatizzato da un software che nel giro di una settimana copia tutti i dati. Un bel risparmio.

Stabilire una soluzione percorribile#

In base al budget calcolato al passo precedente è possibile già stabilire se c'è la possibilità di commissionare un software su misura.

Ad esempio se per il tuo lavoro utilizzi già due software a pacchetto che ti soddisfano, come un software specifico per la tua attività e un software generico per la fatturazione, allora con un budget dai 2'000 ai 4'000 euro è possibile realizzare un connettore software che mantenga sincronizzato il database di un software con il database dell'altro.

Oppure potrebbe essere che utilizzi un software generico per la fatturazione che ti soddisfa, ma avresti bisogno di una soluzione aggiuntiva pensata per gestire gli aspetti chiave del tuo lavoro. In questo caso si può pensare ad una soluzione verticale sviluppata appositamente per te, da affiancare al software per la fatturazione che già utilizzi. Il budget in questo caso va dai 5'000 ai 15'000 euro.

Infine potresti volere una soluzione unica che copra tutti gli aspetti del tuo lavoro, sviluppata completamente su misura. In questo caso il budget parte dai 15'000.

Vale anche l'approccio incrementale che parte sviluppando un sottoinsieme di funzionalità "core" che vengono estese in rilasci successivi. Il software su misura infatti è un software che evolve a seconda delle esigenze dell'azienda.

Analizzare i requisiti#

Per capire quali sono i requisiti del software bisogna aver chiaro come funziona un'azienda da un punto di vista informatico.

Abbiamo approfondito questo argomento nell'articolo Cos'è un software gestionale?.

In sintesi, un'azienda svolge una serie di attività con lo scopo di creare un profitto. Ogni attività svolta da un'azienda prevede l'annotazione di informazioni, la produzione di documenti e l'esecuzione dell'attività stessa. Più attività svolte una dopo l'altra danno vita a un flusso di lavoro.

Mappando i flussi di lavoro è possibile far emergere le criticità e le attività che sarebbe possibile automatizzare.

Tenendo presente i requisiti generali (sicurezza, stabilità, affidabilità, usabilità e performance) e seguendo il flusso delle attività nella tua azienda devi chiederti:

  • quali informazioni vanno registrate?
  • come vanno registrate?
  • quando vanno registrate?
  • da chi vanno registrate?

Dopo questa analisi dovresti avere le idee più chiare ed essere pronto per chiedere il preventivo.

Richiesta di preventivo#

Innanzitutto è molto importante esplicitare gli obiettivi che vuoi raggiungere. Di seguito elenchiamo alcuni esempi di tipi di obiettivi che puoi voler raggiungere. Parlo di tipi in quanto sono generici. Nel tuo caso devi indicare degli obiettivi reali e specifici.

  • Automatizzare attività ripetitive (es. sincronizzare l'anagrafica Clienti tra due database, estrarre delle informazioni di interesse da un sito web e salvarle in un database, inviare un'email ogni volta che si verifica una scadenza o un evento particolare);
  • Semplificare dei processi complessi
  • Eliminare la carta (rapporti d'intervento, preventivi, ecc.) o tecnologie inadatte (es. fogli Excel, database Access, ecc.)
  • Avere i dati sempre disponibili (es. catalogo Prodotti sempre aggiornato per gli Agenti, fruibile da smartphone o tablet via connessione Internet)
  • Offrire un nuovo servizio
  • Ridurre al minimo l'errore umano (es. controllo di correttezza e coerenza dei dati inseriti)

In secondo luogo vanno elencati i flussi operativi che si vogliono gestire. Es.:

  • "il nostro Agente contatta il Clienti e gli fa un'Offerta. Se il Cliente accetta creiamo un Ordine Produttivo e realizziamo il Prodotto. Consegniamo il Prodotto al Cliente e emettiamo una Fattura. A fine mese calcoliamo il compenso per l'Agente e lo saldiamo."
  • "L'utente si registra, fa la login e acquista del credito che gli consentirà di fruire del servizio che offriamo. All'acquisto gli verrà automaticamente recapitata la fattura con un'email all'indirizzo che ha utilizzato per registrarsi."

Nella descrizione di ogni singolo flusso operativo è molto importante capire chi fa cosa e su quali dati. A tal proposito è utile elencare chi sono gli attori coinvolti nel flusso (es. Tecnico, Agente, Cliente, Personale Amministrativo, ecc.) e i dati su cui operano (es. Rapporti d'Intervento, Ordini, Fatture, ecc.). Ricordati inoltre di elencare tutti i flussi: sia quelli dell'utente finale sia quelli dell'amministrazione (es. per un sito di e­commerce è importante indicare non solo il processo di acquisto da parte del visitatore del sito, ma anche tutta l'attività di backoffice che deve essere svolta per far funzionare l'e­-commerce, come l'inserimento di nuovi prodotti, l'inserimento dei prezzi, la fatturazione, ecc.).

Poi vanno elencate le funzionalità che il software deve implementare per consentirti di gestire i flussi operativi e di raggiungere i tuoi obbiettivi. Alcuni esempi possono essere:

  • Calcolo del prezzo in base alla formula (x + y) / z
  • Stampa della fattura in PDF
  • Invio di un'email alla scadenza dell'appuntamento
  • Ricerca degli articoli in base al codice
  • Esportazione dei dati in formato Excel
  • Importazione dei dati in formato CSV
  • Ricezione del pagamento tramite PayPal
  • Condivisione con Facebook
  • Iscrizione alla newsletter

Quando descrivi il software su misura che hai in mente ricordati la seguente affermazione: ogni settore ha le proprie particolarità che all'interno del settore vengono date per scontate, ma non è detto che siano note a chi dovrà sviluppare il software. In altre parole non è detto che la software house che creerà il software conosca in modo approfondito il dominio applicativo dell'azienda, ma per fare la stima corretta è necessario che venga istruita da chi lo conosce.

Inoltre, durante la stesura di obbiettivi, flussi operativi e funzionalità, cerca sempre di essere il più preciso e concreto possibile.

Altre informazioni che possono aiutare la fase di stima sono:

  • una descrizione di software analoghi e la spiegazione del perché non aderiscono perfettamente alle attività dell'azienda;
  • un'indicazione dell'importanza di ogni caratteristica richiesta. A titolo di esempio ad ogni caratteristica si potrebbe dare una scala di valori del tipo: necessaria/fondamentale, utile/gradita, opzionale, da valutare.
  • eventuali prototipi per spiegare i concetti più complessi, magari realizzati con fogli di calcolo;
  • esempi, anche in forma cartacea, dei documenti che il software dovrebbe produrre come ad es. stampe, report, ecc.

Con queste informazioni la software house sarà in grado di fare un preventivo puntuale e preciso.

Elementi di costo in un software gestionale#

Per alcuni settori dello sviluppo software, prima ancora di richiedere un preventivo è possibile farsi un'idea di quanto costerà la soluzione richiesta.

Fare un'analisi di costo presunto può essere utile per capire dove si annidano i costi e per ottimizzare la richiesta di preventivo. Gli elementi di costo dipendono principalmente dal tipo di software e dal livello di specializzazione della software house.

Facciamo un esempio con la richiesta di un software gestionale ad una azienda specializzata nella realizzazione di software gestionali web su misura.

La software house per fare il preventivo seziona le richieste negli elementi costitutivi che possono essere:

  • Griglie: sono gli strumenti che ti consentono di visualizzare, filtrare, ordinare i dati organizzandoli per colonne (o campi) e righe (o record). I dati di una singola riga di una griglia possono essere modificati con una maschera di manutenzione. Esempi di griglie possono essere: Clienti, Ordini, Preventivi, Fatture, ecc. Alcune anagrafiche vengono realizzate con due griglie come ad esempio le fatture: una griglia per le testate delle fatture e una per le righe delle fatture. Il costo di una griglia dipende dal numero di campi o colonne che prevede, solitamente una quindicina. Ai fini del costo di sviluppo non importa invece il numero di righe o di record che avrà la griglia.
  • Stampe: sono gli strumenti che ti consentono di impaginare i dati per stamparli o presentarli in un formato professionale. Ai fini dei costi una stampa va intesa come un "layout di stampa" o un "modello di stampa". Ad esempio se il software deve prevedere due modelli di stampa per le fatture, verranno conteggiati come due stampe effettive, anche se i dati sono molto simili perché il costo sta nella realizzazione del modello di stampa. Può esserci anche il caso in cui un'unica stampa sia composta da tre impaginazioni diverse o tre sezioni. Un esempio potrebbe essere la stampa di un preventivo in campo edile, che è composta da una sezione iniziale con i dettagli di materiali e manodopera una sezione con il riepilogo dei centri di costo e le pagine di chiusura con le modalità di pagamento e il frontespizio. In questo caso la stampa è sempre una, ma verrà conteggiata come 3 modelli di stampa per via delle tante sezioni di cui è composta.
  • Esportazioni: sono gli strumenti che ti consentono di esportare i dati per elaborarli ad esempio con Excel o altri fogli di calcolo. In questo caso il costo di sviluppo dipende dal numero di griglie esportate. Esempi di esportazioni possono essere: esportazione dell'anagrafica clienti, esportazione dei dati di riepilogo delle fatture, ecc.
  • Importazioni: sono gli strumenti che ti consentono di popolare i dati del tuo applicativo a partire da fonti esterne come fogli Excel o altri sistemi. Un singolo file da importare può contenere più tipologie di dati. Ad esempio un file potrebbe contenere i dati dei clienti, i dati di testata dei preventivi e le righe dei preventivi. Importare un file come quello descritto nell'esempio avrebbe un costo pari a tre volte il costo di importazione, perché vengono importati dati che finiscono in 3 griglie separate.
  • Integrazioni: sono gli strumenti che ti consentono di far comunicare il tuo applicativo con sistemi hardware o software di terze parti. Esempi come invio di SMS con un gateway esterno, login tramite Facebook, sincronizzazione degli eventi con Google Calendar, ecc. sono tutte integrazioni. Per loro natura sono difficili da stimare perché richiedono un minimo di analisi degli strumenti messi a disposizione dalla terza parte. In questi casi viene dato solitamente un costo medio.

Esistono poi delle funzionalità trasversali che incidono in forma percentuale sul preventivo:

  • Mobile: La funzionalità mobile consente alla tua Web Application di poter essere visualizzata sullo schermo di un tablet o di uno smartphone. Ciò comporta che tutte le schermate dell'applicativo siano adattabili alla dimensione dei diversi schermi dallo smartphone al desktop. Quindi ad esempio una visualizzazione a griglia su un computer desktop, si deve trasformare in una visualizzazione a lista sullo schermo di uno smartphone. Inoltre ogni interazione deve prevedere sia l'uso con tastiera e mouse, ma anche l'utilizzo con gli schermi touch di tablet e smartphone. Per questo motivo la funzionalità mobile aggiunge un aumento di complessità trasversale a tutto il software gestionale.
  • App: La funzionalità app estende il concetto di Mobile aggiungendo al gestionale web anche una versione "impacchettata" sotto forma di App nativa per iOS/Android che viene resa disponibile sui rispettivi store Apple Store e Google Play. Prerequisito è la funzionalità Mobile, ma non basta perché in aggiunta vanno adottati tutta una serie di accorgimenti, anche lato web server, che comportano uno sforzo ulteriore a cui va aggiunto il procedimento di invio e approvazione della App da parte dei singoli store.

Scelta della software house#

È l'ultimo scoglio e forse il più delicato.

Puoi procedere come segue:

  • Per prima cosa fai una ricerca di aziende specializzate nello sviluppo di software su misura del settore di tuo interesse. Ad esempio se cerchi un CAD su misura cerca aziende che abbiano già realizzato soluzioni CAD su misura, se invece è più simile a un software gestionale allora cerca una software house che sviluppi applicativi gestionali e web application, ecc.
  • Subito dopo cerca di capire quali sono le tecnologie che utilizzano. Usano tecnologie datate o sono al passo con i tempi? Sviluppano tutto da zero? Usano un framework generico? Utilizzano un framework specifico per il tipo di software che serve a te? Usano il META-Sviluppo RAPIDO?
  • Nelle fasi iniziali di richiesta preventivo o richiesta spiegazioni sono trasparenti? Parlano la tua lingua o si esprimono in modo criptico con acronimi e tecnicismi? Comunicano in modo chiaro, sanno ascoltare o vogliono venderti solo il loro software?
  • Che esperienza hanno? Hanno già realizzato soluzioni su misura? Ti possono mostrare esempi di software già realizzati? Ti possono fornire dei filmati per mostrarti come potrebbe apparire il software una volta realizzato?

Ti suggeriamo di seguire i passi descritti, solo così potrai identificare la giusta software house per il tuo progetto, e ricorda: nella scelta del software su misura non stai valutando un prodotto, ma le persone che lo realizzeranno.

Se ti sei perso gli altri articoli di questa serie sulla scelta del software li trovi qui di seguito:

Autore: Giovanni Chiodi
Senior software developer con più di 13 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Lorenzo.

Che soluzione cerchi?#

Read more!

Newsletter

Ti è piaciuto questo articolo? Iscriviti alla newsletter

Di tanto in tanto pubblichiamo nuovi articoli come questo. Se vuoi essere avvisato lascia il tuo indirizzo e-mail di seguito.

Non invieremo mai SPAM e non condivideremo la tua e-mail con altri. Per maggiori informazioni consulta la privacy policy.

Attendere prego...

closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharearrow upwardIcona arrow upward