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. Avsof è 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

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

Avsof ha realizzato le Mobile web app per dispositivi mobili che non necessitano di installazione ma sono sempre online possedendo requisiti che le rendono uniche e migliori dalle classiche app.