Sign in

Charles Desneuf

@selrahcd.bsky.social
253 followers 524 following 566 posts

Agile Tech coach Expect to hear about testing, archi, DDD, and maybe music.

PostsRepliesMedia
Charles Desneuf @selrahcd.bsky.social · 24/09/2026
Tired of reading AI shit code and shit text.
032
Charles Desneuf @selrahcd.bsky.social · 20/09/2026
"Once a team begins work suddenly everything is “urgent”, ignoring that allocating work to a product team does not somehow magically change its delay cost. Time A, what Reinertsen calls the “fuzzy front end”, typically accounts for 80% of total lead time. Thus, focusing only on Time B is an expensive mistake. Work is not “free” simply because no one is working on it!" (Charles Lambdin, What Is Cost of Delay?)
000
Charles Desneuf @selrahcd.bsky.social · 16/08/2026
"All too often, a company will announce [numerical] goals out of the blue

and with no plan. To decrease costs of warranty by 10 percent next year, for

example, or to increase sales by 10 percent or to increase productivity by 3

percent are examples of nonsensical goals. Dr. Deming likes to quote Lloyd

S. Nelson of Nashua Corporation on this subject: “If they can do it next year

with no plan, why didn’t they do it last year?”" (Google Docs, Making Sense of Deming)
021
Charles Desneuf @selrahcd.bsky.social · 13/08/2026
"*Cognitive debt* - we skim everything because AI unlocks such volume, but now knowledge is losing its stickiness. An extension of technical debt into the mind." (Annie Vella, Finding Comfort in the Uncertainty)
020
Reposted by Charles Desneuf
Nicolas Carlo @nicoespeon.com · 31/07/2026
I have yet to see Claude fix a bug/implement a feature by removing more code than it added 🤔
161
Charles Desneuf @selrahcd.bsky.social · 27/07/2026
New achievement!
100 decimals of Pi out of 100: Correct!
020
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
This is not my most useful skill but I’m apparently able to tell the first 50 decimals of pi from memory (for now, and quite slowly, but still)
A screen showing that 50 decimals of Pi are correct.
010
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
Ah ok. I’m not discussing should at all here. I started with “correctly”. Should I’m ok with it. Correctly less so, because it removes all the hints about what to look at in the test
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
I don’t think should is an invalid convention either. It’s clearly not what I would pick as a convention if I was the only one to decide 😅
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
How effective no. How fast I can understand it definitely yes. It guides what I’m looking at in the test, helping to distinguish what is interesting and what is noise (because unfortunately a lot of tests have a bad interesting bits/ noise ratio)
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
This is working for me. It allows me to have a documentation of the system and to understand what is broken without having to carefully read the body of the test. And doing TDD, it forces me to clearly express my intent first. “correctly” hide things that I will forget, how can I know I’m done?
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
You don’t need to. Here is how I see it: - Test name describes a business/behavior rule - Test body gives an example about that rule Ex: - a closed bank account cannot be credited (Rule) - setup account 123 in status closed, create a command for credit of 879€ on account 123, assert failure
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
I think I disagree with your explanation @davedisasterman.bsky.social. A test being red is a failure of the SUT, not of the test. I want tests to be able to fail, but that’s still telling me something about the SUT, not about the test. (If the test doesn’t have a problem…)
100
Charles Desneuf @selrahcd.bsky.social · 10/07/2026
I prefer my test without should too but I try to align with the team I’m with. And mentally, when’s doing TDD, I’m doing “SUT should be doing X” and I write test name without “should” because I want my test to act as documentation, that is certain about what the system does.
200
Charles Desneuf @selrahcd.bsky.social · 09/07/2026
A test name shouldn't contain the word correctly, like in "should do something correctly". The test name is here to describe what correctly means.
362
Charles Desneuf @selrahcd.bsky.social · 08/07/2026
I’d say that most engineers reach for no locking at all by default 😅
020
Reposted by Charles Desneuf
Emily Bache @emilybache.com · 06/07/2026
If you can't recognize better and worse test design, you can't usefully instruct an AI to write tests. If you've never seen well-designed tests, learn what they are first. #harness_engineering
072
Reposted by Charles Desneuf
Elisa Rojas @elisarojas.bsky.social · 30/06/2026
Une honte. Une défaite totale. Une indignité que la gauche regrettera longtemps. C'est un minable travail qui aboutit à la mise en danger des personnes malades et handicapées en pleine montée du fascisme, avec l'assentiment de la gauche.
0689389
Charles Desneuf @selrahcd.bsky.social · 30/06/2026
Je serai hyper chaud pour une session jujutsu à un meetup software crafter (quand je reviendrai 😭)
000
Reposted by Charles Desneuf
John Cutler @johncutle.fish · 27/06/2026
BOTTLENECK! cutlefish.substack.com/p/tbm-427-th...
cutlefish.substack.com
TBM 427: The Bottleneck Strike Again!
My goodness.
094
Charles Desneuf @selrahcd.bsky.social · 27/06/2026
"The Abilene Paradox' describes a situation where a group collectively decides on a course of action that is counter to the preferences of most or all of the individuals in the group. It's based on a story of a family who collectively decides to take a long, uncomfortable trip to Abilenedespite none of them individually wanting to go-because each mistakenly believes the others want to go. The paradox occurs when members incorrectly believe their own preferences are contrary to the group's and, therefore, do not raise objections. This results in a situation where no one is happy with the outcomes, even though everyone believes it's what the group wants. In collaborative environments, a lack of clarity and alignment can take you places nobody wants to go." (Steve Pereira and Andrew Davis, Flow Engineering)
030
Reposted by Charles Desneuf
Mona Chollet @monachollet.bsky.social · 26/06/2026
« Tu vois tout sur ton écran, tu largues la bombe, on dirait un jeu vidéo. Tu peux être dans un sous-sol quelque part, en sécurité, sans ton casque, à te gratter les couilles, à moitié habillé, et tuer des Palestiniens. » bsky.app/profile/owen...
27170
Reposted by Charles Desneuf
Les Mutins de Pangée / CinéMutins @mutinspangee.bsky.social · 25/06/2026
Une vague géante pour Louis Vuitton. Cinq camions de police pour une piscine de cité. La planète brûle, mais tout le monde n’a pas le même droit à l’eau, à l’ombre, au luxe ou à l’espace public. Les riches privatisent l’espace, l’eau, les forêts, les récits et les imaginaires…
35724544
Reposted by Charles Desneuf
Marme & lade 🫠 @marmelade.eurosky.social · 24/06/2026
"nous sommes tous dans le même bateau"
Peinture d'une galère en coupe 
Sur le pont, des bourgeois mangent tranquillement sur des tables avec des nappes blanches
En dessous du pont, de nombreux hommes torses nus rament
13917332
Charles Desneuf @selrahcd.bsky.social · 24/06/2026
adamtornhill.substack.com/p/an-opinion...
adamtornhill.substack.com
An opinionated (and mainly correct) guide to naming
Naming in software goes way beyond any aesthetics. Good naming minimizes reconstruction work. Here is the style and habits that I've picked up.
010
Charles Desneuf @selrahcd.bsky.social · 24/06/2026
I'm pretty sure that I can find more best way than these two ones though, depending on what I have before my eyes.
000
Charles Desneuf @selrahcd.bsky.social · 24/06/2026
Bi-annual reminder that the best way to improve your tests is to add randomness to your fixtures creation toolset. This is the best way if you have a fixture creation toolset, otherwise making that toolset is the best way. So I guess that makes it the second best way.
100
Charles Desneuf @selrahcd.bsky.social · 16/06/2026
Murder party everyday when working with that system. I hate that. I think I've never hated my job so much before.
010
Charles Desneuf @selrahcd.bsky.social · 16/06/2026
I want to trash post so bad
110
Reposted by Charles Desneuf
Ma$on @masonfromtwitter.bsky.social · 15/06/2026
This is one of the most impressive things I've seen in a long time. (And someone in the comment said I Wish Stevie Wonder could see this 😂😂😂😂😂😂😂😂😂😂😂😂😂)
751510287
Charles Desneuf @selrahcd.bsky.social · 13/06/2026
"The real medium of any design then is *decisions*. The more decisions are already made, the more the direction is set, and the fewer “degrees of freedom” remain. As the degrees of decision freedom are “spent”, there is less wiggle room for agility. The opposite of Agile isn’t “slow”—it’s “path dependent”. To raise the agility ceiling in the organization you need to bake options into planning to preserve degrees of freedom." (Charles Lambdin, Design and Agile’s Muddied Waters)
010
Charles Desneuf @selrahcd.bsky.social · 12/06/2026
www.youtube.com/watch?v=_ahv... That’s an impressive concept talk where the form is related to the message.
youtube.com
Growing a Language, by Guy Steele
YouTube video by Bill Pugh
000
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
Clarity isn't lost in a redesign. It's lost in a thousand small, reasonable decisions. And it's kept the same way. One deliberate decision at a time, mostly about words.
Clarity isn't lost in a redesign.
It's lost in a thousand small, reasonable decisions.
And it's kept the same way. One deliberate decision at a time, mostly about words.
000
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
100
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
Keep a glossary, evolve it, watch the drift.
Watch the language
Make the glossary a living artifact that sits next to the code, not a wiki page that died in 2023.
Keep the glossary in the repo
A term file per context, reviewed in the same PR as the code. If the word changes, the diff shows it.
Define terms per context, not globally
"Payment" is allowed to mean different things in different boxes. The glossary records that on purpose.
Treat a new qualifier as a signal
The first time someone writes billing Customer, ask whether a new term, or a new boundary,
100
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
A shared word is not proof of a shared meaning. What decides whether two uses belong together is intent, what each person is actually trying to do.
Read the intent behind the word
A shared word is not proof of a shared meaning. What decides whether two uses belong together is intent, what each person is actually trying to do.
Keep
Same word, same intent
One context. The shared term is doing its job. Leave it alone.
Unify
Split
Same word, different intent
A boundary is forming under a single word. This is the split worth naming.
Different words, same intent
Most likely synonyms. Unify the language before they drift apart.
110
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
110
Charles Desneuf @selrahcd.bsky.social · 11/06/2026
“When the words split, the boundary has already moved. The code is just the last to find out.” Omphile Matheolane #DDDEU

A bounded context is an agreement, not a structure,
The boundary live in the language. 

When the words split, the boundary has already moved. The code is just the last to find out.

So the health of a boundary is the heath of its language, long before it is the shape of its code.Omphile Matheolane on stage
131
Reposted by Charles Desneuf
Jaap Coomans @jaapcoomans.nl · 10/06/2026
@felienne.bsky.social closing keynote at @dddeu.bsky.social blew me away. First time ever I witnessed a minutes long standing ovation after a talk at a tech conference. She painfully exposed what is wrong in the software industry through her personal story. #dddeu
Felienne Hermans on stage at DDD Europe
0115
Reposted by Charles Desneuf
Durss @durss.fr · 10/06/2026
Dur de ne pas se dire que les centaines de milliers d'euros mensuel (oui oui) alloués à l'IA dans les boîtes de dev aurait pu au moins en partie être versés aux employé•es jusque là. C'est fou tout cet argent qu'on trouve alors que jusque là le marché était "difficile on peut pas trop augmenter dsl"
3274
Reposted by Charles Desneuf
Romain Berthon @berthon.dev · 10/06/2026
Nouvel article de blog : aujourd'hui, je sors de mes sujets habituels pour vous proposer une réflexion autour du vote électronique. berthon.dev/posts/que-pe...
berthon.dev
Que penser du vote électronique ? · Romain Berthon
011
Charles Desneuf @selrahcd.bsky.social · 07/06/2026
"Once managers figure out what they mean and why it matters, the issue in question starts to look a lot more measurable." (Douglas W. Hubbard, How to Measure Anything)
000
Charles Desneuf @selrahcd.bsky.social · 06/06/2026
Fusillade de Fourmies fr.wikipedia.org/wiki/Fusilla...
fr.wikipedia.org
Fusillade de Fourmies — Wikipédia
000
Charles Desneuf @selrahcd.bsky.social · 06/06/2026
Massacre de la rue Transnonain fr.wikipedia.org/wiki/Massacr...
fr.wikipedia.org
Massacre de la rue Transnonain — Wikipédia
010
Reposted by Charles Desneuf
dan @danabra.mov · 05/06/2026
100% agree. if i see “chore” in commit log, im judging you
sumnerevans.com
Stop Using Conventional Commits
You’ve almost certainly encountered Conventional Commits before. It may have reared its ugly head in the changelog of an open source project you’ve used. It may have been the enforced commit format fo...
1815221
Reposted by Charles Desneuf
Eberhard Wolff @ewolff.com · 01/06/2026
OH "Good employees are like light bulbs: They work until they are burned out."
153
Reposted by Charles Desneuf
Antoine Bluchet @soyuka @soyuka.me · 30/05/2026
Migrated API Platform test suite from Behat to ApiTestCase: 45 min => 9 min CI time 8417 LOC vs 14050 deleted Same coverage (about 1900 tests).
093
Charles Desneuf @selrahcd.bsky.social · 30/05/2026
"Excessive complexity is nature’s punishment for organizations that are unable to make decisions." (Gregor Hohpe, Gregor’s Law)
010
Charles Desneuf @selrahcd.bsky.social · 29/05/2026
I understand every piece of code, know all the tiny decisions I’ve made to improve that project. I have other features ideas, I know that they will fit in, I know how I expect to implement them.
010