Un’azienda che produce software è chiamata software house. Nel corso di questo testo utilizzerò, invece, il termine factory al posto di house. Prendo le distanze dal termine house perché mi lascia il retrogusto di un qualcosa di amatoriale e anche un po’ anni 1990-2000.

La democratizzazione degli strumenti di sviluppo avvenuta a partire dagli anni ’90 ha determinato una proliferazione di piccole-medie realtà di sviluppo software. Questo ha creato un mercato per tantissimi appassionati di informatica con una vena imprenditoriale che, dotati di un computer e buona volontà, hanno cominciato a sviluppare e vendere le loro soluzioni software nei più diversi settori (produzione, logistica, gestionali aziendali, …). Ecco, quindi, la diffusione delle software house, dove l’importante è “buttare su codice” e consegnare perché il commerciale ha fatto una certa promessa o ha venduto una feature che non c’è. L’approccio alla qualità, se presente, ricade su tradizionali batterie di test manuali: totalmente incompatibili con la complessità dei software di oggi e le tempistiche richieste dal mercato. Questo poteva essere sostenibile e avere un senso all’epoca, quando la complessità dei software era decisamente inferiore a quella di oggi e le pretese dei clienti molto inferiori.

Con il termine factory voglio dare una connotazione più formale e attenta alle tematiche moderne: una fabbrica strutturata dove il lavoro viene svolto seguendo processi e metodi comprovati dall’esperienza e dalle best-practice di settore.

Una software factory è un’azienda che per raggiungere i suoi obiettivi di business sviluppa software proprietario in modo sostenibile, che investe nelle persone, nei processi e negli strumenti.

Questa definizione potrebbe essere anche applicata, in contesti dove le dimensioni lo giustificano, anche a divisioni aziendali che per servire i loro clienti devono scrivere software.

Analizzando la definizione:

Sviluppa software proprietario: questo esclude dalla definizione chi lavora col software ma non lo deve scrivere di proprio pugno, esempio: i rivenditori di software scritto da altri, i “configuratori” di piattaforme complesse (es.: ERP) e così via.

Sostenibile: per sostenibilità non intendo che lo fa inquinando poco  ma che i valori e le scelte fatte dal business incentivino il lungo termine soprattutto sulle tematiche che ricadono sul benessere professionale delle persone. Siamo qui per restare sul lungo termine, vivere la pianificazione e le scelte aziendali come se dovessimo correre sempre i cento metri alla lunga fa solo danni.

Persone: le aziende sono fatte di persone e sono la risorsa numero uno in ogni realtà aziendale. Formazione, carriera, stimoli, senso di appartenenza, sono tutte tematiche da non lasciare al caso se vogliamo del personale motivato.

Processi: le persone hanno bisogno di essere inserite in modalità di lavoro che permetta loro di dare il meglio nel modo più sicuro possibile. La vera sfida risiede nel farlo in modo non invasivo, senza ingessare la quotidianità e lasciando prosperare la produttività.

Strumenti: l’adozione di tecnologie deve essere guidata dai bisogni di processo e del business, non il viceversa. Comunque, l’adozione di strumenti moderni e al passo coi tempi permette di implementare più facilmente scenari qualche anno fa sarebbero stati alla portata di pochi.

Software HouseSoftware factory
Progetti affini al modello waterfallProgetti gestiti in modo iterativo e incrementale
Modalità di lavoro “push”Modalità di lavoro “pull”
Qualità rimandata alle fasi finali di progettoQualità anticipata il più possibile
Personale stressatoPersonale coinvolto
BurocraticheInformali
Paura della releaseRelease sicure
Contrattazioni coi clientiCollaborazione coi clienti
Rilasci sporadiciRilasci frequenti
Test manualiTest automatici
Ottimizzate per i costiOttimizzate per la velocità
Tabella software house VS software factory

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *