Presentation matters

Let me tell you two stories.

Our children are born abroad. As foreigners, we had to get through extra formalities to obtain their first residence permits.

This process required us to first obtain the Romanian passport. With our first born, producing the Romanian passport was delayed for various reasons, and at some point the Swiss authorities sent us a warning letter. So, we went to the alien police and explained that we encountered delays in the process. They told us that we should provide them with some proof to confirm that indeed the Romanian formalities are so lengthy.

We went back to the consulate to proceed with the passport formalities. There, we were told that there were so many enquiries that we need to wait for 3 months just to be scheduled for the official photo shots. There was not much we could do about that, but at least we wanted a little piece of paper saying that it takes so long:

Me: "Could you please provide us with a piece of paper stating how long the formalities take?" Lady: "No, we cannot do that."
Me: "Why not?"
Lady: "Because we are not allowed to sign papers like that."

At this point, we were a bit stuck. Then I had an idea:

Me: "Ok. Then could you please write me a little reminder on a piece of paper with the date on which we are scheduled for the photo?"
Lady: "Oh, sure."
Me: "Now, just so that I do not forget, could you also say next to the date what the purpose is?"
Lady: "With pleasure."
Me: "And now, could you also put a stamp on it?"
Lady: "Stamp?"
Me: "Yes, I see that you have this stamp next to you. Could you just put it on the paper?"
Lady: "Hmm ... Ok."

And we got our official proof that we could send to the Swiss authorities. When I phrased the original request, it appeared unacceptable, although I still do not understand why. But, when I presented the same problem from a different angle and split it in little steps, it was perceived much differently.

You might say that this behavior can be found only in bureaucratic environments. Let me tell you the second story.

Last year, I passed by Gelateria di Berna, our favorite Bernese ice cream shop. I stopped by to get some takeaway.

As I was standing in line, I realized that I only have 10 CHF. The problem was they only have takeaway packages of 14 HCF and 18 CHF. Other than these, they serve regular portions to eat on the spot for 3 CHF and 5 CHF.

I got to the counter: Me: "Look, I only have 10 CHF, but I really would want to get some ice cream for takeaway. Would it be possible to fill only half of the 14 CHF box and I pay for it 10 CHF?"
Seller: "No! We only serve the standard packages. But, you can buy two small portions that you can eat here."
Me: "Hmm, but I cannot really transport these home."

Stuck again.

Me: "Then, could I buy just an empty box?"
Seller: "What do you mean?"
Me: "Just the empty box. I give you 2 CHF for it. I am sure it is not worth more than that." Seller: "Ok, I could do that."
Me: "Then could you put in there a 5 CHF portion and a 3 CHF portion?"
Seller: "Ok."

He did it, and I had my ice cream to take home. The objective problem did not change a bit. The only thing that changed was the presentation.

These are not trivial examples as they relate to the main business of the characters involved. These people were dedicated to what they were doing and they wanted to do the right thing. We can argue that the focus was wrong, but still, they were not guided by ill-will. And, these are not examples of stupidity either. These are examples documenting that the stories we tell ourselves have a critical influence on the way we perceive and act in the world.

Presentation matters. It’s up to us to see both the power and the responsibility that comes with it.

Posted by Tudor Girba at 16 June 2015, 11:16 pm with tags presentation comment link

Moose 5.1

We are happy to announce version 5.1 of the Moose Suite:


This is a minor release. The key highlights are:

  • It is based on Pharo 4.0.
  • Roassal2 comes with several new builder, most notably the new Mondrian builder (RTMondrian) and the chart drawing engine (RTGrapher).
  • GTSpotter has preview abilities and was extended for multiple search use cases including the navigation through Moose models.
  • GTPlayground was extended with sharing possibilities and transparent backup.
  • GTExample now offers support for documenting classes with example instances.
  • Moose Finder and GTInspector come with more custom presentations.
  • PetitParser has seen performance corrections and has been extended with the ability to parse whitespace languages.


The Moose Suite 5.1 comes for each platform as a separate bundle:

The Moose Suite 5.1 can also be loaded in a Pharo 4.0 image either from the Configuration Browser, or by executing the following script:

Gofer new
smalltalkhubUser: 'Moose' project: 'Moose';

The Moose team

Posted by Tudor Girba at 4 June 2015, 8:33 am with tags moose comment link

Talk at NDC Oslo 2015 on "Don't demo facts. Demo stories!"

This year, I will again have the pleasure of going at NDC Oslo 2015. This time I will talk about the demo-driven approach and the importance of storytelling in software engineering.

Here is the abstract of the talk:

Feedback is the central source of agile value. The most effective way to obtain feedback from stakeholders is a demo. That is what reviews are about. If a demo is the means to value, shouldn’t preparing the demo be a significant concern? Shouldn’t the preparation of demos not be left for the last minute? Should it not be part of the definition of done?

Good demos engage. But, there is more to a good demo. A good demo tells a story about the system. This means that you can tell the story. And it also means that the system is made to tell that story, too. Not a user story full of facts. A story that makes users want to use the system.

Many things go well when demos come out right. Your system looks different. Stakeholders are in sync. Marketing does not have to lie. And even sales can sell better.

This talk tells stories of successful demos and distills demo-driven lessons from both working in research and in industry. These lessons are meant to be used in every day projects.

Posted by Tudor Girba at 1 May 2015, 8:49 am with tags presentation, demo comment link

Pharo 4.0

Dear World,

Pharo 4.0 is here!

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.


Many things have changed in Pharo. Here are some highlights:

  • Inspector/Playground/Spotter are new moldable development tools for inspecting, coding and searching objects.
  • Slots model instance variables as first class entities and enable meta-programming on this level.
  • ShoreLine reporter introduces a way to report system errors and collect statistics, that we will use for future improvements
  • Dark theme.

These are just the more prominent highlights, but the details are just as important. We have closed 1700 issues in Pharo 4. Take a moment to go through a more detailed recount of the progress: ChangeLogs.

Pharo is improving on many fronts, but one of the most prominent changes is the addition of moldable tools for inspection and search. These tools provide extension mechanisms that allow every object to define ways in which it can be understood effectively. To provide an idea of the impact of the already existing extensions, the map below shows the Pharo classes grouped in packages, highlighting in red those parts of the system that have at least one such custom view coming with the main distribution. The spread of these extensions shows that moldability is powerful mechanism that can be used in many contexts.


Remember that Pharo is your platform. We thank all the contributors of this release:

Clara Allende, Jean-Baptiste Arnaud, Jean-Christophe Bach, Philippe Back, Clement Bera, Alexandre Bergel, Torsten Bergmann, Vincent Blondeau, Noury Bouraqadi, Santiago Bragagnolo, Johan Brichau, Sven Van Caekenberghe, Damien Cassou, Nicolas Cellier, Guido Chari, Dimitris Chloupis, Andrei Chis, Ben Coman, Bernardo Contreras, Tommaso Dal Sasso, Jan Van De Sandt, Christophe Demarey, Sean DeNigris, Marcus Denker, Martin Dias, Stephane Ducasse, Stephan Eggermont, Luc Fabresse, Johan Fabry, Hilaire Fernandes, Jerome Garcia, Tudor Girba, Thierry Goubier, Jigyasa Grover, Kris Gybels, Norbert Hartl, Dale Henrichs, Pablo Herrero, Nicolai Hess, Pavel Krivanek, Juraj Kubelka, Jan Kurs, Laurent Laffont, Jannik Laval, Kevin Lanvin, Max Leske, David Lewis, Diego Lont, Esteban Lorenzano, Tim Mackinnon, Attila Magyar, Esteban Maringolo, Stefan Marr, Max Mattone, Martin Mc Clure, Eliot Miranda, Alain Plantec, Guillermo Polito, Damien Pollet, Stefan Reichhart, Mark Rizun, Udo Schneider, Ignacio Sniechowski, Henrik Sperre Johansen, Igor Stasenko, Aliaksei Syrel, Ciprian Teodorov, Camille Teruel, Sebastian Tleye, Yuriy Tymchuk, Peter Uhnak, Andres Valloud, Sven Van Caekenberghe, Thomas Vincent, Jan Vrany, Martin Walk, Richard Wettel, Dmitri Zagidulin

And all those who contributed indirectly, by reporting bugs, participating in discussion threads and providing feedback.

Pharo 4.0 is another big step. And, the best is yet to come.


The Pharo Team

Posted by Tudor Girba at 16 April 2015, 12:00 pm with tags pharo comment link

Moose 5.0

We are happy to announce version 5.0 of the Moose Suite:


This is by far the most extensive Moose release to date. Just take a look at these two trailers:

The key highlights are:

  • It is based on Pharo 3.0.
  • Roassal2 is a complete reimplementation of the core visual engine of Moose.
  • Roassal2 replaced Roassal, EyeSee and Graph-ET, and it features many new things including smooth animations, new composeable builders and several new layouts.
  • All built-in Moose visualizations use Roassal2.
  • Glamour has been extended with a Pager browser and with Rubric as the main text editor.
  • GTSpotter is a new tool that makes it possible to find objects fast.
  • GTInspector saw major usability improvements based on the Pager browser, and it now comes with many object specific extensions.
  • GTPlayground provides a new way to handle scripts and when combined with GTInspector, it can replace the dedicated easels and editors.
  • Moose Finder has been extended with the ability of handling in place visualizations.
  • GTDebugger has been strengthen and was made more robust.
  • PetitParser has been extended with the notion of context which enables elegant island parsing.

A list of issues addressed in this release can be found on the issue tracker.


The Moose Suite 5.0 comes for each platform as a separate bundle:

The Moose Suite 5.0 can also be loaded in a Pharo 3.0 image either from the Configuration Browser, or by executing the following script:

Gofer new
smalltalkhubUser: 'Moose' project: 'Moose';

Happy holidays!

The Moose team

Posted by Tudor Girba at 24 December 2014, 12:06 am comment link
<< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 >>