BetterSoftware 2014

A few toughts on one of the most important Italian Software Conferences

Posted by Claudio Sabia on 27 Oct 2014

Another year passed by, another BetterSoftware came to an end. Located in Florence, BetterSoftware is one of the most important italian software conferences, focusing on the business side of Lean and Agile software development. There were a lot of interesting talks: I will summarize the ones that impressed me the most.

Gestalt Design Principles

The opening keynote by Davide Casali about Gestalt Design principles was a gentle introduction to gestalt theory and principles applied to UX design. Understanding how emergence, reification and invariance are declined through the laws of Prägnanz into practical design guidelines will help a lot in future interactions with our customers. We now know that:

Davide Casali (@folletto)

Free the Kraken

Our day continued with a very interesting talk by Alberto Brandolini, Free the Kraken, about organizational antipatterns. Alberto presents organizational silos as a way to minimize the time needed to induce new employees and thus reduce the time dedicated to learning.

Alberto Brandolini (@ziobrando)

To solve this conundrum he proposes to make learning easier and explicit and to break the self-sustaining property of silos, noting that most times strategic decisions are guided by the need to avoid admitting previous mistakes. On a different aspect of learning, he proposes an effective method for gathering requirements called Event Storming: assemble all stakeholders together and interview them as a group, helping them create the process model without (too much) constraints. This technique allows for the emergence of hidden details and helps clean up stale or useless parts of the process by having a business and technical conversation about the domain.

The Power of Expectations

A great follow up to Brandolini’s talk was Andrea Provaglio’s The Power of Expectations where we were invited to analyze expectations with a more critical approach. Provaglio explains that artifacts like processes and behaviours that are the outcome of our decisions are based on values and beliefs that make up the decision rules. These themselves are based on (often unconscious) basic assumptions that make up our mental model.

Andrea Provaglio (@andreaprovaglio)

Considering it in our feedback loop helps us transition from defensive reasoning about our situation and choices towards productive reasoning where we can objectively discuss factual data instead of defending past decisions blindly.

Buy Different

Pratical advice on outsourcing software development was illustrated in Andrea Bandera’s Buy Different, a brilliant talk on how to choose a supplier for strategic projects. Andrea explains that traditional tender habits must be revised for success: business value should become the main focus (replacing a detailed build specification), allowing for late commitment and unexpected changes. By explaining the context of the project, sharing the vision for the future, having clear business metrics to measure success and making a clear picture of the project constraints (like legal requirements, integrations, legacies) you leverage your suppliers technical skills to get a tailored solution.

Andrea Bandera (@dottorbabba)

You have also to nurture your suppliers: you share the same common good. An iterative, incremental approach to development is then key to effectively builds your software project towards your goal.

Risk Management for Adults

The last talk before the closing keynote of the first day was my own, Risk Management for Adults, where I explain how cognitive biases influence our decision making and keep us making the same mistakes. I go through some of them and underline a combined approach that help us improve our Risk Management actions, using antidotes (naming, valorization and responsibilization) and known concepts (collaboration, transparency, real options, resilience).

Why Agile doesn’t scale

Last but not least we had a terrific second day keynote by Dan North, “Why agile doesn’t scale”. Such a strong title is immediately replaced by the real deal: “How agile can cross the chasm - and why it usually doesn’t”. Dan explains that everything we know about delivering software works well at a team level, with local optimization. This approach cannot scale to multi-team, tens-of-peoples projects because local optimization cannot be shared between teams. When dealing with a portfolio of projects, you first need contextual consistency: people should make the same decision when dealing with the same context and constraints.

Dan North (@tastapod)

To obtain this you have to create and share a clear vision, establish global guiding principles and have strong, consistent leadership. Second, when contextual consistency is in place, differences become data: from the choices that diverge from consistency, you can infer new context details and local decisions will eventually be spread and re-aligned between teams if needed.