July 2010 Blog Posts

Are you good enough to fail ?!?!

The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it. Michelangelo When I see a mediocre team, a mediocre software department and I talk with the CTO and key peoples I usually understand that actually they are not failing at all. Instead they are just succeeding to reach a mediocre goal. This kind of success can kill you :) I read often that failure is a necessary investment to learn and innovate. Indeed successful challenges goes through three phases, it start with hope, in the...

The fundamental attribution error

What looks like a people problem is often a situation problem What looks like laziness is often exhaustion What looks like resistance is often a lack of clarity  What looks like defiant people is often proceeding on the easiest path Tags :  Team Work | Agile | Leadership | Team | Disciplina | Team building | Traduci al ITALIANO >>>

Multi-tasking war story

Multi-tasking war story, click and read

What Good Are Positive Emotions?

Some notes from the paper of Barbara L. Fredrickson, 1998: What Good Are Positive Emotions? 4 positive emotions are: Joy (happiness), Interest (curiosity, intrigue, excitement, wonder), Contentment (tranquility, serenity) and Love (romantic, passionate, compassionate , caregiver, attachment). Positive emotions help us to broaden the scope of our attention our cognition, and actions. They help to build our physical, intellectual and social resources. Positive emotions help us to broaden and build our repertoire of thoughts and actions. Positive emotions increase our curiosity and our hope, encourage our creativity and open our minds. Also build the energies that we can...

Inspect-Adapt loops in Formula One

The well known inspect-adapt loops in agile software development are at work also in F1, and not only for software development, also for the car tests car developments and race controls. You guess why? Because they are more effective than other traditional solutions :) Here it is: - Racing Under a Watchful Eye That’s Thousands of Miles Away (McLaren) - The nerve centre - Renault’s engineering truck Would like to ear more about Ferrrari :D Tags :  Team Work | Agile | Traduci al ITALIANO >>>

Two ways of looking at the same problem

Presenting the problem Reframing the problem It’s them It’s all of us ...

The Singularity System

From eXtreme Computing Group @ Microsoft Research, The Singularity System: a safe, modern programming language let Microsoft rethink the architectural trade-offs in its experimental operating system. http://cacm.acm.org/magazines/2010/8/96608-the-singularity-system/fulltext Tags :  Creatività | Innovazione | Progettazione Software |

Versioning (5)

So far, as reported here - Versioning (1) - Versioning (2) - Versioning (3) - Versioning (4) team that do in-house development and also many other teams have the possibility to adopt practices that extremely simplify versioning for the modules (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) and speed-up developments: no need for modules to provide support and bug-fixing for previous versions deal properly the beta, release candidate and official release cycles ...

Code as Design: Three Essays by Jack W. Reeves

Pubblico e mi annoto i link di questi tre essay assolutamente interessanti e attuali. Segnalati da Piergiuliano Bossi su XPUG-IT. http://www.developerdotstar.com/mag/articles/reeves_design_main.html Tags :  Team Work | Agile | Progettazione Software | Translate into ENGLISH >>>

Come fai a capire che un problema é troppo grande?

Faccio un esempio. Chi é del mestiere da prima del 2000 ha assistito al passaggio dalle applicazioni Winform a quelle Web, dalle applicazioni Client-Server a quelle distribuite. E probabilmente ha assistito ad alcuni progetti finiti male: troppo lenti, troppo fragili, incapaci di sostenere il carico degli utenti, etc. Alcune aziende hanno avuto la possibilitá di imparare dagli errori e altre non ne sono state capaci o non hanno potuto. In realtá ogni volta che cominciamo un nuovo progetto, o un nuovo sprint, o cerchiamo di imparare qualcosa di nuovo, c'é la possibilitá che il problema sia troppo complesso per il tempo o le risorse/energie...

Allora non capita solo nel software !

Alcune frasi prese dall'articolo: il grande spreco dell'intelligence USA "La mancanza di focus, non la mancanza di risorse, è al centro della strage di Fort Hood che ha fatto 13 morti. Così come dell'attentato di Natale: sventato non dalle migliaia di analisti impiegati per trovare un terrorista solitario ma dall'allarme di un passeggero". E "Soprattutto con questo deficit, dobbiamo essere pronti ad abbattere qualche muro". Muro? L'intelligence Usa è un labirinto. Problema numero uno: la duplicazione inefficiente di centinaia di agenzie. E ancora Problema numero due: la moltiplicazione dei dati. Comincio a credere che non é un problema specifico del...

Versioning (4)

Versioning for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) can be even further simplified when the software development team that develop the module is  the same team that use the module in their applications or at least the two team can agree on a common release date for the application and the module. In pracatice when both teams has synchronized time-boxed sprints and releases. In this case for the modules there is no need to have an explicit beta=>release-candidate=>official cycle, the last source code for the code can...

What is a Framework?

An object-oriented abstract design for a particular kind of application, also called a framework, consists of an abstract class for each major component. One important characteristic of a framework is that the methods defined by the user to tailor the framework will often be called from within the framework itself, rather than from the user's application code. The framework often plays the role of the main program in coordinating and sequencing application activity. This inversion of control gives frameworks the power to serve as extensible skeletons. The methods supplied by the user tailor the generic algorithms defined in the framework...

Framework: Three Examples

Three Examples: Every attempt to determine the correct abstractions on paper without actually developing a running system is doomed to failure. A framework is a reusable design, so you develop it by looking at the things it is supposed to be a design of. ... Develop three applications that you believe that the framework should help you build. These applications should pay for their own development. Source: Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks, Don Roberts and  Ralph Johnson, 1996 Tags :  Team Work | Agile | Progettazione Software | Traduci al ITALIANO >>>

About frameworks

Ralph Johnson is one of the gang of four that published Design Patterns (http://www.refactory.com/people/ralph.html). And has been deeply involved in the Smalltalk community. In the 80's he published some papers about framework, that still today are the most interesting and advanced literature on that topic. From these papers also originate the position of the XP and agile community about frameworks. If you looks at frameworks and libraries and components in use today, you can see that many of those learning are still unused. So those paper today are an opportunity to learn something useful, to be on the edge. Here...

Design principle, dalla teoria alla pratica

La prima volta che ho letto e imparato i principi di disegno, gli ho usati come guida e ispirazione nel mometo di immaginare e disegnare le classi di un sistema, magari mentre le disegnavo in UML. La seconda volta che ho (ri)imparato i principi di disegno, ho imparato a guardare il codice di una classe e indicare precisamente la riga dove c'é una violazione di un principio, spiegare il perché e indicare come rimuovere la violazione. E per questo mi ha aiutato il TDD. Questa é la terza volta che sto (ri)imparato i principi di disegno, sto cercando di applicarli strettamente...

The tip of the iceberg

Souce: http://blog.energizedwork.com/archives/2007_11_01_archive.html Tags :  Team Work | Agile | Complessità | Leadership |

Work must begin with...

Since people make things, work must begin with developing people - Eiji Toyoda source: http://www.toyota-global.com/company/vision_philosophy/toyota_production_system/quiz_on_the_toyota_production_system.html Tags :  Team Work | Agile | Progettazione Software |

Micro-esercizio di TDD 2

Gli unit test sono uno strumento che guida il disegno del codice e la lente che evidenzia i difetti del disegno nel codice esistente. Propongo questo secondo micro-esercizio di TDD é un classico problema, quello di testare in presenza di membri statici o di singleton. Immagina di aver ereditato il codice che produce e poi stampa i biglietti di attesa con il numero del turno: la classe TurnTicket che rappresenta il biglietto col numero del turno, la classe TurnNumberSequence che genera la sequenza dei numeri e TicketDispenser che restituisce ogni volta un nuovo biglietto per il turno. (http://www.pastie.org/1039025) ...

Versioning (3)

Versioning for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) can be further simplified when the module used in a code-build-test-deploy environment has Continuous Integration and the application that uses the modules has sufficient automatic tests as acceptance integration and unit tests, and at every automatic build the last official binary version or source code of the module is pulled into the build. In this case for the modules there is no need to trace and document breaking changes (i.e. for the public interfaces, for the...

Prova sul campo di NDepend v3 (1/2)

Ho provato sul campo la nuova versione di NDepend: v3. Con la SuperSolution, cioé la soluzione che include centinaia di migliaia di righe di codice e tutti i progetti della azienda per cui lavoro. La nuova versione v3 suppporta Visual Studio 2005, 2008 e 2010 nelle varie edizioni. Durante l'installazione ho scelto di usare NDepend totalmente integrato nel IDE di Visual Studio, una nuova feature della v3. Ho visualizzato e analizzato attentamente il grafico delle dipendenze degli assembly per eliminare delle violazioni dei principi di coesione e accoppiamento dei package e per indagare alcune dipendenze misteriose ho visualizzato e analizzato il grafico...

What practices do you use?

Source: What practices do developers use? Tags :  Team Work | Pratiche |

Archeo informatica?

Il Model–View–Controller (MVC) é stato descritto per la prima volta nel 1979 da Trygve Reenskaug mentre stava lavorando allo  Smalltalk al Xerox PARC. Cioé oggi sono piu di 30 anni fa. Lo sviluppo di Smalltalk al Xerox PARC, un linguaggio object-oriented dinamicamente tipizzato con reflection, invece é cominciato nel 1969 da Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace e altri. La versione piu nota e diffusa del linguaggio é lo Smalltalk-80 rilasciata appunto nel 1980. Che sono 30-40 anni fa. In questi mesi nelle sue varianti il MVC é diventato particolarmente popolare anche per Silverlight e WPF. E in questi...

About sessions of Agile conferences and current Agile literature

Some session discuss topics that are covered also by current agile literature. When this is the case, current related agile literature could be mentioned and it could be interesting to know if the session content confirm or deny the current literature.  I think that this could help to build on what we already know today, still giving us room for innovation and to subvert preconceived ideas. Tags :  Team Work | Agile | Eventi | Creatività | Innovazione |

How often do you release in production ?

Source: How often do you release in production Tags :  Team Work | Pratiche |

Il Manifesto Agile tradotto in Italiano

Alcuni amici hanno tradotto il manifesto agile in Italiano realizzando la versione italiana ufficiale che trovate anche nel sito agilemanifesto.org. Eccola qui:     http://agilemanifesto.org/iso/it/ La trovo decisamente utile, per verificare la propria comprensione e per passarla anche a quei colleghi e manager  curiosi sullo sviluppo agile del software, ma non cosi tanto da mettersi a tradurre un testo dall'inglese. Tags :  Team Work | Agile | Progettazione Software | Translate into ENGLISH >>>

Memo for a better customer discovery

Click to read more

[OT] una prima breccia nella pronuncia dello Svedese :)

Ascoltando una conversazione in Svedese... (continua, clicca x leggere)

Scrum: did you know that...

1) To start a Sprint using Scrum all of these are important to have: - a Release plan and budget - executive sponsor and technical lead - team space and team rules - a vision and the Product Backlog And  is absolutely needed: some work to do, a purpose, and some people to do the work. 2) Is it permissible to modify Scrum, but be aware that each modification may lower potential productivity and quality. Tags :  Team Work | Agile | Pratiche | Traduci al ITALIANO >>>

Test your knowledge of Scrum

Before I posted interesting links to assessment of your team Scrum/Agile adoption  (here, in Italian). Here there is also the link to assess your knowledge of Scrum: http://www.scrum.org/scrumopen/ The test result show each mistake together with  the right answer. Just completed it now, after reviseing  the Scrum guide and Scrum & XP From The Trenches: Score: Percentage: 48 out of 50 points 96% What I got by taking the test ? I have learn from my mistakes  :)  And you ? Tags :  Team Work | Agile | Leadership | Pratiche | Traduci al ITALIANO >>>

Versioning (2)

In order to reduce the costs, visible and hidden ones, of giving support for previous versions:    Microsoft have tried hard many years to push his customers to use the latest versions of his software products as Visual Basic, Visual Studio and related technologies. When can you simplify here ? And how ? Versioning can be simplified for every module (assembly, jar, dll, exe, binaries in general, excluding executables as web-applications, services and web-services) that actually is used only by a partners or by a software develoment team inside your organization and in...