Archivi categoria: software

La qualità del codice software è importante

La qualità del codice è importante, scrive Bjarne Stroustrup, l’ideatore del linguaggio di programmazione C++ , in un articolo pubblicato a gennaio 2012 su IEEE Computer.

Importante, in particolare, per il software presente in quei dispositivi su cui la nostra vita quotidiana si regge. Il software che controlla le automobili, i treni, gli aerei. Ma anche i dispositivi medici, gli apparati di controllo ambientale, i telefoni cellulari, o i PC tramite i quali accediamo ai conti bancari.

Stroustrup definisce tutto il software che può creare danni fisici, ambientali o economici come software infrastrutturale, e sostiene che deve essere progettato e implementato diversamente dagli altri tipi di software, quelli meno rischiosi per gli esseri umani:

“Infrastructure software needs more stringent correctness, reliability, efficiency, and maintainability requirements than non- essential applications. This implies greater emphasis on up-front design, static structure enforced by a type system, compact data structures, simplified code structure, and improved tool support. Education for infrastructure and application developers should differ to reflect that emphasis.”

Interessante, tra l’altro, l’opinione di Stroustrup contraria al Model-Driven Development per il software infrastrutturale: “Many tasks aren’t mathematically well-defined, resource constraints can be draconian, and we must deal with hardware errors. I see no alternative to programmers and designers directly dealing with code for most of these tasks.”

Duraturo – adattabile

Il web è il più grande laboratorio mai esistito per studiare il comportamento umano, secondo Gerry McGovern:

“The Web facilitates continuous testing and improvement. Great web designs are responsive and flexible. They allow for rapid innovation based on feedback.”

Dal “Built-to-last” (fatto per durare) al “Built-to-change” (fatto per cambiare).

Sulla stessa linea, per approfondire, l’ottimo libro di Eric Ries, The Lean Startup.

Value delivery

Fornire valore agli stakeholder (le parti interessate al rilascio di un prodotto) è ciò che si chiede allo sviluppo software.
Ma le specifiche dei requisiti spesso dettagliano solo i dettagli sulle funzionalità, anziché affrontare in modo diretto gli interessi degli stakeholder e chiarire ciò che per gli stakeholder è davvero importante.

“What’s Fundamentally Wrong? Improving our Approach Towards Capturing Value in Requirements Specification”, un articolo di Tom Gilb con Lindsey Brodie, su Requirements Network (per leggerlo, serve una registrazione gratuita).

Tecno austerità

“Meno è meglio”.

“I tecnologi si stanno risvegliando ai vantaggi del minimalismo, per due motivi: il fastidio per l’eccessivo numero di funzionalità dei prodotti da parte dei clienti che vogliono solo che le cose funzionino, e una forte richiesta da parte di clienti meno ricchi provenienti dai paesi in via di sviluppo.”

The Economist, 12 giugno 2010.

Giochi per la formazione IT

Il mio interesse per il software è scaturito, trent’anni fa, quando mi è stato presentato un problema da risolvere con un flow chart, e mi ha appassionato come i giochi della Settimana Enigmistica.

L’uso dei giochi per la formazione sta forse crescendo: “Puzzle-Based learning for Engineering and Computer Science“, su IEEE Computer, April 2010. (In inglese, i puzzle non sono solo i giochi in cui si incastrano le tesserine, ma anche tutti i giochi logici, linguistici, enigmistici, matematici.)

Scratch: programmazione per bambini

Scratch è un linguaggio di programmazione pensato per i bambini.

Per chi lo usa (anche per gli adulti), è molto divertente, e permette di fare un sacco di cose interessanti.

Dal punto di vista tecnico è potente: il MIT (Massachusetts Institute of Technology) Media Lab ha realizzato un eccellente linguaggio didattico.

Su Communications of the ACM, novembre 2009, un articolo di presentazione da parte degli autori (scaricabile ma a pagamento per i non soci ACM).

Altri articoli su Scratch (gratis).

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.

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.”