30 agosto 2010
Value delivery
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).
02 agosto 2010
Due tipi di progetto software
Tra i due tipi di progetto sono diversi i rischi, le competenze necessarie, il modo di procedere.
Martin Fowler: Utility Vs Strategic Dichotomy.
29 luglio 2010
Ristrutturazione di UML
Un articolo (su Dr Dobb's) di Ivar Jacobson e Steve Cook sulla ristrutturazione in corso della specifica di UML e sugli sviluppi futuri della notazione.
29 giugno 2010
10 regole per prodotti di successo
Norman è uno tra i massimi esperti di usabilità, famoso soprattutto per il libro "The Design of Everyday Things", tradotto e pubblicato da Giunti con il triste titolo all'italiana "La caffettiera del masochista. Psicopatologia degli oggetti quotidiani".
Tecno austerità
"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.
19 giugno 2010
Nuove versioni di UML e SysML
UML 2.3 (maggio 2010)
Superstructure Specification - pdf, con barre di cambiamento: formal/2010-05-06
SysML 1.2 (giugno 2010) - pdf, con barre di cambiamento: formal/10-06-02
14 giugno 2010
Ostacoli all'agilità
- Scegliere il giusto progetto pilota
- Scegliere il gruppo giusto per il progetto pilota
L'articolo è apparso su PragPub, una rivista online mensile pubblicata dai Pragmatic Programmers.
27 maggio 2010
Tecnica: atto tradizionale efficace
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.
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
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
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
Tra i miei favoriti:
"Quality. The race for quality has no finish line."
14 maggio 2010
Vecchi programmatori
13 maggio 2010
Babok online
Il Babok è acquistabile come libro, ma può anche essere letto online gratuitamente su Google Books.
10 maggio 2010
21 aprile 2010
19 aprile 2010
Semat
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
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 report comprende 65 raccomandazioni per affrontare i problemi specifici delle architetture SOA.
Chaos Report 2009
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
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
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
Prima parte: Cos'è UML (2 video):
Seconda parte: UML in pratica (3 video):
Metodi formali di sviluppo software
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
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
21 gennaio 2010
A fine 2010, CMMI versione 1.3
Un articolo su Crosstalk (The Journal of Defense Software Engineering) presenta le caratteristiche delle nuove versioni.
Automation Paradox
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
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
Documento di sintesi in pdf.
Sito web con i dettagli.
Le condizioni della lingua italiana
http://www.accademiadellacrusca.it/lingua_italiana_scuola_sviluppo_il_documento.shtml
24 dicembre 2009
Contesto, requisiti, architettura
- 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
Self-Management dei gruppi di lavoro
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.
Documentazione agile
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
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
La mancata integrazione degli applicativi ha creato e continuerà a creare problemi per le banche.
09 dicembre 2009
Un mondo di hit
" “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
Alcune implicazioni legate ai requisiti nell'uso di sistemi mobili. Neil Maiden, su IEEE Software September/October 2009.
Software sviluppato dagli utenti
"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
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?
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
The Economist, August 29th 2009
Review architetturali
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
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.
"The Metropolis Model. A New Logic for Development of Crowdsourced Systems", in Communications of the ACM, 07/2009.
Non tutti i videogame rintronano
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 ...
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
"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
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".
Jacobson su 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?
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)
"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
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
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
"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
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
Michael Buckley: Computing as Social Science, Communication of the ACM, April 2009.
Fucine di software
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
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
Software Embedded: dati
[...]
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
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?
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
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
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
Su TED, la presentazione di Sugata Mitra.
04 aprile 2009
Hardware/Software Codesign
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
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
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
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
Lo sviluppo sw è un fatto sociale, più che tecnologico
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
"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
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.
Libro su BPMN
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
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
Le migliori scuole del Piemonte
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
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
"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
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
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
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
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
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)
- 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.
10 novembre 2008
La nuvola
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
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
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
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
La tecnica delle "story maps" è semplice. Jeff Patton la descrive in questo intervento.
02 ottobre 2008
Moscow e priorità
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
"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
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
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
Italia ancora meno competitiva nell'IT
13 luglio 2008
Le scuole 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
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
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
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...
"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.