Day 1

Dave Farley - Engineering is Turning Things into Stuff that Works

“Engineering is turning things into stuff that works”. It’s an empirical scientific approach to solve hard problems. Bottom up. Emerging. (My two cents: if human knowledge doubles twice a day, shouldn’t accessing knowledge be more important than learning ?) Yet, what I synthesize from the talk: all engineering (and not only software engineering) is optimising for learning (through iteration with feedback, increment, experiment, empirical principle)… and optimizes to manage complexity (through modularity, cohesion, separation of concerns, abstraction, managing coupling explicitly), in order to be able to change it.

Aral Balkan - The Kitten Talk

Well done Aral: you made me cry at 2nd min. showing a beautiful night sky coded in basic. (and waiting impatiently how to deploy kitten in production 🐾)

Dawn Ahukanna - API as Semipermeable Membrane

Whoah, @dawnahukanna comparing API to semipermeable membrane. Proposing tensions in software systems as the projection of cognitive dissonance. Replacing assumptions with presumptions. This is why I love @ncraftsConf: blowing my mind. Good “how’s” for bad “why’s” is worse than good “why’s” with bad “how’s”. Complicated is past tense. Complex is present.

Morendil - The Four Values of Extreme Programming

So powerful the four values of extreme programming. Thanks @Morendil for reminding them at @ncraftsConf on his a capella talk on the feedback loop: communication, simplicity, feedback, and courage. That have to come together. With power relationships, feedback comes with issues of fear and safety. Feedback gives information about the person who gives it, not the one who receives it. Feedback should be a loop, not linear. You should be ok if the feedback you give is ignored. Or else it’s a request, or even manipulation (here we are talking specifically about interpersonal feedback and not user feedback).

Who am I taking care of when I give feedback? Myself, my needs, the other person’s, our relationship? Feedback won’t change the other people’s behaviour, it’s a fantasy. It may yet change the relationship.

Feedback is not the solution in front of a toxic relationship; exiting the relationship is. Considering the relationship as the simplest example of system in system thinking, such as the balancing loop. And when fear of feedback comes in, it introduces a delay which makes the system look chaotic. And on the night the fear gets out and the loop goes crazy. (One solution: group therapy such as Satir, to see the system from the outside). If the flower doesn’t bloom, it’s the environment’s fault, not the flower’s fault.

Felienne Hermans - Closing Talk on Teaching

A small word about the so funny, energized, energizing, mind opening closing talk of @Felienne on the first day of @ncraftsConf. Teaching by progressively increasing constraints is a golden path, both for students and teachers. It’s also a way to consider teachers and students as a single team, trying to share knowledge within it - the teacher might not be the expert of the domain in the room, but the expert in knowledge management. And increasing constraints little by little pushes back the knowledge curse and valorizes other ways of learning than the academic way which is sooo gate-keeping.

Day 2

Clare Sudbery - The Importance of Refactoring

Refactoring is working for the future me who will read this code, by making it easier to understand and thus to modify. Maybe satisfaction is the first motivator of refactoring, even before quality.

What prevent refactoring: thinking that you don’t have the right or the time to refactor; impatience; being demotivated while seeking perfection, feeling shame or despair on your base code, comparing it to other’s; lack of self confidence; and eventually lack for fun.

Showing compassion could help going against all this: by generating trust in the team and thus great conversations. Just say “I need time to think”. To your user, but to yourself also: show compassion to yourself. It will raise self belief. Prepare yourself to embrace imperfection. Even Ron Jeffries (or Kent Beck or…) is fallible :-). Especially, your first draft is supposed to be bad! But you need it to sculpt it, to make it better. Making smallest improvement, and learning how to do this needs compassion. Extracting methods and variables is maybe the easiest way to make things understandable.

It seems that doing something enjoyable make the thing less valuable. But things not enjoyable are not valuable neither. (Whatever dominant people tell you, there is no links between joy and wages).

Indeed, looking for joy and showing compassion makes just the world better.

Huizendveld - Combining Wardley Maps and OKR

Combining Warldey Maps and OKR is about tactical, strategic and organisational capabilities to scale. Note: strategy is a way to interpret events.

Objectives are inspirational - and must be on outcomes, not outputs. Key Results informs us quantitatively on achieving this objective (set by the team, yet reviewed by hierarchy, and communicated frequently). But… OKR misses the HM such as in OKRHMs: Health Metrics. You only have one life, and should measure you’ll not die while running toward your objectives. You can put yourselves, the people, on the Wardeley Map: put the company as the clients, the Objective as their need, unrolling the value chain through possible components as KRs. Showing inertia and maybe change the name of the x axis. And tips and trick to animate Event Stormings work very well to animate Warldey Mapping!

Dejan Stepanovic - Code Review Insights

When listening to @d_stepanovic talks about code review at @ncraftsConf, I realized that trying meeting people where they are means that you know where your are yourself. The bigger the PR is, the less comments per written lines you have. It is a good way not to raise quality. On the contrary, the bigger the PR is, the smaller the lead time per line of code is. Something to do with negative nitpicking impressions. So it is a balanced system (with retroactive feedback) that we can modelize here. The trade-off is between throughput and quality. (I miss the thing about inventory, have to watch the talk again ;)). Yet… The assumption here is false. We want to keep the throughput with small PRs… and therefore putting the people at the same place at the same time. That is, pair programming or other co-creation practices.

Trond Hjort - Basics of System Thinking

I loved @trondhjort reminding us of the basis of system thinking at @ncraftsConf. You can’t understand or optimize a part without looking at the system. (Basics of social science where everything is complex, they say unpredictable). There is the difference between mechanical and organistic types of systems - the later having parts that have proper purpose.

But some systems are defined by the environment they belongs to, that they impact in return. That’s where, eventually, come open (~contextual) systems. If people get frustrated back from a magic workshop with their colleagues, it might be because the model of collaboration they built in the workshop (DP2) is not the one effective in their everyday organisation (DP1).

Steve Upton - Reproducibility Crisis in Complex Domains

Oh, I’ve never heard about the reproducibility crisis in complex domains @Steve_Upton talked about at @ncraftsConf. And I still have difficulties differentiating complex and chaotic systems. The fact that things are not reproducible in complex systems is for me a characteristic of chaos in the theory of chaos. Maybe because I don’t understand the difference between to probe and to act.

Reminder 1: Cynefin is a framework, not a model.

Reminder 2: Complex systems are dispositional, not deterministic.

Reminder 3: Patterns are not recipes. Yet, experienced chefs are following patterns. Such as most experts. Product is regularly alternating between Complex (UX) and Complicated (PO) domains like breathing. But don’t go too fast into standardisation looking for a Clear system, or else you risk jumping into Chaos. Jumping into Chaos can be extremely creative (but needs very high energy) :-D. Saying to someone that we have a solution to go from complex to complicated might be somehow colonialist. Especially if we present this like just follow these recipes.

Going from complex to complicated is complex.