Could TDD be rebranded as โTest Guided Designโ for agentic workflows
Could TDD be rebranded as โTest Guided Designโ for agentic workflows
TDD is Strong Prompting
How about creating a cli tool with the 6 core refactorings (arlobelshee.com/the-core-6-r...) and having your agent use this by stringing together chains of small refactorings to produce a larger result?
This is how I usually work and if it works for a dummy like me it should work for LLMs as well
What if โfake knowingโ turns out to be good enough?
I really like the new way of developing software. Since trying out different approaches to the same problem can be game out in minutes instead of hours I feel like the quality of our decision making is increasing
Interesting observation: after my team and I have started embracing agentic development workflows (with opencode) weโve noticed that pairing has become slightly challenging. There is a lot of sitting in silence waiting on each other reading prose.
Not saying impossible, but different
I hope you like embracing change because there is plenty of change to embrace
Opencode is so so good!
Agent skills for all your cli tools for seamless information integration
Augmented coding lessons learned:
- what good development practices are hasnโt changed
- TDD
- Functional Core/Imperative shell
- HITL
- the LLMs are good at grunt work, bad at everything else
One positive thing about the rise of ai coding is tdd going mainstream
With agentic coding one hopeful future of enterprise development could be *many more much smaller teams*
Using OpenCode with agents modeled for each step of TDD is quite something!
With Claude Opus 4.5 and planning mode the game has genuinely changed. But from the perspective of a dev it means that I get to focus on much more interesting problems.
But it also seems that the 2 pizza size teams is way too big now. Many more much smaller teams, please
Sometimes when writing tests I do it to see if some code works but mostly I do it to find out how my design *feels*.
Kind of like how I would test drive s new car before buying it
Better ideas will win over bad ideas with respect to the *environment*.
#ForestAndDesert
Instead of calling it TDD - try *executable* spec driven development ๐ฎ
What are some good talks on refactoring?
Itโs dawning on me that
80% of getting software engineers to work right* is environmental.
20% is education (15% co-creation patterns 5% techniques)
(*Iโm my context of enterprise software development this is XP and TBD)
The main feature of LLMs seems to be disappointment. So close yet so far.
My go to prompt is usually something like
โRewrite for a non-technical audience. Optimize brevity, clarity and ease of reading. Donโt use listsโ.
I just use copilot with Claude 3.7 thinking, it seems to give the best results
For me the killer-feature of ai has not been writing code but writing prose. Managing a dev team in a larger org involves a lot of writing. Being able to quickly unload a stream-of-consciousness in to a markdown file and have the ai clean it up is very useful.
Hey @kentbeck.com have you read โLeadership is languageโ by David Marquet?
He makes done really interesting points about the nature of work especially dividing it in to blue and red work (analysis vs execution).
It seems to align closely with your work (both past and present)
At least the conversations become better. Instead of โcan we close itโ we ask โwhat did we learnโ
Consider framing stories as learning activities. Instead of โas a โฆ I need to โฆ such that โฆโ try โas <team> we will learn how to โฆ such that โฆโ
Too often stories turn out to be wrong in subtle ways which make them hard to close. If the emphasis is on learning is clearer
All good design is testable but not all testable design is good.
Low tests coverage is always bad but high tests coverage is not always good.
What other one way correlations have you encountered?
Lately Iโve found my self writing more ADRs and KDRs than code. Funny how everything Iโve learnt about small steps and refactoring is a 100% transferable skill
I wish I could write tests for prose.
assert_<some_point>_is_expressed_in_<some>_way
So that I could apply TDD
Could I get my AI to do this somehow?
The most human thing about AI coding agents is that they really struggle with working in small steps
Maybe the killer feature of AI for programming is making the cost of mapping layers effectively zero