We have a Trust problem (not only with AI)
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 20
Next thing you know: It’s a vein
Software I know really well
Software I like
@jbaruch
@gamussa
diagram
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 21
But hey, we do have working s oftware sometimes × Good intentions × Professionalism × Tests and QA × End result observation
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 22
Until gen AI changed the game × × × ×
Good intentions Professionalism Tests and QA End result observation
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 23
AI Coding Agents Software quality @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 24
I find your lack of trust disturbing @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 25
Idea! Verifiable intent What if we code in the intent and always verify against it?
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 26
Let’s express intent in tests × × × ×
Instead of SDDs Always up-to-date Generate consensus Parsed by the machine
@jbaruch
@gamussa
@Devoxxfr
TDD?
#pdd
speaking.jbaru.ch
What if it (almost) won’t look × × × × ×
like code?
Instead of SDDs Always up-to-date Generate consensus Parsed by the machine Describe behavior instead of tests @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 29
What if it (almost) won’t look × × × × ×
like code?
Always up-to-date BDD? Generate consensus Parsed by the machine Describe behavior instead of tests Almost plain English human language @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
But writing tests first is still
Business people won’t write tests
@jbaruch
a good idea, right?!
But the developers Still will, right?!
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 32
Why developers won’t write te
sts first × Developers are solution-biased × We already know how to solve the problem × Legacy code bases
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 33
LLMs to the rescue!
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 34
How everything comes togeth
er
Business people define what software should do
@jbaruch
LLM creates specs
@gamussa
Specs are reviewed and agreed upon
@Devoxxfr
Tests are generate d and reviewed
#pdd
Code is written to satisfy the tests -> specs -> design
speaking.jbaru.ch
Slide 35
Why does it work? × × × × ×
Business people write text Specs are reviewed by all SDDs are Specs are living docs Everything else is derived from specs Previous steps are protected @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 36
PDD is BDD as it meant to be × Define and agree on intent × AI is protected from circular verification × Up-to-date context docs at all times
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 37
Rules/Guidelines × Mostly refined by Cascade × The full version covers an existing codebase scenario × Has a link in /docs
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 38
New project × Phase 1: Define requirements using the memento pattern × Phase 2: Define test scenarios and specs × Phase 3: Implement tests and business logic @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 39
Existing project × Phase 0: Examine code and produce full test coverage × Existing tests are protected
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 40
Protection rules × Requirement documents are protected after Phase 1. × If changes are needed, the phase is reset
× Test scenarios and specs are protected after Phase 2.
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 41
Recovery rules × Source control commits after stages × Requirements changes trigger phase reset and re-alignment × Might convert the project into ”existing” mode
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 42
Cascade in Windsurf Pros × Speed × Conversation and reflection × Selectable models
@jbaruch
@gamussa
Cons × Not IntelliJ IDEA × .windsurfrules system is not ideal
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 43
Junie in intellij idea Pros × IntelliJ IDEA × Execution Plan × guidelines.md is better
@jbaruch
@gamussa
Cons × Speed × Introversion × No chat/reflection mode
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 44
Better Rules system? × × × × ×
Multiple files for different scenarios Flexible actuators File references for reuse Optionally, part of the documentation .cursor/rules for the best implementation ATM @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 45
Too much code? × New prompt – new context window × Memento pattern FTW × But what if even the initial context is too large? × Is it the perfect argument for microservices? @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 46
Who should fix the code? × Code inspections (linting in VS Code) integration × “Switch from AI generation to tool calling when needed” ×
Leonid Kuligin – “What is an AI agent? How to develop one?”
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Is it engaging?
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 49
Looks like a pretty easy fix…
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 50
Are the stops intentional?
”rich mode”? @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 51
Use tools, add guardrails
Using IntelliJ IDEA code inspections
@jbaruch
@gamussa
Machineverify stages compliance
Physically protect stage assets
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 52
Is it too rigid? × The process feels the opposite of agile × Making changes is a pain × Are there other options?
@jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 53
(Summary) PDD – BDD finally m a
kes sense
× Generates consensus × Features are verifiable back to requirements × We can start trusting AI code (🤞) × But there is still work to be done @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch
Slide 54
THANKS!
Q&A and Twitter X/Bsky/LinkedIn ads: x x x x x
@jbaruch @gamussa @devoxxfr #pdd speaking.jbaru.ch @jbaruch
@gamussa
@Devoxxfr
#pdd
speaking.jbaru.ch