25 settembre 2009

Una certa controtendenza all'outsourcing

"[There is a] heightened awareness of the risks of subcontracting. Toy companies and pet-food firms alike have found that their brands can be tainted if their suppliers (notably, from China) turn out shoddy goods. Big industrial companies have learned that their production cycles can be disruptted if contractors are not up to the mark."

The Economist, August 29th 2009

Review architetturali

Un survey sui modi in cui vengono effettuate le revisioni architetturali nelle aziende:
Muhammad Ali Babar, Ian Gorton: "Software Architecture Review: The State of Practice", in IEEE Computer, 07/2009.

Alcuni risultati. Per lo più, le revisioni architetturali:
  • avvengono in modo informale e non sistematico
  • non vedono coinvolti esperti esterni all'organizzazione
  • vengono svolte solo nelle fasi iniziali dei progetti, non durante la realizzazione effettiva

Modello Metropoli

Proposto da Rick Kazman e Hong-Mei Chen, come modello di sviluppo software distinto rispetto ai modelli waterfall, evolutivo ed agile.

Il modello Metropoli è adatto a progetti di sviluppo di sistemi "crowdsourced", cioè quelli in cui il ruolo del contributo di volontari è fondamentale. Due categorie principali:
  • prodotti open source, come Linux, Apache, Firefox, ecc.
  • "community-based service systems", come Wikipedia, YouTube, Facebook, ecc.
Per entrambe queste categorie di sistemi, esiste una distinzione rigorosa tra l'evoluzione del kernel e l'evoluzione delle altre parti più periferiche, che si articola in gestioni dei requisiti e delle scelte architetturali da effettuare su due piani distinti.

"The Metropolis Model. A New Logic for Development of Crowdsourced Systems", in Communications of the ACM, 07/2009.

Non tutti i videogame rintronano

"A growing number of researchers - and an expanding body of evidence - indicate that joysticks can go a long way toward building smarter children with better reasoning skills.
Games such as Sim City, Civilization, Railroad Tycoon, and Age of Mythology extend beyond the flat earth of rote memorization and teach decision-making and analytical skills in immersive, virtual environments that resemble the real world."

Samuel Greengard, "Are We Losing Our Ability to Think Critically?", in Communications of the ACM, 07/2009.

One Laptop Per Child, un bicchiere mezzo ...

L'iniziativa One Laptop Per Child (OLPC), lanciata nel 2005, mirava a fornire entro due anni 150 milioni di PC a basso costo ai bambini del terzo mondo.

I risultati effettivi sono stati molto inferiori, per due motivi principali:
Si è sottostimato quanto sia importante la conoscenza delle diverse realtà sociali e politiche di ogni singolo paese per l'effettiva diffusione degli strumenti tecnologici. I governi non sono tutti uguali, e vanno tenuti in considerazione il punto di vista delle associazioni di insegnanti, dei sindacati, ecc.
L'industria IT si è sentita minacciata dalla promessa di PC a basso prezzo (inferiori a 100 dollari, era l'obiettivo) al di fuori del propro controllo, e ha reagito con proposte alternative come il Classmate di Intel, e la nuova categoria dei Netbook.

"So rather than distributing millions of laptops to poor children itself, OLPC has motivated the PC industry to develop lower-cost, education-oriented PCs, providing developing countries with low-cost computing options directly in competition with OLPC's own innovation. In that sense, OLPC's apparent failure may be a step toward broader success in providing a new tool for children in developing countries. However, it is also clear that the PC industry cannot profitably reach millions of the poorest children, so the OLPC objectives might never be achieved through the commercial market alone."

L'analisi sullo stato dell'iniziativa OLPC è stata pubblicata da Kennet Kramer, Jason Dedrick e Prakul Sharma in Communications of the ACM, 06/2009.

Free Software e Open Source

Anche se quasi sempre i prodotti "open source" sono disponibili gratuitamente, si tratta di due filosofie ben distinte. Lo ribadisce Richard Stallman, padre della Open Software Foundation, in "Why 'Open Source' Misses the Point of Free Software", in Communications of the ACM, 06/2009.

"Nearly all open source software is free software; the two terms describe almost the same category of software. But they stand for views based on fundamentally different values. Open source is a development methodology; free software is a social movement. For the free software movement, free software is an ethical imperative, because only free software respects the users' freedom."

Non solo computare

Peter J. Denning: Beyond Computational Thinking, in Communications of the ACM, 06/2009

Per Denning, ex presidente dell'ACM, la vecchia definizione di computer science come "lo studio dei fenomeni relativi ai computer", che risale al 1970, va sostituita con "lo studio dei processi di informazione, naturali e artificiali".

Lean Primer

Una introduzione sintetica ed efficace al pensiero "lean", di Craig Larman e Bas Vodde.

Jacobson su UML

Ivar Jacobson (uno dei padri di UML): Taking the temperature of UML

"After all, UML was only a notation, not a silver bullet [...] Today the world looks upon UML with a more balanced perspective. UML is not the ”silver bullet” it was sold as ten years ago. Nor is it as bad as academicians, agilistas and competitors claimed five years ago. Used appropriately it is a practical tool for raising the level of abstraction on software from the level of code to the level of the overall system."

Software Engineering sorpassato?

Software Engineering: An Idea Whose Time Has Come and Gone?
Tom DeMarco, IEEE Software, July/August 2009

Quanto è importante, quanto decisivo il ruolo delle metriche e dei sistemi di controllo per il successo di un progetto? DeMarco rianalizza uno dei suoi testi più influenti, Controlling Software Projects, del 1982, e ne critica l'impostazione globale.

"The book for me is a curious combination of generally true things written on every page but combined into an overall message that’s wrong.
It’s as though the book’s young author had never met a metric he didn’t like. The book’s deep message seems to be, metrics are good, more would be better, and most would be best. [...]

I’m gradually coming to the conclusion that software engineering is an idea whose time has come and gone. I still believe it makes excellent sense to engineer software. But that isn’t exactly what software engineering has come to mean. The term encompasses a specific set of disciplines including defined process, inspections and walkthroughs, requirements engineering, traceability matrices, metrics, precise quality control, rigorous planning and tracking, and coding and documentation standards. All these strive for consistency of practice and predictability.
Consistency and predictability are still desirable, but they haven’t ever been the most important things."

Erodoto: divisione del lavoro in medicina (antico Egitto)

Erodoto, Storie (libro II, 84)

"L'arte della medicina è da loro [Egiziani] divisa nel modo seguente: ognuno è medico di una sola malattia e non di più. Ogni luogo perciò è pieno di medici, perché ci sono i medici degli occhi, quelli della testa, dei denti, quelli delle malattie intestinali e quelli delle malattie incerte."

27 luglio 2009

Mari sul design

Un libro di Enzo Mari sul design:
Lezioni di disegno. Storie di risme di carta, draghi e struzzi in cattedra. Rizzoli 2008.

Il design (architettura, ma molti spunti sono trasferibili al software), la formazione al design, la società. Scritto e disegnato a mano, con intrecciarsi sapiente di testo corsivo e disegni.

10 luglio 2009

Etica del software

Un numero speciale di IEEE Computer, June 2009, sugli aspetti etici della produzione di software.

Tra gli articoli, "The public is the priority: making decisions using the Software Engineering Code of Ethics", di Donald Gotterbarn e Keith W. Miller, che spiega come si può e si deve usare il Codice Etico di Sviluppo Software di ACM e IEEE Computer Society, del quale potete trovare qui la versione italiana.

Al prezzo più basso

Nelle gare d'appalto, spesso vince il fornitore che offre il prezzo più basso. E cominciano i guai, dato che "offerte e stime troppo basse sono spesso indicative di una scarsa competenza".

"How to avoid selecting bids based on overoptimistic cost estimates", è un articolo di Magne Jorgensen, pubblicato su IEEE Software May/June 2009.
L'articolo riporta i risultati di una serie di studi e sondaggi, e offre una serie di raccomandazioni utili per il processo di selezione.

Come rompere il software

How to break software. A Practical Guide to Testing, di James A. Whittaker, Addison-Wesley 2002.
Poca teoria, tanta pratica, suggerimenti concreti, anche un CD con tool per simulare problemi (poca memoria, connessioni interrotte, hardware mal funzionante...) nell'ambiente che ospita le applicazioni da testare. Testo utile e ben scritto.

Software per il sociale

Negli Usa, da anni, la computer science ha perso attrattiva per i giovani come oggetto di studio universitario. Per renderla più attraente, sostiene Michael Buckley, professore a Buffalo, è necessario che i problemi informatici trattati durante la formazione universitaria (casi studio, esercizi) contribuiscano a risolvere problemi sociali.

Michael Buckley: Computing as Social Science, Communication of the ACM, April 2009.

Fucine di software

Le Software Forges (fucine di software) sono ambienti collaborativi nati per lo sviluppo e la diffusione di software open source, il più famoso dei quali è probabilmente SourceForge. Negli ultimi anni, l'esperienza ha avuto un progressivo allargamento anche agli ambiti aziendali, con la creazione di fucine di software all'interno di singole organizzazioni.
Dirk Riehle e altri suoi colleghi di SAP spiegano su IEEE Software March/April 2009 le caratteristiche della fucina interna di SAP e fanno alcuni confronti con quelle, sempre interne, di IBM, HP e Microsoft.

Tracciabilità multimediale dei requisiti

I requisiti si possono scoprire in molti modi. Anche con registratori e videocamere, ormai presenti in diversi telefoni cellulari. Come gestire la tracciabilità, quando la fonte documentale del requisito è un audio o un video?

Il tema è oggetto di un articolo di Olly Gotel e Stephen Morris, "More than Just 'Lost in Translation'", su IEEE Software March/April 2009.

04 giugno 2009

Sull'Italia attuale

"If a nation expects to be ignorant and free, in a state of civilization, it expects what never was and never will be."
Thomas Jefferson

Software Embedded: dati

"Il mercato mondiale per i sistemi embedded è di circa 160 miliardi di euro, con una crescita annuale del 9 per cento.
[...]
Le nuove auto hanno attualmente da 20 a 70 control unit, con più di 100 milioni di linee di codice [...]".

L'articolo, di Christof Ebert e Capers Jones su IEEE Computer di aprile 2009, è ricco di dati utili per la comprensione delle specificità e del peso economico della "nicchia" dell'embedded nel contesto del mercato software globale: "Embedded Software: Facts, Figures, and Future".

23 maggio 2009

Giochi per educare gli informatici

"Puzzling Problems in Computer Engineering", un articolo di Behrooz Parhami su IEEE Computer, marzo 2009.

Una serie di giochi-problemi messi a punto dall'University of California, Santa Barbara. L'articolo è a pagamento, ma l'autore ha pubblicato un sito web da cui i giochi-problemi possono essere scaricati gratuitamente.

Accreditare i software engineer?

"Licensing Software Engineers?" è un articolo di Philippe Krutchen su IEEE Software, nov/dec 2008.

Krutchen parte citando Dilbert di Scott Adams: "The goal of a software engineer is to retire without having caused any major catastrophe", e argomenta in modo convincente in favore di una qualche forma di accreditamento per chi progetta sistemi critici.

Afferma tra l'altro: "Accreditare i software engineer non c'entra nulla con l'escludere qualcuno dallo sviluppo software. Solo alcuni devono mettere la firma su un progetto di software critico, che può causare la morte di persone. Non tutti quelli che lavorano in un ospedale devono essere dottori ."

22 maggio 2009

Organizzazione e qualità del software

La complessità dell'organizzazione coinvolta nello sviluppo software potrebbe essere il fattore più importante per prevedere la qualità del software stesso.

Uno studio empirico condotto da due ricercatori Microsoft e da Victor Basili (Università del Maryland) definisce otto misure relative alla struttura organizzativa, e le applica su dati provenienti dal progetto di Windows Vista.

Secondo lo studio, le misure sulla struttura organizzativa costituiscono un indicatore affidabile per prevedere la qualità del software. Più affidabile di altri indicatori che vengono usati comunemente, come il numero di difetti pre-release, il numero di dipendenze, la complessità ciclomatica, il numero di modifiche in corso d'opera.

TED in italiano

TED (Technology Entertainment Design) è un ciclo di conferenze internazionali molto interessante.

La durata massima di ogni conferenza è di 20 minuti, e i relatori ed i temi affrontati sono eccellenti.

Ora alcune delle conferenze sono state sottotitolate in italiano, e vale la pena godersele.

19 aprile 2009

I bambini imparano da soli

Un video che mi ha colpito. Un computer collegato a internet messo a disposizione di bambini in remoti villaggi indiani, senza insegnanti, per bambini che non conoscevano l'inglese. E i risultati.

Su TED, la presentazione di Sugata Mitra.