14 giugno 2010

Ostacoli all'agilità

Articolo breve e succoso di Johanna Rothman: "Barriers to Agility". Argomenti:
  • Scegliere il giusto progetto pilota
  • Scegliere il gruppo giusto per il progetto pilota
"Se non avete la possibilità di creare un piccolo gruppo di lavoro multifunzionale, che lavori su un unico progetto, non avete l'ambiente organizzativo giusto per iniziare a operare in modo agile."

L'articolo è apparso su PragPub, una rivista online mensile pubblicata dai Pragmatic Programmers.

27 maggio 2010

Tecnica: atto tradizionale efficace

"J'appelle technique un acte traditionnel efficace (et vous voyez qu'en ceci il n'est pas différent de l'acte magique, religieux, symbolique). Il faut qu'il soit traditionnel et efficace. Il n'y a pas de technique et pas de transmission, s'il n'y a pas de tradition. C'est en quoi l'homme se distingue avant tout des animaux: par la transmission de ses techniques et très probablement par leur transmission orale."

Marcel Mauss: "Les techniques du corps", 1934

Arrivo a Mauss , sociologo noto soprattutto per i suoi studi sul significato del dono, tramite un articolo di Edoardo Sanguineti, uscito sul Corriere della Sera lo stesso giorno in cui il poeta e critico è morto durante un'operazione in un ospedale di Genova.

Una poesia di Yeats

W.B. Yeats - "He Wishes For the Cloths of Heaven"

HAD I the heavens’ embroidered cloths,
Enwrought with golden and silver light,
The blue and the dim and the dark cloths
Of night and light and the half light,
I would spread the cloths under your feet:
But I, being poor, have only my dreams;
I have spread my dreams under your feet;
Tread softly because you tread on my dreams.

W.B. Yeats (1865–1939)

Ho incontrato questa poesia seguendo un
nuovo intervento di Ken Robinson, esperto inglese di formazione, su TED.
Per chi non conoscesse Robinson, può essere utile seguire l'intervento precedente, con sottotitoli in italiano.

26 maggio 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.)

Architettura e agile

Un numero di IEEE Software, March/April 2010, con articoli incentrati sul rapporto tra "agilità" e architettura.

Rilevante un testo di Roland Faber, "Architect as Service Providers", secondo cui gli architetti software devono assumere la responsabilità di soddisfare i requisiti non funzionali, mentre ai progettisti / sviluppatori compete quella di soddisfare i requisiti funzionali.

20 maggio 2010

Demotivators

http://www.despair.com/viewall.html

Tra i miei favoriti:

"Quality. The race for quality has no finish line."

14 maggio 2010

Vecchi programmatori

Interessante l'intervento di Brian Marick, e interessanti i commenti.

13 maggio 2010

Babok online

Babok sta per Business Analysis Book of Knowledge, una guida alle attività di analisi prodotta da un organismo chiamato IIBA (International Institute of Business Analysis).

Il Babok è acquistabile come libro, ma può anche essere letto online gratuitamente su Google Books.

10 maggio 2010

iPad e usabilità

Uno studio del Nielsen Norman group, scaricabile gratuitamente.

19 aprile 2010

Semat

Semat è un'iniziativa di rifondazione dell'ingegneria del software, avviata nel novembre 2009.

Proposta da Ivar Jacobson, Bertrand Meyer e Richard Soley (OMG), ha un sito web dove è possibile consultare obiettivi, documenti prodotti e stato dei lavori.

Interessanti i "position papers" pubblicati da alcuni tra gli aderenti.

Interessante la critica di Alistair Cockburn, che si è ritirato dall'iniziativa dopo il primo meeting di lavoro.

15 aprile 2010

Database NoSQL

Per chi deve gestire grandi quantità di dati non strutturati i DBMS relazionali non sono l'unica soluzione possibile.
Database non relazionali, come Dynamo di Amazon e BigTable di Google sono stati il punto di partenza per una serie di altri prodotti, ora raggruppati sotto la sigla NoSQL.

Vantaggi e svantaggi dei DBMS NoSQL sono trattati in un articolo di Neal Leavitt su IEEE Computer di febbraio 2010.

Testing SOA

Il Software Engineering Institute (SEI) ha pubblicato un report sul testing in architetture Service Oriented (SOA).

Il report comprende 65 raccomandazioni per affrontare i problemi specifici delle architetture SOA.

Chaos Report 2009

Il Chaos Report è una fonte informativa molto citata sulle percentuali di successo dei progetti di sviluppo software. Ha una copertura di migliaia di progetti internazionali, in vari settori merceologici.

L'edizione 2009, pubblicata come sempre da Standish Group, indica un significativo peggioramento rispetto ai report precedenti.

32% di successo (progetti completati nei tempi e nei costi previsti, con le funzioni previste).
44% di successo o insuccesso parziale (progetti in ritardo, costi extra, meno funzioni di quanto richiesto).
24% di fallimento (progetti cancellati o che hanno prodotto sistemi mai usati).

"I risultati di quest'anno rappresentano il più alto tasso di fallimento nell'ultimo decennio", secondo lo Standish Group.

08 aprile 2010

Eccezioni nella TV italiana

Non tutta la TV italiana fa schifo. Report è eccellente.

Ma esistono anche altri casi eccezionali, anche se le eccezioni, quello che varrebbe la pena vedere, viene di solito mandato in onda in orari improbabili e improponibili per chi lavora.
Ad esempio, alle 12,25 del venerdì, una rubrica di notizie economiche veloci che si chiama Cifre in chiaro.

13 marzo 2010

Abreu: El Sistema

Jose Antonio Abreu, ideatore di El Sistema, un meccanismo di educazione musicale per i bambini e i giovani del Venezuela.

Su TED (Technology, Entertainment, Design):
http://www.ted.com/talks/jose_abreu_on_kids_transformed_by_music.html

Un riferimento ad una iniziativa di Claudio Abbado, per El Sistema in Italia.

12 marzo 2010

Video: Come si usa UML

Ho pubblicato una serie di 5 filmati video su
Come si usa UML

Prima parte: Cos'è UML (2 video):





Seconda parte: UML in pratica (3 video):








Metodi formali di sviluppo software

Perché i metodi formali di sviluppo software, sovente amati nel mondo accademico, non hanno avuto successo nel mondo reale?

Il motivo non è una presunta scarsa professionalità degli sviluppatori, ma il fatto che i metodi formali non sono adeguati per l'uso in ambiti operativi:
"Reports that formal methods are ready for industrial use must be taken with a grain of salt; if they were ready, their use would be widespread."

E il motivo non è neppure una presunta mancanza di fondi per la ricerca:
"More money is not the answer. [...] Research in formal methods for software development has been very well funded. More money won't help; more thinking will."

Sono affermazioni di David Parnas, uno tra i più autorevoli teorici del mondo del software.

David Lodge Parnas: "Really Rethinking 'Formal Methods'", in IEEE Computer, January 2010.

Scrivere in modo chiaro: pubblica amministrazione USA

Un sito del governo USA dedicato alla comunicazione nei confronti dei cittadini: http://www.plainlanguage.gov/

In particolare, il documento (pdf) che fornisce le linee guida è un ottimo esempio di comunicazione efficace: http://www.plainlanguage.gov/howto/guidelines/bigdoc/fullbigdoc.pdf

29 gennaio 2010

Chi fa testing

da Joel on Software:

"Who should be a tester? That’s tricky! Software testing is one of those careers that isn’t that well known, so a lot of people who would be great at testing and would probably enjoy it a lot never consider applying for jobs as testers.

Signs of a good tester:

  • Scientific
  • Loves a good puzzle, even the kind that takes days to solve
  • Likes to think about things methodically
  • Generally likes working with software and computers
[...] Since testing can be taught on the job, but general intelligence can’t, you really need very smart people as testers, even if they don’t have relevant experience. Many of the best testers I’ve worked with didn’t even realize they wanted to be testers until someone offered them the job."

21 gennaio 2010

A fine 2010, CMMI versione 1.3

Sono previste per fine anno le nuove versioni dei modelli CMMI for Development (CMMI-DEV), CMMI for Acquisition (CMMI-ACQ), CMMI for Services (CMMI-SVC).

Un articolo su Crosstalk (The Journal of Defense Software Engineering) presenta le caratteristiche delle nuove versioni.

Automation Paradox

"when a Metro subway train rammed into another train in Washington, D.C. last June, designers had to confront the unpleasant reality that automation may have been the cause.
The accident, which killed nine people and injured 80, may have been rooted in a computer malfunction and the operator’s inability to manually apply the brakes quickly enough.
The Metro train accident lies at the heart of what human factors experts refer to as the “automation paradox.” As automated systems become increasingly reliable and efficient, the more likely it is that human operators will mentally “switch off” and rely upon the automated system. And as the automated system becomes more complex, the odds of an accident or mishap may
diminish, but the severity of a failure is often amplified."

"Making Automation Work", di Samuel Greengard, in Communications of the ACM, dicembre 2009

Insegnamento online

The Inevitability of Teaching Online, di Gregory W. Hislop in IEEE Computer, dicembre 2009.

Conclusione:
"Faculty members who are not near retirement must come to terms with this seismic shift in higher education or risk being left behind. This is not to suggest
that traditional, face-to-face teaching will fade away. But it seems clear that online teaching will be a growing proportion of teaching overall, both in the form of completely online courses and blended courses with significantly reduced face-to-face interaction. To stay ahead of the wave, all instructors and institutions need to begin serious efforts in online learning today."

13 gennaio 2010

Le condizioni dell'Italia

Rapporto Istat "Noi Italia. 100 statistiche per capire il Paese in cui viviamo", edizione 2010.

Documento di sintesi in pdf.

Sito web con i dettagli.

Le condizioni della lingua italiana

Un comunicato congiunto dell'Accademia della Crusca, dell'Accademia dei Lincei, dell'Associazione per la Storia della Lingua Italiana:

http://www.accademiadellacrusca.it/lingua_italiana_scuola_sviluppo_il_documento.shtml

24 dicembre 2009

Contesto, requisiti, architettura

Tra i rischi che impattano sulle architetture software due sono particolarmente rilevanti:
  • la definizione dei confini del sistema (cioè del contesto, delle relazioni del sistema con altri sistemi esterni)
  • la vaghezza o la mancata definizione dei requisiti non funzionali
Learning from Failure, Part 1: Scoping and Requirements Woes , di Frank Buschmann, su IEEE Software nov/dec 2009.

Self-Management dei gruppi di lavoro

"The basic work unit in innovative software organizations is the team rather than the individual."

Uno studio relativo ai problemi che incontrano i gruppi di lavoro auto-organizzati nell'ambito dello sviluppo software, effettuato su 5 gruppi di lavoro in 3 organizzazioni, per la durata di tre anni, da un gruppo di ricercatori norvegesi.

Lo studio si è concentrato sia su problemi ingenerati all'interno dei gruppi di lavoro, sia su problemi derivanti dalla cultura e dai comportamenti organizzativi.

Alcune raccomandazioni conclusive:
  • Formare le persone anche su temi non strettamente legati al loro ruolo
  • Collocare il gruppo in un'unica stanza
  • Valorizzare i generalisti
  • Far crescere la fiducia e la responsabilizzaazione
  • Assegnare le persone a un solo progetto per volta.
Overcoming Barriers to Self-Management in Software Team, in IEEE Software, nov/dec 2009.

Documentazione agile

"In other engineering disciplines, the need to produce design documentation is considered de rigeur, a sometimes unpleasant but necessary chore for the sake of higher good. [...]

The primary consumers of design documentation are those who are responsible for maintaining and evolving the system.

[...] we need design documentation at a higher level of abstraction, stripped of unnecessary technological detail and closely coupled to application concepts and requirements. These should incorporate design rationale, including descriptions
of rejected design alternatives. These are, in fact, architectural specifications: technology-independent descriptions of the higher-level structure and behavior of systems along with key design principles."

Bran Selic, Agile Documentation, Anyone?, in IEEE Software, nov/dec 2009.

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

Silos nei sistemi IT bancari

http://www.economist.com/businessfinance/displaystory.cfm?story_id=15016132

La mancata integrazione degli applicativi ha creato e continuerà a creare problemi per le banche.

09 dicembre 2009

Un mondo di hit

The Economist, November 28th 2009: A world of hits

" “Both the hits and the tail are doing well,” says Jeff Bewkes, the head of Time Warner, an American media giant. Audiences are at once fragmenting into niches and consolidating around blockbusters. Of course, media consumption has not risen much over the years, so something must be losing out. That something is the almost but not quite popular content that occupies the middle ground between blockbusters and niches. The stuff that people used to watch or listen to largely because there was little else on is increasingly being ignored. [...].

Perhaps the best explanation of why this might be so was offered in 1963. In “Formal Theories of Mass Behaviour”, William McPhee noted that a disproportionate share of the audience for a hit was made up of people who consumed few products of that type. (Many other studies have since reached the same conclusion.) A lot of the people who read a bestselling novel, for example, do not read much other fiction. By contrast, the audience for an obscure novel is largely composed of people who read a lot. That means the least popular books are judged by people who have the highest standards, while the most popular are judged by people who literally do not know any better. An American who read just one book this year was disproportionately likely to have read “The Lost Symbol”, by Dan Brown. He almost certainly liked it."

23 novembre 2009

Requisiti legati al luogo fisico

"The application shall display a local street map at all times".

Alcune implicazioni legate ai requisiti nell'uso di sistemi mobili. Neil Maiden, su IEEE Software September/October 2009.

Software sviluppato dagli utenti

La distinzione tra utenti e sviluppatori software sta rapidamente svanendo, scrivono Gerhard Fischer, Kumiyo Nakakoji e Yunwen Ye su IEEE Software, September/October 2009.

"Crediamo che gli esperti di dominio, cioè coloro che hanno i problemi, debbano farsi carico di svilupparsi il software che serve loro. [...]

The World Wide Web’s short history provides convincing evidence of the quick dissolution of the sharp distinction of design and use. In the Web’s
first decade, a clear separation between developers and users was predominant, in which users used whatever professional Web developers gave them.
As we enter the Web 2.0 era, we’re witnessing a much richer ecology of user participation. Users now also participate in various development activities
that continuously evolve Web applications through adoption, adaptation, appropriation, and mashing-up of existing Web systems."

Spam: quanti ci cascano

Non è semplice sapere quanti cadono vittima dello spam. Gli spammer non lo dicono, ma se continuano a mandare messaggi non richiesti evidentemente lo spam funziona.
Un esperimento di simulazione di spamming, finanziato dal governo USA, ha fornito per la prima volta alcune risposte statisticamente significative.

Good-bye ai DBMS relazionali?

Michael Stonebracker: The End of a DBMS Era (Might Be Upon Us).

Stonebracker è uno dei nomi storici del settore dati. Secondo lui, i DBMS relazionali attualmente leader di mercato sono pronti per la pensione, in quanto inadeguati a fornire le prestazioni necessarie a diverse tipologie innovative di sistemi, come data warehouse, OLTP, applicazioni scientifiche, motori di ricerca. Per ogni ambito esistono altre soluzioni che forniscono prestazioni migliori.

"Potreste chiedervi, 'e se per me le prestazioni non sono una fonte di preoccupazione?'. Risposta: Usate i DBMS relazionali open source. Sono maturi, affidabili, e soprattutto gratis".

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.

04 aprile 2009

Hardware/Software Codesign

An adaptive hardware/software codesign model enables consumer electronics companies to reduce production cost and maximize profits by progressively modifying codesign options over the life cycle.

A Survival Kit: Adaptive Hardware/Software Codesign Life-Cycle Model, di Dong-hyun Lee e altri, su IEEE Computer, febbraio 2009.

24-Hour Knowledge Factory

Tre turni: uno in Africa o Europa, uno in Asia, uno in America.

Tutti lavorano di giorno, alla luce del sole (anche con benefici per la salute, dato che lavorare di notte aumenta i rischi di cancro al seno e alla prostata).

L'articolo è di Amar Gupta, su IEEE Computer di gennaio 2009.

10 marzo 2009

Product Owner

Il Product Owner è uno dei ruoli principali di Scrum, uno dei processi agili più diffusi.
In italiano, lo si può tradurre come "proprietario del prodotto", o "responsabile del prodotto".

Dal punto di vista di chi sviluppa software, corrisponde in linea di massima al ruolo di "committente", cioè di chi ha la responsabilità di decidere i requisiti da soddisfare, le priorità di realizzazione, l'accettabilità dei risultati forniti dagli sviluppatori.

Certamente è il ruolo più importante per il successo di un prodotto, di un sistema. Ma è arduo da svolgere, perché non esiste un percorso formativo per diventare Product Owner, e può capitare che il ruolo non sia riconosciuto in termini di autorità e responsabilità all'interno delle organizzazioni.

Sul ruolo di Product Owner, uno scritto interessante di Jeff Patton.

01 marzo 2009

Il (software) design come fatto sociale

Richard Gabriel è uno dei leader storici della comunità dei software design pattern.

Ha pubblicato da poco uno scritto interessante, Designed as Designer, in cui affronta la tesi romantica della creazione di un design (di un'architettura) come espressione totalmente autonoma di un'individualità. Non è certo il primo a smontare la creatività romantica, ma la sua argomentazione è supportata da esempi illuminanti.

Gabriel evidenzia come ogni design (di un edificio, di una poesia, di un software) sia il frutto di due relazioni:
  • del designer con altri designer, e più in generale con altre persone (collaboratori, revisori, ecc.)
  • del designer con il materiale trattato, che condiziona e influenza ogni scelta di design
Il design non è la semplice implementazione nella materia di una creazione già avvenuta nella testa del progettista, ma un graduale e progressivo processo di lavoro in cui le due relazioni (con la materia, e con le opinioni e i prodotti di altre persone) prendono forma.

Lo sviluppo sw è un fatto sociale, più che tecnologico

"As we realize that software development is often more about people - collaboration, communication, and coordination - than technology, developing 'soft skills' such as meeting-management techniques is becoming more important".

Nell'articolo "When Robert Rules", su IEEE Software Jan/Feb 2009, Philippe Krutchen segnala un metodo di gestione delle riunioni pubblicato nel 1896 da un generale USA, Henry M. Robert, e ancora utile oggi, le Robert's Rules of Order.

06 febbraio 2009

Evolutionary System Development

Un articolo di Peter Denning, Chris Gunderson e Rick Hayes-Roth, tre esperti IT di lungo corso che lavorano attualmente per la US Navy, la marina statunitense, segna a mio avviso una tappa importante nel percorso verso la piena affermazione dei processi agili.

"The software engineering community has hotly debated preplanned versus agile processes. After a while they reached a truce where they agreed that preplanning is best for large systems
where reliability and risk-avoidance are prime concerns, and agile is best for small to medium systems where adaptability and user friendliness are prime concerns.
We challenge that conclusion. Preplanning is ceasing to be a viable option for large systems. [...]

Whereas preplanned development seeks to avoid risks, evolutionary development mimics nature and embraces risks. The developers purposely expose emerging systems to risks to see how they fail, and then they build better system variants. It is better to seek risk out
and learn how to survive it. [...]
All the evidence says that that evolutionary processes works for systems large and small, and that risk seeking is the fastest route to fitness. There is too much at stake to continue to allow us to be locked into a process that does not work."

L'articolo è stato pubblicato nel numero di dicembre 2008 di Communications of the ACM.

04 febbraio 2009

Comunità di contenuti

Un articolo di Wojciech Cellary, universitario di Poznan, "Content Communities on the Internet", confronta le comunità territoriali (le relazioni che si stabiliscono nel luogo in cui si risiede) con le comunità che si formano su internet in merito ad uno specifico argomento (ad esempio gli appassionati della Fiat 500, o le persone interessate agli standard ISO9000).

L'analisi comparativa fa emergere alcuni aspetti interessanti, tra cui:
  • nelle comunità di contenuti, il fatto che le relazioni si stabiliscano su un unico argomento porta naturalmente ad una radicalizzazione delle posizioni
  • affinché la comunità di contenuti si sviluppi in modo positivo, la partecipazione non deve essere anonima.
L'articolo è apparso su IEEE Computer, November 2008.

Libro su BPMN

Scritto da Stephen White (il coordinatore del gruppo di lavoro che ha prodotto e fa evolvere lo standard) con la collaborazione di Derek Myers: BPMN Modeling and Reference Guide, Future Strategies 2008.

BPMN (Business Process Modeling Notation) è lo standard per la rappresentazione dei processi di business, gestito dall'Object Management Group (OMG).

Il libro non aggiunge nulla a quanto contenuto nella specifica ufficiale OMG, scaricabile gratuitamente - ma è organizzato e scritto in un modo più comprensibile. Alcuni esempi sono diversi rispetto a quelli presenti nella specifica ufficiale - in altri casi, gli esempi sono identici.

Si poteva fare di meglio, dato il livello di competenza degli autori, ma il libro costituisce comunque un'utile introduzione all'argomento.

29 gennaio 2009

PMBOK 4

Nuova edizione del Project Management Book of Knowledge (PMBOK), la quarta, uscita il 31-12-2008.

Il Project Management Institute (PMI) ha pubblicato un contemporaneo aggiornamento anche di altri tre propri standard:
  • Organizational Project Management Maturity Model (OPM3)
  • Program Management
  • Portfolio Management
Un aspetto di cronaca: il prezzo praticato dal PMI ai propri soci per acquistare lo standard è superiore a quello praticato da Amazon.

Le migliori scuole del Piemonte

Classifica delle scuole medie superiori del Piemonte, compilata dalla Fondazione Agnelli.

Magari le singole collocazioni sono discutibili. Magari sono discutibili anche i criteri di valutazione.

Ma è comunque un grosso passo avanti il fatto che si pensi a rendere esplicita, pubblicamente confrontabile e discutibile, la domanda che genitori e studenti si fanno, da sempre, su quali siano le scuole più affidabili.

Da notare la collocazione in graduatoria delle scuole private, giù giù giù.

06 gennaio 2009

Fare attenzione, sempre più difficile

Email, SMS, Facebook, ... se non si è disciplinati, gli stimoli che ci distraggono ci possono risucchiare.

La capacità di lavorare, di progredire, di ottenere risultati si basa sulla concentrazione, sul prestare attenzione. Ma ogni fonte informativa ed ogni canale di comunicazione si ripromettono di ottenere, sia pure per poco, la nostra attenzione. Di distrarci dal nostro focus.

Questo articolo di Mike Elgan lo spiega bene. Sei ore di lavoro concentrato ottengono ben di più di dodici ore di lavoro inframmezzato da email, telefonate, sms, navigazioni web, ecc.

29 novembre 2008

Usabilità, requisiti e progetti agili

Jakob Nielsen è un esperto di usabilità. Nella sua newsletter Alertbox parla del rapporto tra usabilità e approcci agili. L'argomentazione di Nielsen prende l'avvio dai requisiti:

"Requirement specifications are always wrong.

At best — when derived with care — the requirements might reflect what
users want. More commonly, however, they reflect the desires of user
'representatives' who are too far removed from the coalface to know the
details of the real work. In any case, what users want and what users need
are two different things, which is why it's long been a primary usability
guideline to watch what users do, rather than listen to what they say".

CMMI e Agile

Il Software Engineering Institute (SEI) è un'istituzione finanziata dal governo e da grandi aziende USA. Nei corsi che tengo sono solito raccomandare il sito del SEI come una delle fonti più autorevoli di documentazione sulle tematiche dello sviluppo software. Documenti di alta qualità, e gratuiti.

Tra le altre cose, il SEI è noto per aver creato il CMMI-SW (Capability Maturity Model Integration), un modello per la valutazione del grado di maturità delle organizzazioni che sviluppano software. Modello applicato dal governo americano e da molte organizzazioni internazionali per selezionare i propri fornitori nello sviluppo software.

Il CMMI-SW è spesso ritenuto, a torto, come un modello che porta a burocratizzare lo sviluppo, pesante e con effetti negativi sulla produttività e sulla flessibilità. Può essere applicato così, è vero. Ma pesantezza e burocrazia non sono affatto insite nel modello, bensì sono causate da chi lo interpreta in modo superficiale.

Una recente pubblicazione del SEI, "CMMI or Agile: Why Not Embrace Both!" evidenzia la compatibilità del CMMI con gli approcci agili.

Risorse educative aperte

Global Warming Toward Open Educational Resources, un articolo di Richard G. Baraniuk e C. Sidney Burrus su Communications of the ACM, settembre 2008.

Sulla diffusione di ambienti e strumenti gratuiti per la formazione. Tra cui:

MIT: Open-CourseWare e OCW consortium

Rice University: Connexions

Open University: OpenLearn

Carnegie Mellon University: Open Learning Initiative

Destino degli strumenti Telelogic

Dopo parecchi mesi, si è delineato il quadro di integrazione degli strumenti Telelogic (per la gestione dei requisiti e per la modellazione UML - SysML) in ambito IBM.

Il problema essenziale era come far convivere l'offerta Telelogic con l'offerta concorrente della linea Rational. Un paio di articoli (SDTimes , eWeek) fanno finalmente emergere cosa IBM propone ai propri clienti.

Modelli di stima dei costi nel software

Cocomo (Constructive Cost Model) è ritenuto comunemente il modello per la stima dei costi più completo ed affidabile in ambito software.

Achievements and Challenges in Cocomo-Based Software Resource Estimation (su IEEE Software, September-October 2008) è un articolo scritto dal padre di Cocomo, Barry Boehm, insieme a Ricardo Valerdi del MIT.

L'articolo fa il punto sullo stato dell'arte, le criticità e le tendenze nell'evoluzione dei modelli previsionali.

Tecnologie digitali e disintegrazione sociale

The Dea[r]th of Human Understanding. La penuria (la morte) della comprensione umana. Un articolo di Neville Holmes su IEEE Computer, ottobre 2008.

Holmes cita Nicholas Carr (Is Google Making Us Stupid?), ma espande la sua analisi sul ruolo e sugli effetti dei videogiochi. Pessimista, e convincente.

Princìpi di software testing (Meyer)

Da un articolo di Bertrand Meyer, uno dei nomi più importanti nel campo del software design:
  • Principle 1: Definition. To test a program is to try to make it fail.
  • Principle 2: Tests versus specs. Tests are no substitute for specifications.
  • Principle 3: Regression testing. Any failed execution must yield a test case, to remain a permanent part of the project’s test suite.
  • Principle 4: Applying oracles. Determining success or failure of tests must be an automatic process.
  • Principle 5: Manual and automatic test cases. An effective testing process must include both manually and automatically produced test cases.
  • Principle 6: Empirical assessment of testing strategies. Evaluate any testing strategy, however attractive in principle, through objective assessment using explicit criteria in a reproducible testing process.
  • Principle 7: Assessment criteria. A testing strategy’s most important property is the number of faults it uncovers as a function of time.
Su alcuni di questi princìpi (in particolare sull'ultimo) ho dei dubbi. Ma vale la pena di leggere l'articolo (su IEEE Computer, agosto 2008), per chi ha la possibilità di accedere alla rivista (che consiglio).

10 novembre 2008

La nuvola

The cloud - la nuvola. L'infrastruttura di elaborazione evaporata.

O, meglio, servizi di elaborazione erogati allo stesso modo dell'energia elettrica, da grandi centrali che garantiscono una continua disponibilità. Le stanno costruendo, tra gli altri, Microsoft, Google, IBM, HP, Amazon.

Una soluzione attraente - in termini di costi - per diverse tipologie di potenziali clienti. Ma con rischi significativamente diversi rispetto ad altre forme di outsourcing.

Al cloud computing è dedicato un inserto pubblicato il 23 ottobre dall'Economist.

21 ottobre 2008

Italia: 80.000 imprese IT

La Camera di Commercio di Milano ha pubblicato i risultati di una propria elaborazione sui dati del registro imprese.

Riporto l'intestazione:
"LA CARICA DELLE 80 MILA IMPRESE INFORMATICHE ITALIANE
+7,4% in quattro anni, 4 miliardi di euro di commercio estero
25 mila nuove assunzioni di personale qualificato nel 2008
Lombardia e Milano prime in Italia per imprese. Seguono Roma e Torino."

Userei meno trionfali, visto lo stato dell'economia italiana in generale e del settore IT in particolare. 80 mila imprese (la grande maggioranza individuali!) è un dato sconsolante, indice di frammentazione e debolezza.

UML 2.2 e SysML 1.1

L'Object Management Group (OMG) ha approvato le nuove versioni di:

UML (Unified Modeling Language) 2.2, disponibile per il download la documentazione in formato beta con barre di cambiamento per evidenziare le pochissime novità.

SysML (Systems Modeling Language) 1.1, disponibile per il download al SysML Forum.

14 ottobre 2008

Software perfetto

"Perfect Software and other illusions about testing". È un libro di Gerald Weinberg, uscito da poco.

Tra tutte le attività collegate al software, il testing è l'attività più fraintesa. Anche dai professionisti dello sviluppo.

Il libriccino è sottile, scritto bene, si legge in fretta, non entra in dettagli tecnici. Un'ottima introduzione alla realtà del testing, per chiunque lavori in un progetto, per i manager, per i committenti. Anche per chi di software sa poco o nulla.

09 ottobre 2008

Story Maps

Rappresentare le funzionalità di un sistema in un modo comprensibile sia agli stakeholders che agli sviluppatori. E inoltre utile per indicare le priorità.

La tecnica delle "story maps" è semplice. Jeff Patton la descrive in questo intervento.

02 ottobre 2008

Moscow e priorità

Il primo corso a cui partecipai sull'analisi dei sistemi - tanti anni fa - insegnava ad usare per i requisiti una classificazione MoSCoW.

MoSCoW è un acronimo che sta per:
* Must have - si deve avere
* Should have - si dovrebbe avere
* Could have - si potrebbe avere
* Won't have - non si deve avere

Non ho mai usato la classificazione MoSCoW, anche se suggestiva. E non l'ho mai insegnata nei miei corsi. Ho sempre usato la tecnica di classificare i requisiti in termini di priorità, che ritenevo più efficace.

In realtà, comunque, non mi sono mai messo a ragionare a fondo sulla classificazione MoSCoW. L'ha fatto invece James Shore, in un intervento che condivido.

Precisare i requisiti

Un intervento di Tom Gilb su Requirements Network:
"Requirements Relationships: A Theory, some Principles, and a Practical
Approach"

Tom Gilb è uno dei padri dell'approccio iterativo e
incrementale, con il metodo Evo (1988).
Per quanto riguarda la gestione dei requisiti, il suo contributo
fondamentale è stato l'introduzione di Planguage, un linguaggio per
precisare i requisiti.

Requirements Network è un sito che pubblica settimanalmente articoli
sulla gestione requisiti.
Bisogna registrarsi con user e password per accedere, scaricare
articoli, commentare, intervenire.

I requisiti si scoprono meglio dopo

Esprimere requisiti per un sistema che esiste già è molto più facile che esprimerli per uno che non esiste ancora.
Vedi il sistema, lo usi, capisci quello che non funziona, quello che manca, quello che si potrebbe, vorrebbe, dovrebbe migliorare. Immediato.
Molto più facile che rispondere a domande su come si vorrà qualcosa che non esiste ancora, o sulla correttezza di un modello, o di una specifica.

Su questo assunto (di semplice buon senso) concordano tutti gli esperti di sviluppo software.

Naturalmente, bisogna vedere come trarne le conseguenze quando si cala l'assunto in un contesto di sviluppo professionale, con relazioni cliente-fornitore, contratti, ecc.
Su questo, un intervento interessante di Martin Fowler.

TED: idee che vale la pena diffondere

TED (Technology Entertainment Design). Ideas worth spreading.

Una collezione di video di durata contenuta (in genere non più di 20 minuti), con relatori e contenuti eccellenti. Non solo IT, purtroppo senza sottotitoli.

Tra quelli che ho visto:

Jill Bolte Taylor: My stroke of insight

Ken Robinson: Do schools kill creativity?

Benjamin Zander: Classical music with shining eyes

16 settembre 2008

Il web per i cellulari

La prossima estinzione del WAP, secondo quanto pubblicato da Software Development Times. I cellulari sono ormai diventati dei normali client.

Italia ancora meno competitiva nell'IT

La conferma di un trend, secondo una ricerca pubblicata dalla Economist Intelligence Unit e ripresa dal sito di Computerworld Italia

13 luglio 2008

Le scuole in Finlandia

Insegnare è un mestiere prestigioso, e selettivo. In Finlandia.

L'educazione è considerata "the centrepiece of national identity. So hard work and good behaviour are the norm; teaching tempts the best graduates (nearly nine out of ten would-be teachers are turned down)." Economist, 26 giugno 2008

Nove candidati all'insegnamento su dieci vengono scartati. I risultati si vedono: gli allievi delle scuole finlandesi compaiono ai vertici delle classifiche internazionali per capacità di comprensione ed espressione testuale, matematica, scienze.

04 luglio 2008

Co-evoluzione di problemi e soluzioni

Mentre ragioniamo sulle possibili soluzioni ad un problema, la stessa definizione del problema può dover essere riformulata.

Uno studio interessante sul disegno creativo, di Kees Dorst e Nigel Cross: "Creativity in the design process: co-evolution of problem-solution"

Il modello di co-evoluzione tra spazio dei problemi e spazio delle soluzioni è stato formalizzato in:

Maher, M L, Poon, J and Boulanger, S Formalising design exploration as co-evolution: a
combined gene approach, in Gero, J S and Sudweeks, F (eds.) Advances in Formal Design Methods for CAD, Chapman and Hall, London, UK (1996)

You Tube e simili

Mi colpiscono soprattutto due cose:

1. che nessuno, mai, prima d'ora, neppure i centri informativi più ricchi che siano mai esistiti, ha mai avuto a disposizione questa varietà di registrazioni in tempi così rapidi. Possiamo vedere ciò che è stato trasmesso ieri dalle televisioni di tutto il mondo, ma possiamo anche vedere filmati realizzati da una miriade di produttori non professionali, con punti di vista eventualmente contradditori rispetto alle versioni degli eventi rese pubbliche dai governi e dalle fonti informative consolidate.

2. che nessuno, mai, prima d'ora, ha mai potuto vedere e ascoltare tante persone viventi o vissute. Posso vedere filmati di Nietzsche, del Mahatma Gandhi, di Jimi Hendrix, di qualunque personaggio pubblico di cui abbia mai sentito parlare che sia vissuto negli ultimi cento anni o più. Ascoltare le voci. Diventerà (è già diventato) normale, ma io, oggi, lo trovo impressionante.

Incremental Commitment Model

Barry Boehm e Jo Ann Lane: "Using the Incremental Commitment Model to Integrate System Acquisition, Systems Engineering, and Software Engineering", in CrossTalk, October 2007

Many projects have difficulties in integrating their hardware, software, and human factor aspects.

In comparison to the software-intensive RUP, the ICM also addresses hardware and human factor integration. It extends the RUP phases to cover the full system life cycle: An Exploration phase precedes the RUP Inception phase, which is refocused on valuation and investment analysis. The RUP Elaboration phase is refocused on architecting (a term based on describing concurrent development of requirements, architecture, and plans),
which adds feasibility evidence; the RUP Construction and Transition phases are combined into the Development phase; and an additional Operation phase combines
operations, production, maintenance, and phase-out. Also, the names of the milestones
are changed to emphasize that their objectives are to ensure stakeholder commitment
to proceed to the next level of resource expenditure based on a thorough feasibility and risk analysis, and not just on the existence of a set of system objectives and a set of architecture diagrams. Thus, the RUP Life-Cycle Objectives (LCO) milestone is called the Architecture Commitment Review (ACR) in the ICM, and the RUP Life-Cycle Architecture (LCA) milestone is called the Development Commitment Review (DCR).

In comparison to the sequential waterfall and V-model, the ICM explicitly does the following:
• Emphasizes concurrent engineering of requirements and solutions.
• Establishes feasibility rationales as pass/ fail milestone criteria.
• Enables risk-driven avoidance of unnecessary documents, phases, and reviews.
• Provides support for a stabilized current-increment development concurrently with a separate change processing and rebaselining activity to prepare for appropriate and stabilized development of the next increment.

Agile è troppo rigido...

Kunal Mittal Executive Director, IT, Sony Pictures Entertainment: The software development life cycle for Web 2.0. Realize the benefits of agile development.

"You've probably read about extreme programming, Scrum, and other agile development processes. To me, those are also probably too rigid [...] User stories, iterative development and releases, and a simple planning game are the key elements of your new process. It's also a good idea to include a quality assurance and testing cycle, as well as user-acceptance testing."

Secondo me, esagera. Ma è indicativo del fatto che l'approccio agile è ritenuto ormai consolidato.

18 giugno 2008

Google ci sta facendo diventare stupidi?

'Is Google Making Us Stupid?' è un articolo di Nicholas Carr, pubblicato su The Atlantic Online, July/August 2008.

Il titolo è ad effetto, ma il nostro istupidimento non è causato in modo specifico da Google. Il problema è "What the Internet is doing to our brain", le modifiche che Internet porta al nostro modo di apprendere e pensare.

Carr segnala, partendo dalla propria personale esperienza e da quella di altri utenti, che chi frequenta in modo sistematico la rete si abitua ad una modalità di apprendimento e di elaborazione del pensiero diverse rispetto a quelle a cui era abituato. Più frammentarie, meno riflessive. Per alcuni versi, il discorso rimanda a quello trattato trent'anni fa da Neil Postman (in Amusing Ourselves to Death - anche in italiano) sugli effetti del modello culturale visuale - pubblicitario - televisivo.

Il wiki e la civiltà

The Software Practitioner è una newsletter (a pagamento) curata da Robert Glass. Sul numero gratuito di maggio 2006, scaricabile come esempio, in fondo, c'è una storiella intrigante sul wiki e la civiltà, di Peter e Dorothy Denning.

Tecnologie di collaborazione

Peter Denning, Peter Yaholkovsky: 'Getting to "We". Solidarity, not software, generates collaboration.' in Communications of the ACM, April 2008.

'Collaboration occurs when a community creates a solution to a messy problem that takes care of all their concerns at the same time. Collaboration is an ideal achieved far less often than it is invoked. It is often confused with information sharing, cooperation, or coordination. Most of our “collaboration technologies” are actually tools for information sharing.

[...] Collaboration does not mean that you give up or compromise your dearest concerns. It means designing a solution that recognizes your concerns. The process often leads to a reconfiguration of everyone’s concerns. The hallmark of successful collaboration is the

experience of solidarity and new energy: a “we”.'

L'offshoring cresce

Charalambos L. Iacovou and Robbie Nakatsu: 'A Risk Profile of Offshore-Outsourced Development Projects' in Communications of the ACM, June 2008.

'According to Forrester Research, 65% of American and European enterprises (with 1,000 or more employees) currently use offshore providers for application development; another 13% plan to begin doing so in the next year. Two years ago, only 45% of such organizations utilized offshore vendors to develop applications.'

Lo sviluppo in team distribuiti a livello internazionale

Michael Cusumano: 'Managing Software Development in Globally Distributed Teams' in Communications of the ACM, February 2008.

Cusumano raccomanda uno sviluppo agile, basato su un contratto "iterativo" tra cliente e fornitore, con definizione progressiva dei requisiti e distribuzione guidata dalle scelte architetturali.

Nulla di nuovo e di rilevante, se non un segnale di quanto gli approcci agili siano ormai considerati come la base necessaria anche per lo sviluppo software distribuito.

L'insegnamento e le stringhe

Alistair Cockburn: Teaching is pushing a string; learning is pulling the string


People keep asking, "What is the difference between teaching and learning? What is the instructor's role? After years of noodling, here's what I end up with:

Teaching is putting various strings in front of the students to pull on. The role of the instructor is to select and lay out the strings, indicate something about the meaning of pulling on them, etc.

Learning is their pulling on any of those strings. The role of the student is to select some strings, pull on them, abstract/note something about what happens. The instructor can't really know which strings the student is pulling on, or what the student will learn/abstract/note.

Note that this applies to parenting as much as to teachers.