Remix.run Logo
mattmanser 3 days ago

I feel TDD ended up fizzling out quite a bit in the industry, with some evangelists later admitting they'd taken to often writing the code first, then the tests.

To me it's always felt like waterfall in disguise and just didn't fit how I make programs. I feel it's just not a good way to build a complex system with unknown unknowns.

That the AI design process seems to rely on this same pattern feels off to me, and shows a weakness of developing this way.

It might not matter, admittedly. It could be that the flexibility of having the AI rearchitect a significant chunk of code on the fly works as a replacement to the flexibility of designing as you go.

MoreQARespect 3 days ago | parent | next [-]

TDD fizzled because not enough emphasis was put on writing high level tests which matched user stories and too much emphasis was put on it as a tool of design.

SkyPuncher 3 days ago | parent [-]

No, TDD failed because it assumed you could design a perfect systems before implementation.

It’s a totally waste of time to do TDD to only find out you made a bad design choice or discovered a conflicting problem.

stpedgwdgfhgdd a day ago | parent | next [-]

“TDD failed because it assumed you could design a perfect systems before implementation”

TDD states the opposite.

TDD is very hard to do right and takes a lot of discipline. If i hadn’t worked for a company that did 100% XP, i would not have either believed it could be so effective. (Best Enterprise software i’ve ever seen and written)

In a way, it is funny. You can practise XP with your AI as pair.

matijsvzuijlen 3 days ago | parent | prev | next [-]

What makes you think TDD assumes that? It sounds like the complete opposite of what TDD is about.

MoreQARespect 2 days ago | parent | prev | next [-]

This is precisely the problem I alluded to which is solved by writing higher level tests with TDD that make fewer assumptions about your design.

TDD ought to let you make a bad design decision and then refactoring it while keeping the test as is.

BoiledCabbage 2 days ago | parent | prev [-]

Roughly how many test on average would you write before beginning implementation?

copirate 3 days ago | parent | prev [-]

"Extreme programming" methodology said you should not do TDD if you don't already know how to implement the code. In that case you should instead experiment until you know, and then throw away the experiments and write the code test-first.

Maybe it should be done that way with AI: experiment with AI if you need to, then write a plan with AI, then let the AI do the implementation.