| I continue to jump into these discussions because I feel like these upvoted posts completely miss what’s happening… - guardrails are required to generate useful results from GenAI. This should include clear instructions on design patterns, testing depth, and iterative assessments. - architecture decision records are one useful way to prevent GenAI from being overly positive. - very large portions of code can be completely regenerated quickly when scope and requirements change. (skip debugging - just regenerate the whole thing with updated criteria) - GenAI can write thorough functional and behavioral unit tests. This is no longer a weakness. - You must suffer the questions and approvals. At no time can you let agents run for extended periods of time on progressive sets of work. You must watch what is generated. One thing that concerns me about the new 1mm context on Claude Code is many will double down on agent freedom. You can’t. You must watch the results and examine functionality regularly. - No one should care about actual code ever again. It’s ephemeral. The role of software engineering is now molding features and requirements into functional results. Choosing Rust, C#, Java, or Typescript might matter depending on the domain, but then you stop caring and focus on measuring success. My experience is rolled up in https://devarch.ai/ and I know I get productive and testable results using it everyday on multiple projects. |
Caveat: it still works best in a codebase that is already good. So while any one line of code is ephemeral, how is the overall codebase trending? Towards a bramble, or towards a bonsai?
If the software is small and not mission critical, it doesn’t matter if it becomes a bramble, but not all software is like that.