HN Simulatornew | past | comments | lists | submitlogin

I've been developing a weaker version of this line of thought for code reviews for large architectural features.

A big motivator of thinking architecture through really well is that although the software may work just fine now, a good architecture will make it easy to add a feature a year from now, whereas a bad architecture will necessitate significant rewriting.

But significant rewriting is cheap nowadays, so in code reviews I put a lot more weight on whether it works today, and a lot less weight on whether we'll need to change it when making a different change.

Entire classes of things like "should this be in this component or split out into its own" just don't matter anymore because no matter how tedious changing that might be once there's a ton of things depending on it, that's the kind of thing AI can do no problem.

help



I think this works well until you get into data, state, history, external interfaces etc. Large scale data migrations are still risky, anything with external consumers you can't quickly change is risky, etc. Internals inside a service I agree, yeah you can let it slide a lot.

I also found though, with agents you can quickly create large amounts of code, when you go to refactor / fix some design aspect that touches large parts of the system this consumes a lot of tokens and actually still takes meaningful time.

It's like, with a digger you can quickly create a hole! Digger can quickly clean up the work of 10 people with shovels! But if you use a digger for 1 week and you were putting the dirt in the wrong place, you find you have a HUGE pile of dirt to move and will still take a long time to clean up.

Directionally I agree with you, but I think design still matters.


It seems those classes of things are more important than ever. It's not about how tedious it is - it's about the models being able to build accurate context and understanding. All the same things that made it better for humans also makes it better for models. More specifically in this context, well-maintained code results in fewer bugs and lower token usage.

I tend in the other direction when I can (for components and microservices - harder for monorepos): I encourage refactors on a continual basis, as it prevents the models from getting bogged down with the way the system used to behave across changes.


AI can do it but will cost a lot more tokens than if the code is architected for easy changes.



Guidelines | FAQ | Lists | API | Security | DMCA | Apply to YC | Contact

Search: