8. Agile Manifesto
we are uncovering better ways
of developing software
it is about building software
(local optimization?)
not about the right products
not about design/innovation
16. Kanban* (2004)
born in a maintenance context
(Dragos Dumitriu & David J Anderson)
product innovation was not on the table
*not Ohno’s kanban
17.
18. Lean
changing the system is the responsibility
of those who work in that system
reduce/remove
overburden
variability
waste
19. reduce variability?
manufacturing = knowledge work
variability is intrinsic in knowledge work
(uncertainty)
variability fosters innovation
⁄
20. eliminate waste?
no overburden, fine
but what about underutilized resources?
reduce risk of failure?
research experiments: choosing too quickly
might miss the solution
21. if you need to (re)act quickly
then you have to reserve
appropriate capacity
waste?
25. cognitive biases
i.e. in ideas/requirements gathering: fixation on the
first one or two ideas we come across
first-fit pattern matching rather than best-fit
confirmation bias: desire to predict rather than
desire to find out
31. failure - safe to fail - fail fast
innovation mode vs execution mode
taking risks vs playing it safe
learning failure vs harmful failure
[culture/context] accept vs reject
35. Design Thinking
starting with a goal (a better future situation)
instead of solving a specific problem
combining empathy for the
context of a problem
creativity in the generation
of insights and solutions
rationality in analyzing and fitting
various solutions to the problem context
53. i.e. managing risk & innovation
at portfolio level
Ideas
oo
Biz Case
Tech
Assessment
15-30 5-12
Committed
5
In Progress
5
Verification
5
Rejected
Commitment
Point
Business
R&D
source David J Anderson
Chi lavora in un contesto di innovazione? Chi applicagià agile(lean? Chi sta cambiando o pensa di farlo presto I processi aziendali?
Ok prima mi avete detto che lavorate in contesto di innovazione, di prodotto immagino.
Ma in generale ci riferiamo a entrambi gli aspetti.
Cosa ha da dire agile a riguardo?
Upfront, silos… knowledge work is not manufacturing
traditional prj mgmt = indivs belonging to resource pools, being allocated to many large prjs at once
the mechanistic metaphors of how human systems work, does not work very well. So treating businesses like machines, like clocks, is really problematic and most people are starting to understand that, but they are not moving far enough forward in their thinking.
Helmut Von Moltke: “no plan survives contact with the enemy”
acting in the complex space causes the space to change, and cause and effect can only be understood in retrospect. in a complex system you can never fully know the outcome in advance. You cannot predict the end point of the journey and follow defined paths. I can’t get it right in advance, so I need to experiment with different ways of approaching the journey that are safe-fail in nature. That is to say I can afford them to fail and critically, I plan them so that through that failure I learn more about the terrain through which I wish to travel. Chaos is your house catching fire. Chaos is accident and emergency
trying to eliminate uncertainty with analysis is foolish.
it’s better to try something out – safely, so that it’s all right to fail – and respond to what you find. The more collaborative the business and IT become, the more business stakeholders are prepared to try out risky things, and the more the company innovates!---when the business stakeholders say “Oh, I’m not sure! I hadn’t thought of that.” At that point, we can stop trying to do analysis – we’ve just found uncertainty; we’re in the complex domain, and we can focus on getting feedback rather than forcing the business to clarify reqs. Yes, the dynamism is a part of Cynefin, and I’ve used Dave Snowden’s “shallow dive into chaos” extensively with clients. One purpose of the shallow dive is to stop people talking to each other so that they can’t come to a false consensus, then to generate independent ideas for experiments. A well-known example of this in software is concurrent set-based engineering.
Belief in the stable state, suggests Donald Schon, is strong and deep, and provides a bulwark against uncertainty. Institutions are characterized by ‘dynamic conservatism’ – ‘a tendency to fight to remain the same’.
Safe-to-fail experiments, keep your options open
While the work is to discover customer needs, neither can customers formulate their needs nor is it their task. The job is to extrapolate from what we know and use that as a guide to new product visions. This means we operate with little knowledge and high uncertainty
2001, primi esperimenti inizio anni 90, perchè’? Crisi del Software
the silo is when you have a manager on one team and other people and a manager on another team and those managers report up somewhere else.
not about operations Local optimization? Faster->more queues. LeanUX and DevOps break silos
focus on: Alignment with Customer Wants, Better Quality (not on Innovation), however…
This is just one example of a silo focusing (PO+team) on its own purpose rather than the companies purpose. We have to come up with company purpose that is so strong that it overrides silo’s purpose. The task is to find out what clients need and let this knowledge flow through all of the company. The task is an integration task in many levels.
Innovative technical practices (XP): Unit Testing –TDD Refactoring Pairing, Continuous Integration & more (but devs worn out!)
Technical excellence
Mindset, culture. Early Delivery of Business Value – Change!!!
fast feedback loops, self-organization, customer on site (dropped later)
Inspect & adapt, Transparency
People learn (feedback loops) balance & pull defer commitments #noestimates no performance appraisals
technical excellence
Add Deming: “what is measured is the interaction between the employee and the system.”
“performance evaluations result in humiliation and take the joy out of learning and innovation.”
And then there is cheating. Stable teams vs cycling on and off a project
Diversity too
“confusing wants with needs is a common path to frustration & ineffectiveness”
A common mistake is to introduce change without changing thinking. It's called single loop learning, which focuses only on actions & results
single is correcting an action to solve or avoid a mistake, double is correcting also the underlying causes behind the problematic action
Local maximum, not global best … single = short term
PDCA inspect. Single loop learning asks, “How can we do what we are doing better.”
Kaikaku kaizen, togliere pilota automatico! Continuous/Disruptive improvement
Argyris & Schon's Theory of Action, Double loop learning asks “Why do we think this is the right thing to do,”
Fix the causes not the symptoms.
first-fit leads to quick decisions which may be flawed
if you're not making mistakes & changing your mind, you're not learning. If you're not learning why are you iterating & collecting feedback.
Getting people to think safe-fail in organisational cultures that are fail-safe is very difficult. It is not just a matter of management saying that failure is permitted it is also about making some very dramatic interventions to indicate that you really mean it. Most people working in large (or even small) organisations know that the reality of life is that people who succeed but do not learn, progress faster than people who learn through partial failure. Total failure should not be tolerated as it indicates Fail-safe badly executed
A/B testing will never tell you why something performs better than another. It only tells you that one thing is performing better than another.
Your target customers have to love you more than they hate change
starting with a goal (a better future situation) instead of solving a specific problem. By considering both present and future conditions and parameters of the problem alternative solutions may be explored simultaneously.
Design thinking identifies and investigates with both known and ambiguous aspects of the current situation in order to discover hidden parameters and open alternative paths which may lead to the goal. Because design thinking is iterative, intermediate "solutions" are also potential starting points of alternative paths, including redefining of the initial problem.
One version of the design thinking process has seven stages: define, research, ideate, prototype, choose, implement, and learn.
Roger Martin (IDEO) Exploration - Exploitation
Snowden: Design thinking takes a linear approach; the famous knowledge funnel from mystery to algorithmic exploitation. Like Scrum this is a complex to complicated linear and iterative shift heavily dependent on facilitation and/or expertise. Fine. But we also need non-linear approaches to design which can handle faster life cycles (the grazing dynamic in Cynefin) and dynamic service environments rather than product creation
2014
(Gary Hamel)
mega ricetta
used as a recipe: a predefined set of roles, rituals and artifacts
(but this is why many orgs “like” it)
The late majority wants to be handed a cookbook to follow and a buzzword to blame
Vs “you are doing it badly”
visualize
small batches
flow
which risks do we want to hedge? how should we allocate our portfolio or product mix across those risks? in which percentages for each category?
Selection vs prioritization
To pursue a strategy of innovation or fast market following we need a high level of business agility – fast, frequent delivery
To be innovative or fast following in a highly regulated industry requires us to be both predictable and exhibit a high level of business agility