L'imprenditore di ieri quando aveva bisogno di un nuovo prodotto o un nuovo servizio sondava il proprio network di conoscenze e si affidava ai consigli di conoscenti, amici, collaboratori ecc. La competizione globale ha cambiato le cose e quindi l'imprenditore di oggi oltre a seguire la prima strada deve assicurarsi che il prodotto o il servizio proposto siano di qualità e a prezzi vantaggiosi rispetto al mercato. Per fare questa valutazione si rende quindi necessaria una piccola indagine su Internet per cercare altri possibili fornitori e per fare un confronto con quelli identificati attraverso il passaparola.
Quando si cerca un'azienda su internet è importante utilizzare i termini di ricerca giusti. Nello specifico se si cercasse un'azienda che realizzi un software su misura bisognerebbe cercare qualcosa come: "Software House" oppure "Software Su Misura" oppure "Software Personalizzato".
Se poi vogliamo trovare un'azienda di sviluppo software che sia vicina a noi poiché si prevede un contatto diretto è bene aggiungere il luogo nei termini di ricerca es. "Software House Brescia" oppure "Sviluppo Software Personalizzato Brescia".
Nel caso dello sviluppo software la vicinanza è solo un plus, ma non deve essere un requisito. Fortunatamente lo sviluppo software è un'attività che per sua natura può essere svolta a distanza e da remoto. Quindi quando si sceglie un'azienda a cui affidare lo sviluppo di un nuovo software è bene valutare prima altre caratteristiche.
Vediamo di seguito quali tipologie di software house esistono e i possibili aspetti da valutare nella scelta.
Cos'è una Software House#
Una software house è una azienda che si occupa di produrre un software sulla base delle esigenze del cliente.
Le fasi, per produrre un software, seguite dal personale altamente qualificato di una software house sono:
- Analisi del problema del cliente. Riuscire ad aver chiaro qual è il problema del cliente e quali sono i vincoli da rispettare è un punto cruciale per le fasi successive di sviluppo software.
- Studio di fattibilità e analisi delle possibili soluzioni. Non sempre un problema è risolvibile nei termini indicati dal cliente, per questo motivo è importante vagliare diverse ipotesi di soluzione al fine di identificare la soluzione migliore da un punto di vista funzionale e di budget.
- Progettazione del software. Se le fasi precedenti sono state svolte nel modo corretto, in questa fase, sulla base delle esperienze passate e sulla base delle "Best Practice" di settore si procede a progettare la soluzione software desiderata.
- Sviluppo Software: è la fase della produzione di software che richiede più tempo in assoluto. In questa fase si scrive il codice sorgente del software da sviluppare e nel farlo bisogna avere un modello mentale sufficientemente ampio del problema che si sta risolvendo. L'obiettivo è quello di prevedere tutte le possibili condizioni in cui verrà utilizzato il software, tutti i possibili flussi di lavoro e tutte le interazioni previste, in modo da realizzare un software che gestisca tutte le casistiche.
- Testing, Validazione e Messa in funzione: oltre alle fasi di testing svolte durante lo sviluppo del software, è presente una fase finale di test e validazione della soluzione sviluppata per verificare che risolva il problema identificato nel modo previsto.
Sebbene tutte le software house seguano (o almeno dovrebbero) le stesse fasi di produzione, esistono differenti tipi di software house:
- aziende di grandi dimensioni che creano software standard destinato ad un ampio pubblico. Esempi di queste aziende sono Microsoft , SAP AG , Oracle Corporation , Adobe Systems , Apple Inc. e Red Hat .
- aziende specializzate nella realizzazione di software personalizzati detti anche software custom. Garda Informatica è un esempio di software house per lo creazione di software personalizzati.
- aziende che realizzano software offerti nella particolare forma di Software as a Service SaaS. In questo caso il software non si installa da nessuna parte, viene utilizzato via web e viene pagato un canone per il suo utilizzo. Esempi di queste software house sono Google , Amazon .
- aziende che realizzano componenti e librerie software. I prodotti realizzati in questo caso non vengono utilizzati da clienti finali, ma vengono integrati da altre software house per produrre software.
Oltre alla differenziazione delle software house per mercato, le stesse si differenziano anche per settori in cui operano, detti anche domini applicativi. I principali domini sono:
- software gestionali: in questo caso i software sviluppati mirano a supportare i flussi operativi delle aziende come la fatturazione, la preventivazione, la gestione dei rapporti con i clienti, ecc.
- web application: sono software che si prestano ad essere utilizzati attraverso il web. Esempi di questi software sono: e-commerce, booking on line, preventivazione autonoma, richiesta di servizi via web, gestionali web, ecc.
- app per dispositivi mobili: sono software che vengono installati su smartphone, tablet e dispositivi mobili in genere. In questo caso si pone una particolare attenzione alle interfacce utente che devono essere progettate per schermi touch.
- cad/cam: sono software di disegno tecnico 2D e 3D, spesso utilizzati da architetti, ingegneri e progettisti.
- software di automazione industriale: sono software di controllo e supervisione di macchine robotiche, impianti industriali e sistemi che devono funzionare in modo non supervisionato.
- sistemi operativi
- videogiochi
Chiariti i differenti aspetti che caratterizzano una software house dovrebbe quindi essere più facile cercare su internet l'azienda di interesse.
Come scegliere una software house?#
Una volta capito come trovare su internet le aziende di interesse, passiamo ora a vedere come un imprenditore dovrebbe scegliere a chi affidare la realizzazione del proprio progetto.
Esperienza
La prima cosa da ricercare è l'esperienza della software house in progetti analoghi. Se una software house è specializzata nella realizzazione di software gestionali su misura, difficilmente sarà adatta a realizzare un software CAD. I due settori sono molto differenti e richiedono skill tecniche diverse.
Un modo per capire se un'azienda ha esperienza in un determinato settore è verificare la sezione Portfolio o Case History dell'azienda. In questo caso è importante capire di che tipi di progetti l'azienda si è già occupata e vedere almeno delle schermate dei software prodotti. Queste due semplici cose possono aiutare a comprendere:
- il tipo di esperienza dell'azienda e i settori in cui opera e ha esperienza;
- il tipo di interfacce realizzate, la loro facilità d'uso e la chiarezza estetica;
- la dimensione e la complessità dei progetti affrontati;
- capire come potrebbero risultare i software sviluppati. A tal fine può essere utile anche visualizzare dei video per capire la facilità di interazione delle interfacce;
Competenza e Personale Qualificato
Lo sviluppo di software è un'attività che richiede un alto grado di competenza e specializzazione. Per questo è importante capire chi seguirà le fasi della produzione del software. La figura più adatta è una persona con esperienza nello sviluppo software e che abbia condotto degli studi in tal senso come ad esempio un Ingegnere Informatico. In genere è bene diffidare da chi pur non avendo competenze informatiche si improvvisa programmatore software.
Comunicazione e Trasparenza
Per richiedere lo sviluppo di un software su misura è necessaria una fase di interazione tra il committente e il fornitore in cui il primo comunichi e esprima le sue esigenze. Un problema di comunicazione in questa fase iniziale potrebbe portare a spiacevoli risultati alla fine dello sviluppo software (incomprensioni, funzionalità differenti dalle attese, ecc.). Per questo motivo non basta trovare un'azienda competente, ma è anche fondamentale scegliere persone comunicative.
Valutare un'azienda da questo punto di vista è molto facile, ad esempio si può partire guardando il sito internet. I servizi offerti sono chiari, ci sono i prezzi? c'è trasparenza? Un'altra cosa che si può valutare è la presenza di un blog aziendale: di cosa parla? la comunicazione è chiara o i testi sono pieni di sigle senza nessuna spiegazione?
Fiducia ispirata
Infine quando si commissiona lo sviluppo di un software su misura bisogna affidarsi a qualcuno di cui si ha fiducia. La fiducia è forse il parametro più difficile da valutare oggettivamente. Tipicamente però durante una qualsiasi interazione con un potenziale fornitore si percepiscono alcune "note stonate" o "campanelli di allarme". Se una persona sembra seria e affidabile probabilmente lo è. Se invece sembra superficiale, pressapochista, poco professionale c'è da stare attenti. L'imprenditore accorto nota questi particolari e ne tiene conto.
Al termine di questa panoramica dovrebbe quindi essere chiaro come trovare una azienda a cui affidare lo sviluppo di un software. Nel caso potremmo essere anche noi di Garda Informatica 🙂