Cosa devi sapere prima di richiedere un preventivo ad una software house
Quando si vuole dare il via ad un progetto di sviluppo software, che si tratti di concretizzare una nuova idea di business o di realizzare un software per automatizzare un processo, oppure ancora con l'obiettivo di andare a copiare le funzionalità di altri software per rielaborarle e inserirle all'interno di una nuova piattaforma, è importante considerare che la realizzazione di un prodotto digitale è sempre un'attività che deve essere immersa in un contesto più ampio. È importante capire che il software non rimarrà mai un'entità isolata, ma dovrà agire inevitabilmente in concerto con tutti gli altri processi e le altre aree aziendali. Ad ogni step della realizzazione bisognerà fare in modo che il prodotto si integri all'interno della struttura aziendale e tale attività di integrazione non è opzionale, ma è un passaggio obbligato.
Pertanto quando decidi di rivolgerti ad una software house per un progetto di sviluppo, dovresti tenere sempre a mente che questa attività rappresenta un percorso scandito dalla stretta collaborazione tra cliente e fornitore. Puoi vedere la realizzazione di un software come un cammino in cui la software house, ovvero il partner tecnico, ricopre il ruolo di guida anche solo per per un breve tratto. Dopo un certo periodo la software house potrebbe non servirti più, potresti essere in grado di muoverti da solo con nuovi sviluppatori, nuovi architetti del software o addirittura con un'altro fornitore, ma in ogni caso il cammino può essere anche molto lungo e che inevitabilmente ti porterà molto lontano, è un cammino che può durare anni.
In un tale contesto il software potrebbe rappresentare il cuore del business che andrai a costituire oppure potrebbe essere un validissimo e fondamentale tool di supporto per migliorare la produttività, gli scenari sono infiniti. Però il cammino, per quanto sia lungo, almeno per il tratto iniziale deve essere fatto in due, si tratta del processo naturale di ogni progetto di sviluppo.
Spesso si commette l'errore di rivolgersi a una software house con un'idea ancora un po' vaga o al contrario con una visione già estremamente definita. Può capitare che un'azienda dopo aver prodotto una serie di dettagli, di specifiche, di schermate e di flussi arrivi dalla software house richiedendo la mera esecuzione di quanto è stato progettato e aspettandosi di riceve una quotazione precisa per tutto il lavoro. Questo è un errore, perché quando la software house viene esclusa dal processo decisionale si inizia la fase di sviluppo su fondamenta molto fragili. Il partner tecnico dovrebbe essere sempre coinvolto nella fase do progettazione, non perché l'idea di base sia sbagliata, superficiale o eccessivamente elaborata, ma perché in caso contrario si sta iniziando il percorso in solitaria evitando di estrarre il vero valore della software house. Per cui se decidi di andare a sviluppare in autonomia il tuo progetto delegando solo la parte operativa al partner tecnico, quest'ultimo non conoscerà il contesto in cui è immerso il progetto e l'output finirà per essere incompleto.
Al contrario sarebbe un errore anche delegare completamente tutta la parte di progettazione, disinteressandoti completamente delle decisioni prese dalla software house perché in questo modo non ci sarebbe condivisione e finiresti per trovarti con un prodotto che non è esattamente ciò ti aspettavi e che non risponde quindi alle tue esigenze. Riassumendo, il percorso va fatto in due e deve essere caratterizzato da una stretta collaborazione tra cliente e software house. Come muoversi quindi in questo territorio estremamente instabile? Come dovrebbe comportarsi e cosa dovrebbe sapere un'azienda prima di rivolgersi ad una software house? Per riuscire ad orientarsi in questo mondo il cliente dovrebbe porsi cinque domande fondamentali.
Qual è la mia vision?
La prima solida certezza che bisogna avere riguarda il punto di arrivo. Dove voglio arrivare intraprendendo questo cammino? Dove voglio essere da qui a un paio d'anni, o forse di più? Sembra una domanda banale e anche un po' fastidiosa, ma quella che in gergo business viene chiamata Vision aziendale, è estremamente importante in ambito di sviluppo software perché ti fa capire in che modo dovrai compiere il primo passo. È però fondamentale che, una volta individuata la risposta, questa informazione venga condivisa con il partner tecnico perché in base a dove vorrai essere alla fine del percorso, a dove prevedi che ti porterà il tuo cammino, è necessario compiere alcuni tipi di scelte piuttosto che altri. Potrai ad esempio adattare il percorso a quello che prevedi essere il ciclo di vita del prodotto o ai tempi di apprendimento dei dipendenti che dovranno utilizzare il software.
I prodotti digitali non hanno tutti la stessa durata, si possono fare diverse scelte come ad esempio sviluppare un primo prodotto a costo più basso (MVP) che poi potrà essere cestinato in favore di uno più robusto. Si tratta di decisioni importanti che devono essere prese all'inizio del cammino e che si fanno in base alla definizione di una destinazione ultima. Con questa consapevolezza puoi decidere quali sono gli aspetti fondamentali del software, cosa non deve mancare ora e cosa sarà necessario avere tra un anno. Tutte queste informazioni derivano esclusivamente dalla visione di dove si vuole andare e il successo deriva dalla condivisione di queste informazioni con la software house.
Quanta energia ho?
Sapendo dove vuoi arrivare, la seconda domanda che devi porti è legata alla quantità di energia, ovvero di budget di cui disponi oggi. Fin dove puoi spingerti dato il budget che hai ora a disposizione? Non è detto che questa energia sia sufficiente per arrivare direttamente all'obiettivo che ti sei preposto di raggiungere tra qualche anno. Probabilmente sarà necessario fare delle tappe intermedie ed è importante essere obiettivi nel fare questa analisi e altrettanto importante è condividere con i propri partner questa informazione. Spesso le aziende su questo punto si bloccano e vedono con sospetto la software house che chiede loro, prima di stilare un preventivo per lo sviluppo di un software, quale sia il budget a disposizione. Questo è comprensibile, è difficile e scomodo condividere un'informazione di tipo economico direttamente all'inizio di un processo di sviluppo perché la percezione è che ciò possa limitare le proprie capacità di negoziazione. La convinzione comune è che se ci si mette subito a nudo indicando qual è la propria capacità di spesa, allora è probabile che la software house poi chiederà effettivamente quella cifra per la realizzazione e pertanto la negoziazione verrà meno. Pensare in questo modo però è un errore che andrebbe evitato.
Tuttavia è fondamentale condividere questa informazione perché nel mondo del software esistono tantissime strade per raggiungere un singolo obiettivo oltre che tantissimi strumenti, tecnologie e metodi per accorpare diverse soluzioni. In quest'ottica sapere qual è il vincolo di budget è fondamentale per scegliere la strada giusta. Può essere che esista già un software sul mercato adatto a risolvere un determinato problema o tecnologie più economiche e funzionali che rispondono alle specifiche esigenze del momento. Non sempre è necessario reinventare la ruota e partire da un foglio bianco nella realizzazione di un software. Se l'azienda dispone di un budget ridotto ma non condivide questa informazione, la software house non avrà un metro di giudizio nel proporre la sua soluzione o peggio ancora potrebbe farsi un'idea errata del budget a disposizione. In questo modo è probabile che si perdano delle occasioni o che non si ricerchino delle strade che invece potrebbero risultare interessanti alla luce di questo dato.
Pertanto è fondamentale che su tantissime strade che esistono si scelga quella più appropriata in virtù della vision e dei vincoli del budget che si hanno a disposizione oggi.
Cosa posso fare oggi?
Una volta che avrai risposto alle prime due domande potrai già dire avere una certa consapevolezza, ma non basta ancora. Ora devi chiederti, sapendo quanto puoi spendere oggi e sapendo qual è la vision, cosa puoi fare tra il ventaglio di opportunità a tua disposizione. Tale quesito dà origine ad altre due domande: alla prima deve necessariamente rispondere il cliente mentre è compito della software house trovare una soluzione alla seconda.
Quali sono le funzionalità fondamentali che non devono mancare oggi?
Sapendo che il software sarà molto corposo tra diversi anni, oggi probabilmente conterrà un set di funzionalità più piccolo. Sarà necessario realizzarne una prima versione in linea con le energie odierne e sapere quali sono le funzionalità che non devono mancare è un processo importantissimo. Diventa fondamentale quindi definire la priorità dei diversi aspetti, dei diversi comportamenti, delle diverse funzionalità di cui il software deve disporre. Diventa necessario elencare questi diversi aspetti e stabilire per ciascuno una priorità, quindi creare una lista ordinata di cose che dovranno essere presenti all'interno del software al giorno uno.
Una volta elencate queste, sarà possibile definire una linea di demarcazione tra le funzionalità fondamentali e quelle aggiuntive, definita di comune accordo tra partner e cliente. Si definisce fin dove si deve arrivare e si stabilisce la linea che comprenderà le prime funzionalità lasciando le altre per un secondo momento.
Come raggiungo l'obiettivo?
La domanda a cui deve rispondere la software house date le informazioni finora ottenute, è: "Come raggiungiamo l'obiettivo?". Ed eccoci nuovamente al discorso relativo al budget: ci sono tantissime strade per raggiungere l'obiettivo, ora ci sono tutte le informazioni necessarie per trovare quella corretta. Da qui nasce un discorso puramente tecnico, a cui non deve rispondere il cliente, ma la software house. Il compito del cliente è quello di fidarsi del suo partner e vagliare tutte le proposte della software house.
Sai che vuoi raggiungere un certo obiettivo in un determinato lasso di tempo, sai che oggi hai un un certo quantitativo di energia prima di accamparti e ristorarti, sai a questo punto cosa vuoi fare con le sole cose che devono assolutamente essere presenti all'interno del software. Ora hai tutte le informazioni per capire, tra mille strade, qual è quella da raggiungere e quando fermarti in questa prima fase.
Estrarre valore dalla software house
Porti la serie di domande appena descritte è l'unico modo che hai per estrarre il vero valore di una software house che ricopra non solo il ruolo di fornitore, ma di tuo partner tecnico. Dare una risposta a tali domande non significa per forza scrivere un documento e condividerlo con la software house. Si tratta solamente di analizzare i punti salienti che vanno a descrivere il contesto. Contesto importantissimo prima di tutto perché ti permette di avere le idee più chiare e, allo stesso tempo, con queste informazioni la software house sarà in grado di fare un lavoro più ricco e più definito, più valido in base alle informazioni di contesto.
Pertanto se ti rivolgerai a un partner di sviluppo e questo, anche senza farti effettivamente queste domande, con un processo di estrazione delle informazioni cercherà di andare a capire questi aspetti, allora probabilmente ti troverai in presenza di un partner che sta effettivamente cercando di capire il contesto ed è molto più probabile che sappia alla fine fare un buon lavoro rispetto a quello del mero esecutore.
Riccardo Barbotti
Co-founder di BitBoss | Software Architect | Senior Developer