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 agli 8'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.

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.

Per fare un esempio, un flusso tipico di un'azienda di produzione è composto dalle seguenti attività:

  • un cliente richiede la fornitura di una certa quantità di prodotto;
  • l'azienda recupera il prodotto dal magazzino;
  • l'azienda consegna il prodotto al cliente;
  • l'azienda emette la fattura di vendita al cliente;

Il flusso precedente è chiamato spesso ciclo attivo o ciclo delle vendite. In modo simile e speculare esiste il ciclo passivo o degli acquisti.

Come è facile intuire ogni attività per essere svolta nel modo giusto necessita di ricevere una serie di informazioni in ingresso e produrre una serie di informazioni in uscita.

Nell'esempio precedente, per decidere quanti prodotti prelevare dal magazzino, è necessario conoscere i dati dell'ordine del cliente e sapere la giacenza di magazzino per gli articoli che si devono prelevare. Inoltre, una volta prelevati gli articoli, è necessario registrare che questi non sono più presenti. Se a seguito del prelievo, la scorta dell'articolo è scesa sotto una certa soglia si potrebbe decidere di avviare la produzione o il riordino. Una volta prelevato il prodotto per consegnarlo al cliente, potrebbe essere necessario recuperare l'informazione sull'indirizzo della sede del cliente a cui spedire la merce.

Come è facile intuire le informazioni da raccogliere e aggiornare diventano ben presto molte e per svolgere ogni attività è necessario recuperarle velocemente. Deve cioè essere possibile effettuare delle ricerche per rispondere a delle domande, es:

  • qual è la sede del cliente?
  • qual è la giacenza di magazzino dell'articolo?
  • qual è il prezzo di vendita dell'articolo?
  • ecc.

Tutti questi dati potrebbero essere registrati su carta, ma ciò renderebbe lenta la loro ricerca e tutte le operazioni a loro collegate. Ad esempio per emettere una fattura si dovrebbero ricercare a mano i dati del cliente e ricopiarli sulla fattura facendo attenzione a non commettere errori.

Ben presto il tempo dedicato a sbrigare queste attività secondarie supererebbe il tempo di svolgimento della reale attività oggetto del business.

Il compito del software gestionale è quello di semplificare e velocizzare lo svolgimento di queste attività secondarie, ma necessarie.

Quindi ricapitolando si può dire che un software gestionale è uno strumento che ha il compito di semplificare e velocizzare la rilevazione dei dati legati alle attività svolte da un'azienda con l'obiettivo di fornire risposte necessarie ad altre attività in tempi rapidi.

Perché il software gestionale sia funzionale all'azienda devono essere vere le seguenti affermazioni:

  • il software gestionale deve consentire di rilevare in modo semplice e veloce i dati di ogni attività. Ad esempio si potrebbero usare delle interfacce touch screen posizionate direttamente nel luogo di produzione per consentire la rilevazione dei dati direttamente sul campo. Oppure si potrebbe decidere di utilizzare dei lettori di codici a barre per inserire più velocemente e con meno errori i dati di interesse.
  • il software gestionale deve permettere di recuperare in modo veloce e facile i dati di interesse. Devono quindi essere presenti strumenti di navigazione che permettano di ricercare le informazioni in modo piatto (es. ricerca libera nella descrizione degli articoli), gerarchico (es. partendo da un cliente a cascata visualizzare tutti i suoi ordini, tutte le fatture che sono scaturite da ordini ecc.), aggregato (es. visualizzare il cliente più redditizio, il fatturato del mese scorso, ecc.) o statistico (visualizzare il prodotto più acquistato, visualizzare l'accessorio più richiesto da una classe di clienti, ecc.).
  • il software gestionale deve facilitare i processi. Ad esempio deve essere facile convertire un ordine in una fattura. Oppure deve essere possibile richiamare sulla testata di una fattura i dati del cliente dall'anagrafica, senza doverli reinserire ogni volta.
  • il software gestionale deve prevenire e segnalare gli errori. Ad esempio deve avvisare l'utente quando l'IBAN, la partita IVA o il codice fiscale di un cliente non è valido, oppure quando la fattura che si sta salvando non ha righe ecc.
  • il software gestionale deve fornire delle procedure di importazione ed esportazione dati. Ad esempio deve essere possibile esportare i flussi RiBa da importare sulle banche o importare gli esiti RiBA dei pagamenti ecc.
  • il software gestionale deve adattarsi come un guanto ai flussi di lavoro, alle attività e al loro cambiamento nel tempo. La terminologia usata dal software e la sua strutturazione deve essere uguale a quella dell'azienda. Ogni aspetto dell'azienda come ad esempio la logistica, il magazzino, la produzione, la distribuzione, le vendite, i rapporti tra i clienti e i fornitori e gli acquisti deve essere coperto e supportato dal software. Questo comporta che ci deve essere tutto ciò che serve, ma nulla di più. Le funzionalità inutili creano confusione, rallentano il proprio lavoro e sono causa di errori.

Tenendo presente i requisiti generali sopra descritti 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 obbiettivi che vuoi raggiungere. Di seguito elenchiamo alcuni esempi di tipi di obbiettivi che puoi voler raggiungere. Parlo di tipi in quanto sono generici. Nel tuo caso devi indicare degli obbiettivi 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.

Ogni software house può applicare costi diversi ai precedenti elementi, noi ad esempio abbiamo il nostro tariffario: https://www.gardainformatica.it/gestionali-web-personalizzati#preventivo.

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?
  • 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:

Votazione pagina#

[Voti: 22 Media voto: 4.3/5]
Autore: Giovanni Chiodi
Senior software developer con più di 10 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.

Promemoria sui Cookie e sulla Privacy

Leggi l'informativa
closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menu