di Gianfranco Casaglia
Negli anni ’70, come mi scrisse Antonio Bigazzi in una mail, lo sviluppo del software in Olivetti era basato sull’uso di strumenti cross residenti sul mainframe IBM S/370 del Centro di Calcolo aziendale, a cui si inviavano pile di schede perforate, per un elaborazione batch da cui si otteneva un formato ‘linkable’ o binario. Le schede erano portate al centro di calcolo da un fattorino, che poi ritirava le stampe e le distribuiva ai vari uffici. Il test veniva eseguito caricando il codice binario sulla macchina target; in qualche caso, nel primo periodo, si usava anche un simulatore su S/370.
Ogni gruppo di progetto aveva il suo Controllo di Qualità (CQ) e distribuiva il software su cartoline magnetiche o su floppy. Nel 1975 fu anche realizzato con i Drapers Laboratories di Cambridge un progetto per la definizione di una metodologia di sviluppo software, sull’onda del successo che a quel tempo ebbe il Software Engineering.
Quando nel 1980 fu approvato il progetto software per la Nuova Linea Sistemi (NLS) – sistema operativo COSMOS, compilatori, software di ambiente, communication – il cui sviluppo sarebbe iniziato a Cupertino presso l’Olivetti Advanced Technology Center (OATC), furono introdotti nuovi strumenti di sviluppo software e quindi un nuovo ciclo di sviluppo del software. Poiché il nuovo progetto aveva come target un complesso sistema software per una nuova linea di minicomputer, con un numero significativo di release successive, fu deciso di realizzare un ambiente omogeneo di sviluppo software, valido per tutti i gruppi che erano distribuiti geograficamente tra Ivrea, Milano, Bari e Cupertino. A questo ambiente fu data la struttura di una vera Software Factory i cui elementi base erano:
- adozione di minicomputer PDP-11/70 e VAX Digital come hardware
- UNIX e Pascal+ come strumenti di sviluppo di base
- Interconnessione in rete di tutti i sistemi, per mail, distribuzione della documentazione, specifiche e moduli sorgente
- connessione dei sistemi target ai sistemi di sviluppo per il download dei programmi
- definizione di un software life cycle, adeguato alle esigenze complessive del Gruppo, basato sugli strumenti di programmazione disponibili in Unix.
Nei primi due anni del progetto l’attenzione fu dedicata alla definizione dell’ambiente e degli strumenti di sviluppo (1980-1981) del software, scritto per il 90% in Pascal+.
Seguendo il suggerimento dei consulenti, professori alla Stanford University e UCLA (University of California Los Angeles), dove l’ambiente per lo sviluppo del software era proprio basato su Unix, la migliore soluzione apparve essere quella di utilizzare un minicomputer PDP 11 con Unix. Supportati da Enzo Torresi, responsabile dell’OATC, Flavio Serughetti e Lorenzo Pengo visitarono la Interactive System Corporation[1] di Santa Monica in California che nella seconda metà del 1979 offriva una versione di Unix System III e System V con la licenza AT&T. Questa versione fu istallata anche ad Ivrea su un PDP 11/70 gestito da Renzo Garetti nella sala macchine del Servizio Prodotti non Standard, utilizzata dal progetto SP 600. Con l’arrivo di Dave Helm alla OATC si decise di passare alla versione Unix BSD 4.0 (Berkeley Software Distribution). Il principale autore di questa versione era stato Bill Joy[2] che, studente a Berkeley, aveva realizzato la prima release nel 1977, con patch alla versione VI dello Unix AT&T. Con la BSD 4.0 divenne rilevante l’uso di strumenti quali l’editor vi, lo shell e la posta elettronica tramite il servizio uucp (Unix-to-Unix Copy Program).
La Software Factory, inserita organizzativamente nell’Ufficio Controllo di Qualità, si sviluppò rapidamente; dopo l’iniziale utilizzo di PDP 11/70, fu adottato il VAX, sino ad istallarne 16 nella sala macchine di Ivrea. Come si è detto però il nucleo dello sviluppo era partito da Cupertino con collaboratori americani, quali Dave Helms, che lasciò l’Olivetti nel 1983, John Golino, Paul Vais, oltre alla consulenza di studenti di Berkeley come Bill Joy e Mike Toy. I sistemi PDP e VAX erano inizialmente collegati tra di loro tramite modem e linea telefonica; la comunicazione avveniva attraverso lo uucp.
Questo fino al 1983, quando DARPA (Defense Advanced Research Projects Agency) decise che tutti i computer collegati in ARPAnet dovevano avere il protocollo TCP/IP (Transmission Control Protocol-Internet Protocol). La società Bolt Beranek e Newman (BB&N) di Cambridge (USA) implementò la versione TCP/IP su Unix BSD, su commessa DARPA. Quello fu il momento di svolta per la diffusione del networking. Appena furono disponibili i governi Ethernet per VAX, Olivetti realizzò una rete di interconnessione Ethernet 10 Mbps, che correva nei sotterranei tra la ICO e la Nuova ICO fino alla sala dove erano ospitati i VAX. La Software Factory fu lo strumento chiave per lo sviluppo dei prodotti software L1-MOS ed emulatori.
I gruppi di progetto erano distribuiti in Italia e in California: la rete di calcolatori distribuita, con sistema operativo Unix, collegata in Internet risultò determinante. Il rilevante investimento fu uno degli elementi base che promosse lo sviluppo del know how software in Olivetti e in molte società collegate.
Nei due anni successivi (1982-1983) divenne chiara la fondamentale importanza delle fasi Controllo di Qualità e Integrazione/Distribuzione del software e il loro impatto sulla produttività globale.[3] Lo schema completo del processo era diviso in tre parti – Implementazione, CQ e Integrazione/Distribuzione – ciascuna parte eseguita da una organizzazione specifica e indipendente, come mostrato dal ‘Processo di Produzione del MOS’ nello schema riportato qui sotto. Il modello di ciclo di vita adottato viene descritto con il cascade model di B. W. Boehm,[4] modificato per tener conto della indipendenza dei processi di sviluppo e distribuzione (release) del prodotto.[5] Senza entrare nella descrizione del ciclo, si nota che questo schema introduce, dopo lo sviluppo del software di base, un Product Release Content (PREQA) e la definizione della Strategia di Test (Integration Tree, Test Plan).
L’Integrazione termina con una fase di System Test e quindi il software viene rilasciato per il Beta Test. Il processo di integrazione è molto variabile ed interattivo, con numerose fasi. Si possono individuare almeno quattro fasi, per le quali si deve disporre di strumenti di gestione specifici:
- programmazione dell’integrazione: include pianificazione tecnica, monitoring e replanning
- esecuzione dell’integrazione: costruzione della configurazione e test
- amministrazione dell’integrazione: include la gestione degli errori
- controllo dell’integrazione: gestione e controllo dei cambiamenti
Questo sistema nel suo stato intermedio si dimostrò:
- efficace nella gestione del processo di implementazione, che però non era integrato con la definizione delle specifiche funzionali e con la definizione dei piani;
- forte nel controllo di qualità ed integrazione, che permettono di realizzare configurazioni grandi e complesse, ma con un tempo di reazione nella catena definizione-implementazione-integrazione troppo lungo;
- fonte di colli di bottiglia nella fase finale. quando dalla prima versione si doveva ottenere un numero significativo di release.
Nel 1985, quando ormai il progetto software NLS era compiuto, la Software Factory offriva un ambiente omogeneo per la gestione di tutte le fasi del ciclo di vita dei prodotti FW/SW della Divisione Informatica Distribuita e Automazione dell’Ufficio (DIDAU)[6]:
- specifiche: redazione e aggiornamento; classificazione gerarchica (albero delle specifiche)
- distribuzione tramite mailing list delle specifiche e ciclo di approvazione
- sviluppo del software e documentazione di progetto
- controllo di qualità e integrazione
- system test
- documentazione (manualistica)
- distribuzione e manutenzione (bug handling)
- gestione del flusso di informazione tra progettisti, technical writer, field service.
La rete della Software Factory, con i suoi servizi di PABX – data switching, mail e file transfer – costituiva il tessuto connettivo attraverso il quale manager, progettisti, technical writers accedevano alle risorse (CPU in rete) e si trasmettevano codice (in formato sorgente e/o oggetto), specifiche/documentazione e messaggi. La rete della Software Factory era nel 1985 utilizzata sistematicamente anche dal progetto HW e dai suoi ambienti di automazione (CAD, CAM, VLSI Design Center). [7]
L’architettura generale della rete aveva una topologia multi stellare con cluster principali a Ivrea-DIDAU e Cupertino-OATC e numerosi sistemi geograficamente remoti. Ogni cluster era costituito da sistemi collegati in rete locale, per un totale di 38 sistemi.[8]
Gli utenti della Software Factory negli anni 1984-1988, secondo Piero Martinoli, continuarono a crescere:[9]
I principali strumenti software disponibili erano
- Unix BSD 4.1
- Data Base Ingres RTI 2.0
- Strumenti di Sviluppo: Cross-Assembler; Pascal cross compiler; C-cross compiler; linkage editor; strumenti per il debugging
- Utility: Mailing service; File transfer; Performance monitor; Network monitor; accounting system; historical filing procedures
I terminali utente erano tipicamente i VT 100 della DEC cui si aggiunsero i PC M24. Nel 1985 furono collegati anche server e work station VTI, Valid, Sun Scald, Tektronix, Apollo, nell’ambito del Design Center per Circuiti Integrati Custom e Semi-Custom, come parte dell’automazione dell’intero ciclo del progetto hardware. In questo modo anche il ciclo di sviluppo dell’hardware fu completamente automatizzato. A partire dai VLSI custom, tutto il ciclo di sviluppo delle schede, la definizione dello stampato ed il test erano automatizzati. Lo sviluppo del firmware utilizzava i minicomputer della Software Factory. Al termine del Controllo di Qualità la documentazione veniva trasferita alla fabbrica, tipicamente a Scarmagno, anch’essa collegata con la Software Factory.
Nella fase iniziale di pianificazione della Nuova Linea Sistemi la problematica della Fabbrica del Software era stata ignorata. Alla fine dei quattro anni di progetto, fu evidente che il ciclo di produzione di un sistema informatico, partendo dalle specifiche di prodotto fino al rilascio della prima versione utente, era stato troppo lungo nel caso del MOS e che era necessario organizzare un processo di produzione del software più orientato alle soluzioni e con un parallelismo adeguato al numero di configurazioni.[10]
[1] La Interactive System Corporation era stata fondata nel 1977 a Santa Monica, California da Peter G. Weiner, un ricercatore della RAND Corporation che in precedenza aveva fondato il Dipartimento di computer science della Yale University ed era stato curatore della tesi Ph. D. di Brian Kernighan, uno degli sviluppatori di Unix in AT&T. In Interactive Weiner aveva assunto Heinz Lycklama, che in AT&T aveva eseguito il porting della Versione & di Unix sul microcomputer DEC LSI 11 [Fonte: Wikipedia]
[2] William ‘Bill’ Joy (1954), master a Berkeley nel 1978. Nel 1982 aveva fondato con Scott McNealy la Sun Microsystem, di cui fu chief scientist, e vicepresidente fino al 2003. Nell’estate del 1982 aveva trascorso uno stage alla Olivetti a Ivrea, lavorando proprio nella Software Factory per istallare lo Unix su VAX
[3] G. F. Casaglia, F. Pisani, «The Integration and Distribution Phase in the Software Life Cycle», in H. Ehrig, C. Floyd, M. Nivat, J. Thatcher (eds), Formal Methods and Software Development, Proceedings of the International Conference on Theory and Practice of Software Development (TAPSOFT), vol. 2, Colloquium on Software Engineering (CSE), Springer Verlag, Berlin, March 1985, p. 26
[4] B. W. Boehm, Software Engineering Economics, Englewood Cliffs, Prentice Hall Inc, 1981
[5] G. F. Casaglia, F. Pisani, op. cit., p. 22, una descrizione tecnica del modello Putnam per il software life cycle, adattato per le esigenze Olivetti, la si ritrova nella nota di F. Pisani, Putnam’s «Model for the Software Life Cycle», in Syntax, Corso Gestione di un processo di progettazione SW complesso, 8/10/1984, Archivio Casaglia, Corrispondenza 1984
[6] Corso “Gestione di un processo di progettazione SW complesso” Syntax 8 ottobre 1984, p. 1 e segg, Archivio Casaglia, Corrispondenza 1984
[7] Il documento più completo sulla Software Factory è disponibile nel Cap. 3 del Rapporto su Risorse e Fattori d’Automazione in DIDAU, novembre 1985, a cura di Carlo Ronca
[8] Ibidem, Fig. p. 3
[9] Piero Martinoli, in Olivetti dal 1959, dal 1983 all’ottobre 1989 era incaricato dello sviluppo e della gestione dell’ambiente di Software Factory
[10] G. F. Casaglia, F. Pisani, «The Technology Market Compound Life Cycle, in Olivetti Research and Technical Review», n. 5, 1986 p. 8
Articolo davvero interessante e che testimonia un progetto di grande impegno e qualità.
Viene documentata come la Software Factory si sia sviluppata negli anni ’80 , con quattro anni ’84-’87 – fondamentali. Si sono seguite le indicazioni di esperti statunitensi ma poi lo sviluppo effettivo è stato ad Ivrea e nelle altre sedi importanti del Gruppo incluso naturalmente Cupertino. Lo schema della Topologia dà un’idea della complessità e articolazione dell’insieme del sistema e fa capire l’importanza anche delle reti nel progetto. L’intervento fornisce una testimonianza significativa della professionalità del progetto realizzato grazie all’esperienza di chi ha avuto un ruolo fondamentale.
Complimenti per questo intervento.
Ottima ricostruzione di una fase di indubbia leadership di Olivetti nel panorama europeo e non solo. Forse ce ne rendiamo più conto a posteriori, come spesso nelle svolte più importanti nella tecnologia. Aggiungo solo un aspetto interessante.
Fu richiesta all’allora Italcable e messa in opera una connessione dedicata voce/dati, in alternativa. Grazie al fuso orario la voce era utilizzata solo in alcune ore serali di Ivrea e mattutine in California; il resto era utilizzato per la trasmissione dati. Essendo Cupertino collegato ad ARPAnet questo ci consentiva di entrare anche da Ivrea su questa rete. Vogliamo chiamarla Internet con qualche anno di anticipo ?
Questo articolo RI-evocativo, in un contesto postpandemico percepito come bisogno di un cambio di paradigma, meriterebbe un controcanto RI-generativo, con riferimento agli articoli di Gianni Di Quattro:
1) https://www.olivettiani.org/lera-de-benedetti-le-luci-e-le-ombre.html
2) https://www.nelfuturo.com/Il-capitalismo-non-puo-piu-essere-come-prima
Dovrebbe essere chiaro che l’intento “rigenerativo” significherebbe “cercare di” far ripartire un sistema sociale che si è bloccato, quando invece avrebbe potuto cogliere le opportunità offerte dall’Olivetti degli anni 80.
Naturalmente non mi azzardo a scrivere, da solo, cose che verrebbero interpretate come l’offerta di una soluzione da parte di chi, invece, tenta di far capire che si tratterebbe di condividere la ricerca di un percorso praticabile.
Butto lì un’idea, con qualche indizio aggiuntivo in https://www.casarayuela.eu/ e … resto in ascolto.
Felice di vedere i sistemi VAX utilizzati dal Servizio Documentazione inclusi nella Software Factory nell’ultimo diagramma di questo articolo. Mentre la Software Factory può essere celebrata per il suo impatto sullo sviluppo del software in Olivetti, la Software Factory ha avuto importanti vantaggi in aree diverse dallo sviluppo del software.
Gli addetti alla documentazione di marketing hanno fatto qualque suggerimenti nel 1977 sull’integrazione del servizio di documentazione nello sviluppo del software. Vedere il manuale “Software and Documentation – Introduction to Development Techniques, codice ZD 3974570 V (0)”.
Un secondo cambiamento significativo alla documentazione Olivetti all’inizio degli anni ’80 è stato il fatto che i redattori tecnici utilizzassero PC M20 e M24 in emulazione VT100 per scrivere i loro manuali invece di scrivere a mano i loro documenti. I documenti scritti a mano necessitavano quindi di personale di redazione per inserire nel VAX il contenuto del documento utilizzando i pochissimi terminali VT100 consentiti all’epoca.
Questo passaggio da 16 terminali VT100 collegati a centinaia di PC sulla scrivania di ogni scrittore non sarebbe stato possibile senza l’infrastruttura IT sviluppata per supportare la Software Factory.
Bei tempi. Felice di averne fatto parte.
Happy to see the VAX systems used by the Documentation Department included in the Software Factory in the last diagram of this article. While the Software Factory can be celebrated for its impact on software development in Olivetti, the Software Factory had major benefits in areas other than the development of software.
The Marketing Documentation people made early suggestions in 1977 about the integration of the Documentation service into software development. See the manual “Software and Documentation – Introduction to Development Techniques, ZD Code 3974570 V (0)”.
A second significant change to Olivetti documentation in the early 1980s was having the technical writers use M20 and M24 PCs in VT100 emulation to write their manuals instead of hand writing their documents. The handwritten documents then needed editing staff to enter the document content using the very few VT100 terminals allowed at the time.
This change from 16 connected VT100 terminals to hundreds of PCs on each writer’s desk would not have been possible without the IT infrastructure developed to support the Software Factory.
Great times. Glad to have been part of it.
Caro Gianfranco, mi ha fatto piacere leggere la storia della software factory Olivetti. E’ giusto ricordarne l’importanza, le grandi competenze che c’erano in Olivetti e le capacità di stare al passo con le tecnologie. A me sorge l’obbligo di ricordare l’inizio della storia, cominciata nel ’72 quando l’ing. Perotto mi affidò il primo gruppo di sviluppo software (Servizio Sviluppo Software e Linguaggi della Ricerca e Sviluppo) raccogliendo in un unico gruppo tutti i programmatori presenti nelle varie Direzioni della Ricerca e Sviluppo. La prima cosa che facemmo fu appunto definire una organizzazione e una metodologia per lo sviluppo del software e ricorremmo all’aiuto dei Draper Labs che avevo conosciuto al MIT (Massachusetts Institute of Technology) dove avevo passato un anno (1969-1970) mandato dall’Olivetti a studiare Computer Science (proprio così, allora l’Olivetti faceva queste cose!). Mi piace sempre ricordare che Perotto venne a trovarmi al MIT e quando gli raccontai che la vera novità emergente era il software in quanto progetto autonomo rispetto al progetto dei calcolatori, con nuove metodologie e tecniche cui pensavo di dedicare particolare attenzione, mi disse: “Ma no, non perderti nei dettagli…”. Ma un anno dopo il mio rientro a Ivrea Perotto, di cui tutti ricordiamo l’intelligenza e la visione, ripensò l’organizzazione della Ricerca e Sviluppo e istituì il Servizio Sviluppo Software e Linguaggi. Io lasciai l’Olivetti nel 1976 e a me subentrò Massimo Ziliani nella direzione dello sviluppo software.