Architettura modulare Object-Oriented – Extreme Manufacturing 2

Extreme Manufacturing Principle 2: Object-Oriented, Modular Architecture di Peter Stevens, estratto, tradotto e adattato da http://www.scrum-breakfast.com/2013/06/xm-principle-2-object-oriented-modular.html 3 Giugno 2013 .

Architettura modulare Object-Oriented, Extreme Manufacturing, Principio 2: come includere nel design la capacità di rispondere rapidamente al cambiamento.

Nell’industria del software fino agli anni 80, i programmi venivano sviluppati con un modello procedurale. Questo creava soluzioni estremamente complesse e poco manutenibili. Un cambiamento di un requisito richiedeva modifiche a molte parti del codice.

Questo concetto di “accoppiatura forte” è ancora molto diffusa nel disegno delle auto. Un cambiamento alle sospensioni richiede un cambiamento al telaio, che richiede un cambiamento da altre parti, che alla fine significa riprogettare l’auto intera.

Oggi gli sviluppatori Software usano l’incapsulamento e i design-pattern della programmazione ad oggetti per creare delle soluzioni altamente modulari e fortemente disaccoppiate. In questo modo si può modificare ad esempio la procedura di identificazione nel sistema senza dover modificare tutte le altre parti.

Il successo di Wikispeed grazie ad Extreme Manufacturing

Alla competizione X-Prize molti contendenti ad un certo punto rinunciarono. Come mai? Gli organizzatori, siccome si accorsero che c’erano moltissimi partecipanti, decisero di fare delle gare su strada per individuare il vincitore finale. Aumentando il numero di partecipanti dopo un po’ questa fu modificato in una corsa coast-to-coast attraverso tutti gli Stati Uniti. Successivamente cambiarono di nuovo la prova in una gara attraverso un circuito chiuso molto impegnativo. Ogni cambiamento determinò un cambio radicale nei requisiti delle sospensioni. E questi cambiamenti risultarono molto sfidanti per i team che non riuscivano a rispondere al cambiamento rapidamente.

L’auto WIKISPEED è disegnata con 8 moduli, ognuno con una semplice interfaccia tra di loro. Grazie alla sua architettura modulare, il team WIKISPEED è stato in grado di cambiare tipo di sospensione con un minimo sforzo. Inoltre il team WIKISPEED ha scoperto che poteva usare gli stessi pattern del software, come l’ereditarietà ed il riuso del codice, a suo vantaggio.

Wikispeed Car

Rispondere al cambiamento è un valore chiave dell’Agile. L’abilità di adattarsi rapidamente è stato l’elemento che ha determinato il successo di WIKISPEED. Grazie ad esso ha superato gli oltre 100 contendenti che non sono riusciti ad arrivare in fondo alla gara producendo l’auto finita.

Come è possibile creare una architettura modulare orientata agli oggetti? I principi 3 e 4 possono aiutarci:

Ritorna ai 10 principi di Extreme Manufacturing.