4 ms·
I like your constructive outlook and I want to believe that we can now focus on the bigger picture, but I'm not really seeing it around me. Most everyone I know
by corv 13d ago
I like your constructive outlook and I want to believe that we can now focus on the bigger picture, but I'm not really seeing it around me. Most everyone I know that's "AI-pilled" has spent the newfound capacity on throughput instead of altitude.
Is anyone actually seeing a shift towards improved structure rather than more code, faster? We seem to be living in the Gatling-gun version of the picture John Carmack drew when modernity also ushered into precision marksmanship...
- enraged_camel 13d ago>> Is anyone actually seeing a shift towards improved structure rather than more code, faster? Yes. At work we recently finished a complete rewrite of the platform. The old codebase got abandoned and two new codebases got stood up. Previous stack was Phoenix LiveView and the new one is Phoenix API + Vue /w TypeScript. Zero code shared between the two. We took the opportunity to re-architect a lot of the core functionality and get rid of the tech debt that had been hounding us and killing our velocity for the past six years. We finished the rewrite in two months. A little over 700k LoC total. 95% of it was planned, orchestrated and written by AI. We could have gotten it done faster, but we were well aware of the potential for slop and thus paid an absurd amount of attention to (and tokens for) code quality. For example, there is a 100% test coverage requirement in both server and client, combined with AI-driven review rules that say all tests must be non-vacuous, plus a ton of invariants enforced via deterministic checks. Everything from standard linting and formatting rules to AI-necessitated stuff like "comments cannot be more than five lines each" is in there. At the end of each week, we get together for ~30 minutes to review each bug that was fixed that week (there haven't been that many) and try to figure out if more deterministic checks can be added (or new ones extended) to prevent that class of bug from re-appearing. We actually have an Architecture epic with a dedicated Fable agent orchestrating all the initiatives and tickets in it and keeping track of improvements (and the occasional regression). So things like accessibility, usage of shared helpers, enforcement of common patterns, etc. are all kept track of. The difference between the old codebase and the two new ones has been night and day. The new codebases, combined, are ~35% larger than what we had before, and yet there are way fewer bugs (we actually got suspicious at first and had to check to make sure our logging instrumentation was configured correctly). Performance is also stellar, features have been a lot easier to add and extend, and everything is a lot easier to find. When someone asks a question or has an issue we have a pretty good idea of what part of the codebase to look in and we're usually right. It wasn't all unicorns and rainbows. Not everyone on the team was proficient with AI-driven development, so they had to be brought up to speed quickly and taught the tools and also what works and doesn't. Code reviews were also difficult and time-consuming. We had to deal with our anxieties about working in two new codebases none of us had authored much code in ourselves. What made all of it worse was that we were racing towards a deadline imposed by external factors so we all ended up working a lot of hours. It was essentially between getting it done this summer or waiting until next summer and we bit the bullet and did it. It absolutely would not have been possible without AI.
- doctorpangloss 13d ago> For example, there is a 100% test coverage requirement in both server and client, combined with AI-driven review rules that say all tests must be non-vacuous, look, your application works, right? so it doesn't really matter what you or i think, and this is why AI matters. but this, your "100% test coverage" - that is pure slop. just 20 years ago, all the most popular software shipped with NO tests. are you getting it?
- socalgal2 13d ago> just 20 years ago, all the most popular software shipped with NO tests not sure what you're point is here. It sounds similar to "we use to use blood letting and leeches and doctors didn't clean their hands and everything was fine so what are you getting at?" Good tests have real benefits. The fact that people shipped without them in the past in no way suggests they aren't needed or have no point.
- deleted 13d ago[deleted]
- feffe 13d agoAlso, 20 years ago SW was tested by QA department and approved before shipping. Don't want to go back to that, but there were testing, just differently.
- flohofwoe 13d agoIMHO getting rid of proper QA done by teams of QA specialists is the main reason for the current software quality crisis (and that already started 15 years ago or so). We should go back to QA teams and proper QA procedures! Automated tests are no replacement, especially when they are set up by the same people designing and building the product.
- YeGoblynQueenne 13d ago
- charcircuit 13d agoAre those people working on products or platforms? Platforms still have to be rock solid and deliver performance guarantees to the products built on top of them.
- Razengan 13d agoThe people who are using AI to improve what they were already doing anyway, aren't going around expounding "I made this with AI!" Like one of my personal projects is a sort of "middleware" for Godot, and it needs to be lean, precise and match certain rules, because it's meant to be used by many games, so I can't blindly trust AI to generate code for it, it'd be too sloppy, BUT Codex reviews have been a great help in finding bugs that would have taken me ages to even notice on my own. Some of those AI findings helped me overhaul entire subsystems, still manually coded.
- archagon 13d agoI feel like using LLMs as a sort of deep search to find bugs and security issues is going to end up relatively uncontroversial all around, if the externalities of LLM use are ever taken care of.
- mettamage 13d agoI use vibecoding to capture UX. It's the best way of capturing requirements I've seen so far. Then once it's all captured and dies down towards requirements that are all in the "could have" category of MoSCoW, then I use AI-assisted coding (and the fun task of reading tens of thousands of source code lines) to refactor or create an entirely new application that is more technically sound. I'm making full-stack applications at the moment.
- lowbloodsugar 13d agoMiyamoto having an assault rifle doesn’t exclude 19 year old cannon fodder also having assault rifles and spraying them liberally to little effect.