Nel 1987, la US Air Force istituì il Software Technology Support Center (STSC). La sua missione era "aiutare le organizzazioni a identificare, valutare e adottare tecnologie che migliorano la qualità dei prodotti software, l'efficienza produttiva e la prevedibilità” (Fonte). Per raggiungere questo obiettivo, lo STSC fondò una pubblicazione online chiamata CrossTalk: The Journal of Defensive Software Engineering, che fu pubblicata dal proprio sito web (Stsc.hill.af.mil) dal 1996 al 2016.
Successivamente, lo STSC creò il sito Crosstalkonline.org dove CrossTalk continuò ad essere pubblicato. Tuttavia, dal 2017, il sito non è più accessibile.
Cosa potrebbe essere successo? Cerchiamo di scoprirlo ripercorrendo la storia della pubblicazione. Termineremo quindi questo articolo analizzando i 10 articoli più importanti che ha pubblicato.
La storia di CrossTalk
CrossTalk iniziò a essere pubblicato nel 1988 per promuovere tecniche in grado di garantire lo sviluppo di software di alta qualità. Secondo lo STSC, l'obiettivo della pubblicazione era "migliorare l'affidabilità, la manutenibilità e la reattività delle nostre capacità di combattimento, nonché istruire, informare ed educare i lettori su decisioni politiche aggiornate e nuove tecnologie di ingegneria del software” (Fonte).
Sotto la guida di Reuel Alder (editore), Tracy Stauder (Managing Editor) e Sandi Gaskin (Senior Editor), CrossTalk passò da circa 200 abbonati a 29.000 (Fonte).
Stsc.hill.af.mil, il sito dove inizialmente veniva pubblicato CrossTalk, fu creato nel dicembre 1996. I volumi precedenti sono disponibili qui.
Stsc.hill.af.mil includeva un modulo di abbonamento, linee guida per gli aspiranti autori e annunci tematici. Era presente anche una pagina con le informazioni di contatto dello staff a tempo pieno della pubblicazione.
CrossTalk sarebbe rimasto sul sito dello STSC fino al novembre 2010, quando si trasferì sul proprio sito: Crosstalkonline.org. L’ultimo numero di CrossTalk catturato su internet risale ad agosto 2017.
Ci sono pochissime informazioni disponibili su ciò che è successo sia al sito sia alla pubblicazione dopo agosto 2017.

I 10 articoli più importanti pubblicati da CrossTalk
In memoria di CrossTalk, abbiamo identificato 10 tra gli articoli più significativi che sono stati pubblicati durante il suo percorso.
Per identificare questi articoli, ci siamo concentrati sul numero di link ricevuti da parte di webmaster e redattori. Gli articoli che ricevono più collegamenti (citazioni) sono probabilmente più importanti rispetto a quelli che ne ricevono meno.
1. L’educazione in informatica: dove sono gli ingegneri del software di domani?
Gli accademici Robert Dewar ed Edmond Schonberg, allora entrambi professori di Informatica presso la New York University, utilizzano questo articolo per sostenere che la formazione in Informatica (nel 2008) trascurasse competenze essenziali.
Gli autori attribuiscono questa situazione alla diffusione generale di “Java come primo linguaggio di programmazione”. Forniscono un elenco delle competenze che, a loro avviso, dovrebbero rappresentare il bagaglio di base di ogni professionista del software: linguaggi di programmazione, strumenti di gestione dei test per realizzare programmi affidabili su larga scala e metodologie di dimostrazione formale (fonte).
2. Scalare lo sviluppo agile: sviluppo di prodotti grandi e multisito con Large-Scale Scrum
I consulenti Craig Larman e Bas Vodde hanno utilizzato questo articolo, scritto nel 2013, per riassumere i contenuti della loro serie di due volumi dedicata allo sviluppo agile su larga scala. Hanno descritto come hanno collaborato con clienti per introdurre due framework Scrum su larga scala a grandi gruppi globali. Esempi di aziende con cui hanno lavorato includono la Bank of America ed Erickson, il fornitore di infrastrutture per telecomunicazioni.
Larman e Vodde riportano che le loro esperienze li hanno portati a pubblicare due volumi. Il volume 1 è Pensiero e strumenti organizzativi per Large-Scale Scrum. È focalizzato sulla leadership e la progettazione organizzativa. Il secondo volume è Pratiche per la scalabilità dello sviluppo Lean & Agile: sviluppo prodotto su larga scala, multisito e offshore con Large-Scale Scrum. Offre suggerimenti pratici per la scalabilità in diverse circostanze.
3. Utilizzare sia lo sviluppo incrementale che quello iterativo
L’autore di questo articolo del 2008, il dott. Alistair Cockburn (descritto da CrossTalk come esperto di progettazione orientata agli oggetti, metodologie di sviluppo software, casi d’uso e gestione di progetti), si concentra sullo sviluppo incrementale e iterativo nell’ambito del software.
Il dott. Cockburn identifica le difficoltà incontrate dai team quando si trovano a gestire lo sviluppo incrementale e quello iterativo: cercare di gestirli nello stesso modo, oppure pensare che, quando se ne utilizza uno, l’altro non debba essere applicato. Conclude riassumendo le sue idee: "La parola incremento significa aggiungere; la parola iterare significa rifare” (Fonte).
4. SmartCam3D offre nuovi livelli di consapevolezza situazionale
In questo articolo del 2005, Janis White (consulente statistico), Frank Delgado (in forza alla NASA) e Mike Abernathy (specialista software) si concentrano su SmartCam3D (SC3D). Si tratta di un “sistema di visione sintetica ibrido che combina informazioni provenienti da sensori in tempo reale con dati di un sistema di visione sintetica, per creare una finestra virtuale della cabina di pilotaggio.”
Gli autori introducono il sistema di visione sintetica ibrido (HSVS). Questo sistema, secondo la loro descrizione, consiste nella combinazione di “dati da sensori live con informazioni da un sistema di visione sintetica (SVS) per creare immagini ricche di informazioni in tempo reale.” Concludono affermando che SC3D è stato il primo sistema HSVS in tempo reale, suggerendo che “questo software salverà vite umane” (Fonte).
5. CMMI supporta il miglioramento dei processi a livello aziendale
Il tenente colonnello Joe Jarzombek, che a quel tempo lavorava come direttore presso Earth Science Information Partners (ESIP), una comunità impegnata nel rendere i dati scientifici più accessibili, ha utilizzato questo articolo per introdurre il concetto dei Modelli di Maturità delle Capacità (CMM). Si tratta di insiemi di modelli che riguardano le procedure organizzative e le competenze trasversali a più discipline.
Jarzombek presenta l’idea dei team CCMI, denominando così uno “sforzo collaborativo per integrare i CMM”. Secondo lui, tali unità creerebbero un insieme di prodotti integrati a supporto del miglioramento di processi e prodotti nell’ambito dello sviluppo software (Fonte).
6. Perché i grandi progetti software falliscono: le 12 domande chiave
In questo articolo del 2005 prodotto da Watts S. Humphrey del Software Engineering Institute (SEISM) della Carnegie Mellon University, l’attenzione è rivolta alle 12 domande critiche sul perché i grandi progetti software falliscono.
Per Humphrey, le risposte alle domande presentate nell’articolo aiuteranno gli sviluppatori di software a migliorare i propri progetti. Egli ritiene che i maggiori problemi siano legati ai motivi per cui è spesso complesso gestire grandi progetti software, al tipo di sistemi di gestione necessari e a ciò che occorre fare nell’implementare tali sistemi (Fonte).
7. Demistificare il Cloud Computing
Riflettendo sugli sviluppi che stavano avvenendo nel 2011 nel campo dello sviluppo software, Qusay F. Hassan della Facoltà di Computer e Informatica dell'Università di Mansoura in Egitto si concentra sul cloud computing.
Nell'articolo, egli cerca di affrontare l’idea che il termine “cloud computing” sia spesso abusato da persone che si riferiscono a cose che potrebbero non avere nulla a che vedere con la sua reale definizione e portata. Si tratta solo di web hosting? Si domanda. Prosegue poi definendo diversi concetti come il Web Hosting, Application Service Provider (ASP), Volunteer Computing e File Sharing Online tra molti altri (Fonte).
8. Correctness by Construction: Un Manifesto per Software ad Alta Integrità
“I sistemi software ad alta integrità sono spesso così grandi che i processi di sviluppo convenzionali non riescono minimamente ad ottenere tassi di difetti tollerabili", affermano Martin Croxford e il Dr. Roderick Chapman all’inizio di questo articolo. Quando i due autori hanno scritto questo pezzo, lavoravano per Praxis High Integrity Systems, un’azienda britannica di ingegneria dei sistemi specializzata in sistemi mission-critical (Fonte).
In questo articolo del 2005, gli autori promettono di presentare un approccio che ha prodotto "software con tassi di difettosità molto bassi in modo economicamente efficace." Il metodo di cui scrivono è il Correctness by Construction (CbyC). Si tratta di un approccio allo sviluppo software che si adatta bene ai cambiamenti durante tutto il suo ciclo di vita e i cui tassi di difetti erano inferiori alle pratiche commerciali dell'epoca (Fonte).
9. Difetti di Progettazione dell'Interfaccia Utente del Browser: Sfruttare l'Ignoranza dell'Utente
Questo articolo è stato scritto da Aditya Sood, allora dottorando presso la Michigan State University, e Richard Enbody, Professore associato presso il Dipartimento di Informatica e Ingegneria, anch'egli alla Michigan State University, nel 2011. Nell’abstract dell’articolo, gli autori osservano che “i difetti nella progettazione dei browser rappresentano gravi minacce alla sicurezza, alla privacy e all’integrità degli utenti.”
L’articolo si concentra sui difetti di progettazione dell’Interfaccia Grafica Utente (GUI)
dei componenti dei browser. Gli autori suggeriscono che sono questi i difetti di cui si approfittano i malintenzionati quando inducono gli utenti a compiere azioni che compromettono la loro sicurezza (Fonte).
10. Problemi Geriatrici del Software Invecchiato
Capers Jones, allora impegnato nella ricerca sulla produttività del software, si concentra sulle problematiche legate all’invecchiamento del software nel settore aziendale e pubblico. In questo articolo del 2007, Jones riporta che non era raro allora trovare enti che utilizzavano software con più di 10 anni di età, con applicazioni perfino vecchie di 25 anni.
Jones si occupa anche delle conseguenze del software invecchiato, osservando che diventa difficile mantenere tali programmi perché le modifiche spesso distruggono la struttura originaria delle applicazioni. Questo aumenta l’entropia (mancanza di prevedibilità e ordine). Fa notare che, con il passare degli anni, un problema chiamato fix injection porta a “nuovi difetti (che) vengono accidentalmente introdotti come sottoprodotto della correzione di difetti precedenti” (Fonte).
