memjay
Joined 1 year ago
Joined 1 year ago
The internet is full of people doing the “AI = compiler” comparison and it’s just wrong.
Maybe on a really small scale they can resemble a compiler because the number of possible outcomes is so small that it’s nearly deterministic.
But at any larger scale AI will not be deterministic anymore and at that point it will be relevant what the resulting code looks like. Because it can and will be slightly or very much off from your instruction.
This is an amazing use of LLMs, contrary to offloading your thinking to it during implementation (which does not mean not using to write code but to actually understand the systems you are creating with it, and all their edge cases, inner workings etc.)
We are using quite a big list of rules and the output is significantly more aligned with what we interpret as “good” code.
But I don’t know where to draw the line yet. It’s difficult to decide what parts you are offloading and what parts you keep for your own brain. Because theoretically you can offload nearly everything when you get a well-defined ticket and just give it to an agent.
Maybe it’s also just me who is having a hard time staring at LLM generated texts all day and missing the past brainstorming, pair programming or “just talking about the project” sessions with colleagues and managers.
I fear that we are moving in the direction of silos again with lots of gate keeping as everyone has their own little rubber duck to talk to now.
Systems from today (if not worked on with discipline) will be no more than an agglomeration of features glued together. But as you said, guess our fight to fight will be to be that disciplined person.
Use AI as much as you want, for research, writing code, reviewing code, etc.
But please, keep communicating on a human level. We are slowly loosing valuable communities when only bots are arguing with each other.
And the discipline gets attacked even more when all you read is LLM text. For example in code reviews there is no noticeable value in answering LLM generated review comments. I remember taking great care answering human-written reviews comments with much thought to either further build on their suggestions or to forward knowledge about the system when I had to defend a particular change.
Now, some bot will read my carefully written response and forgets about it. There is no value anymore.
No wonder that our pull request comments feel like the dead internet theory right now.
I am absolutely pro AI assisted coding. But communication between humans HAS to stay human. I am currently experiencing the opposite and it’s bad.
But code was made to create architecture, to design systems and also to make actual code (machine code) readable for humans.
In my experience with spec-driven development, the lossy layer of specs on top of code is not the right way to drive development of systems and architecture. The English language is not precise enough to describe those systems.
Of course you can use specs or just prompts to drive the creation of code (I do that for 99% of my code) but the “truth” is still the actual code and not the prompts/specs.
Maybe that’s also just a difference between people (like visual learners vs non-visual etc.) and some have an easier time to grasp every detail of the systems they are working on through code and some through descriptions.
Guess it also depends on the complexity of the software you are developing. For private projects I had more success with spec-driven while at work it would be a terrible choice.
But I worry the most about who will be able to define all of those specs (with all of their necessary detail and edge cases etc.) without understanding the systems that live below the specs. Maybe that won’t be a problem anymore if agents will be able to 100% accurately translate specs into code. But for now I imagine this to be really difficult.
Some day we won't even need coders any more. We'll be able to just write the specification and the program will write itself.
Oh wow, you're right! We'll be able to write a comprehensive and precise spec and bam, we won't need programmers any more!
Exactly!
And do you know the industry term for a project specification that is comprehensive and precise enough to generate a program?
Code It's called code.
All features should now be created via this workflow. It’s basically a ticket going in, a few rounds of questions back and forth with the LLM, then waiting for an hour until it finishes.
Then having to read/review 2k lines of AI-generated code. It’s terrible.
Sometimes I feel like it would be best to only give the agent access to clear API boundaries (say public interfaces to certain modules) and let it work out a new system from scratch given the expected inputs and outputs. Then plug this independent solution into the system. Of course it can still overfit these interfaces but it’s less than having access to the entire codebase.
Thinking about it, maybe it’s possible to let one agent extract those interfaces, then use them as grounding for a new session.
One less nice way of achieving the same is to tell the agent once in a while that it should think completely from scratch (from first principles). But this relies heavily on instruction following in the reasoning part, which sometimes works and sometimes fails.
And because we were talking to colleagues we wanted to make sure that we don’t waste their time. So we kept PR descriptions precise and understandable, we created small reviewable PRs and we wrote review comments that didn’t span half of your page.
Everything felt like it had value to someone.
But I agree with the current pace push it’s nearly impossible to do it any different. And honestly I don’t understand the rush. At least at our company I can’t discern any speed-up yet. Yes, more lines of code are written but features still take very long. It often just moves the work to a different stage in the process.
I am writing too much but I can’t stop thinking about all of this day and night. Sometimes even questioning whether the standards I want to live up to are maybe set too high for this day and age…