Dopo aver visto la serie MegaStructures di National Geographic , sono rimasto sorpreso dalla rapidità con cui sono stati completati i grandi progetti. Una volta svolto il lavoro preliminare (design, specifiche, ecc.) Su carta, la realizzazione stessa di grandi progetti richiede solo pochi anni o talvolta alcuni mesi .
Ad esempio, Airbus A380 "lanciato ufficialmente il 19 dicembre 2000" e "all'inizio di marzo 2005" , l'aereo era già stato testato. Lo stesso vale per enormi petroliere, grattacieli, ecc.
Confrontando questo con i ritardi nell'industria del software, non posso fare a meno di chiedermi perché la maggior parte dei progetti IT sia così lenta, o più precisamente, perché non possano essere così veloci e impeccabili, alla stessa scala, dati abbastanza persone?
Progetti come Airbus A380 presentano entrambi:
Principali rischi imprevisti: sebbene questo non sia il primo aereo costruito, spinge ancora i limiti della tecnologia e le cose che hanno funzionato bene per gli aerei di linea più piccoli potrebbero non funzionare per quello più grande a causa di vincoli fisici; allo stesso modo, vengono utilizzate nuove tecnologie che non erano ancora state utilizzate, perché ad esempio non erano disponibili nel 1969 quando Boeing 747 fu realizzato.
Rischi connessi alle risorse umane e alla gestione in generale: persone che abbandonano nel mezzo del progetto, incapacità di raggiungere una persona perché è in vacanza, errori umani ordinari, ecc.
Con questi rischi, le persone realizzano ancora progetti come quei grandi aerei di linea in un periodo di tempo molto breve e, nonostante i ritardi di consegna, quei progetti hanno ancora un enorme successo e di alta qualità.
Quando si tratta di sviluppo software, i progetti non sono così grandi e complicati come un aereo di linea (sia tecnicamente che in termini di gestione) e presentano rischi leggermente meno imprevisti dal mondo reale.
Tuttavia, la maggior parte dei progetti IT sono lenti e in ritardo e l'aggiunta di più sviluppatori al progetto non è una soluzione (passare da un team di dieci sviluppatori a duemila a volte permetterà di consegnare il progetto più velocemente, a volte no, e a volte danneggerà solo il progettare e aumentare il rischio di non finirlo affatto).
Quelli che vengono ancora consegnati possono spesso contenere molti bug, che richiedono service pack consecutivi e aggiornamenti regolari (immagina "l'installazione di aggiornamenti" su ogni Airbus A380 due volte alla settimana per correggere i bug nel prodotto originale e prevenire il crash dell'aeromobile).
Come si possono spiegare tali differenze? È dovuto esclusivamente al fatto che l'industria dello sviluppo software è troppo giovane per essere in grado di gestire migliaia di persone in un singolo progetto al fine di fornire prodotti su larga scala, quasi senza errori molto velocemente?