10 ms·
I’m just today after having my first real success with Claude (and generally with coding agents). I’ve played with Cursor in the past but am now trying Claude a
by aosaigh 1y ago
I’m just today after having my first real success with Claude (and generally with coding agents). I’ve played with Cursor in the past but am now trying Claude and others.
As mentioned in the article, the big trick is having clear specs. In my case I sat down for 2 hours and wrote a 12 step document on how I would implement this (along with background information). Claude went through step by step and wrote the code. I imagine this saved me probably 6-10 hours. I’m now reviewing and am going to test etc. and start adjusting and adding future functionality.
Its success was rooted in the fact I knew exactly how to do what it needed to do. I wrote out all the steps and it just followed my lead.
It makes it clear to me that mid and senior developers aren’t going anywhere.
That said, it was amazing to just see it go through the requirements and implement modules full of organised documented code that I didn’t have to write.
- philipwhiuk 1y agoFrankly, even if you ignore Claude entirely, being able to write a good spec for yourself is a worthwhile endeavour.
- aosaigh 1y agoComplete agree. It’s a core skill of a good developer. What’s interesting is that in the past I’d have started this process but then jumped into coding prematurely. Now when you know you are using an agent, the more you write, the better the results.
- danielbln 1y agoYes but let's not forget the lessons of waterfall planning. You can't anticipate everything, so the detail level of the implementation plan should be within a goldi locks zone of detailed but not too detailed, and after each implementation and test phase one should feel comfortable adjusting the spec/plan to the current state of things.
- aosaigh 1y agoAnother good point. I noticed this happening while writing my document. A few times while writing the doc I had to go back and update the previous steps to add missing features. Also I knew when to stop. It’s not fully finished yet. There are additional stages I need to implement. But as an experienced developer, I knew when I had enough for “core functionalty” that was well defined. What worries me is how do you become a good developer if AI is writing it all? One of my strengths as a developer is understanding the problem and breaking it down into steps, creating requirements documents like I’ve discussed. But that’s a hard-earned skill from years of client work where I wrote the code. I have a huge step up in getting the most from these agents now.
- danielbln 1y agoAgents raise the floor for all, but they raise the ceiling for those of us with sufficient priors.
- closewith 1y agoThe downside of waterfall was not overly detailed specs. In fact, the best software development is universally waterfall following a good, ideally formal spec. The downside that Agile sought to remedy was inflexibility, which is an issue greatly ameliorated by coding agents.
- danielbln 1y agoMaybe if you know the entire possibility space beforehand, in which case that's a great position to be in. In other cases and if the spec doesn't align with reality after implementation has begun or unforseen issues pop up, the spec needs revision, does it not?
- zer00eyz 1y ago> In other cases and if the spec doesn't align with reality after implementation has begun or unforeseen issues pop up, the spec needs revision, does it not? Yes and then it gets pumped back to the top of the waterfall and goes through the entire process. Many organizations became so rigid that this was a problem. It is what Tom Smykowski in office space is a parody of. It's why you get much of the early web having things like the "feature creep" and "if web designers were architects". Waterfall failed because of politics mingled into the process, it was the worst sort of design by committee. If you want a sense of how this plays out you simply have to look at Wayland development. The fact that is has been as successful as it is, is a testament to the will and patience of those involved.
- fooster 1y agoafter 30+years of engineering writing lots of specs is mostly a waste of time. The problem is more or less you don’t know enough. The trick is to write the smallest simplest version of whatever you are trying to achieve and then iterate on that. Be prepared to throw it out. The nice thing with Claude (or Gemini) is that it lets to do this really really quickly.
- esafak 1y agoYou can use Claude to write the spec next time.
- mft_ 1y agoCan you (or anyone) share an example of such a specification document? As an amateur programmer experimenting with CC, it would be very helpful to understand the nature and depth of the information that is helpful.
- bongodongobob 1y agoI do a multistep process Step 1: back and forth chat about the functionality we want. What do we want it to do? What are the inputs and outputs? Then generate a spec/requirements sheet. Step 2: identify what language, technologies, frameworks to use to accomplish the goal. Generate a technical spec. Step 3: architecture. Get a layout of the different files that need to be created and a general outline of what each will do. Step 4: combine your docs and tell it to write the code.
- jamesponddotco 1y agoI have multiple system prompts that I use before getting to the actual specification. 1. I use the Socratic Coder[1] system prompt to have a back and forth conversation about the idea, which helps me hone the idea and improve it. This conversation forces me to think about several aspects of the idea and how to implement it. 2. I use the Brainstorm Specification[2] user prompt to turn that conversation into a specification. 3. I use the Brainstorm Critique[3] user prompt to critique that specification and find flaws in it which I might have missed. 4. I use a modified version of the Brainstorm Specification user prompt to refine the specification based on the critique and have a final version of the document, which I can either use on my own or feed to something like Claude Code for context. Doing those things improved the quality of the code and work spit out by the LLMs I use by a significant amount, but more importantly, it helped me write much better code on my own because I know have something to guide me, while before I used to go blind. As a bonus, it also helped me decide if an idea was worth it or not; there are times I'm talking with the LLM and it asks me questions I don't feel like answering, which tells me I'm probably not into that idea as much as I initially thought, it was just my ADHD hyper focusing on something. [1]: https://github.com/jamesponddotco/llm-prompts/blob/trunk/data/socratic-coder.md https://github.com/jamesponddotco/llm-prompts/blob/trunk/dat... [2]: https://github.com/jamesponddotco/llm-prompts/blob/trunk/data/brainstorm-specification.md https://github.com/jamesponddotco/llm-prompts/blob/trunk/dat... [3]: https://github.com/jamesponddotco/llm-prompts/blob/trunk/data/brainstorm-critique.md https://github.com/jamesponddotco/llm-prompts/blob/trunk/dat...
- miroljub 1y ago> That said, it was amazing to just see it go through the requirements and implement modules full of organised documented code that I didn’t have to write Small side remark, but what is the value added of the AI generated documentation for the AI generated code. It's just a burden that increases context size whenever AI needs to re-analyse or change the existing code. It's not like any human is ever going to read the code docs, when he can just ask AI what it is about.
- nisegami 1y agoIt's entirely possible that the parameters that get activated by comments in code are highly correlated with the parameters involved in producing good code.
- infecto 1y agoDoc strings within the code could be helpful for both humans and AI. Sometimes spoken word intent is easier to digest then code and help identify side effects for both human and AI.
- felixgallo 1y agofrequently your session/context may drop (e.g. claude crashes, or your internet dies, or your computer restarts, etc.). Claude does best when it can recover the context and understand the current situation from clear documentation, rather than trying to reverse engineer intent and structure from an existing code base. Also, the human frequently does read the code docs as there may be places where Claude gets stuck or doesn't do what you want, but a human can reason their way into success and unstick the obstacle.
- spyckie2 1y agoCan’t you send the same spec through cursor? Am I missing something there?
- aosaigh 1y agoYes certainly. I’m sure Cursor would do a good job. That said, I think that the differing UIs of Cursor (in the IDE) and Claude (in the CLI) fundamentally change how you approach problems with them. Cursor is “too available”. It’s right there and you can be lazy and just ask it anything. Claude nudges you to think more deeply and construct longer prompts before engaging with it. That my experience anyway
- danielbln 1y agoFun fact: there is a Cursor CLI now
- camel_gopher 1y agoMany mid and senior developers cannot write specs. I agree with the intent of your statement.
- dewey 1y agoAfter someone mentioned that recently I've started to write really detailed specs with the help of ChatGPT Deep Research and editing it myself. Then getting this exported as a Markdown document and passing it to Cursor really worked very well. It puts you in a different mind space to sit down and think about it instead of iterating too much and in the end feeling productive while actually not achieving much and going mostly in circles.
- sillyfluke 1y agoThe test and review cycle is what determines time saved in my view. Since you were satisfied overall I take it that cycle was not too cumbersome? The parent wrote: >I imagine this saved me probably 6-10 hours. I’m now reviewing and am going to test etc. Guessing the time saved prior to reviewing and testing seems premature fron my end.
- The_Fox 1y agoI too just yesterday had my first positive experience with Claude writing code in my project. I used plan mode for the first time and gave it the "think harder" shove. It was a straightforward improvement but not trivial. The spec wasn't even very detailed- I mentioned a couple specific classes and the behaviour to change, and it wrote the code I would have expected to write, with even a bit more safety checking than I would have done.
- mfalcon 1y agoThat's the way I'd used it, I've built a document with all the requirements and then gave it to CC. But it was not a final document, I had to go back and make some changes after experimenting with the code CC built.
- noiv 1y agoThis is the way.
- andrewgleave 1y agoYeah. Read “Programming as Theory Building” by Naur [1] to understand why you need to still need to develop a theory of the problem and how to model it yourself lest the LLM concoct (an incorrect) one for you. [1] https://gwern.net/doc/cs/algorithm/1985-naur.pdf https://gwern.net/doc/cs/algorithm/1985-naur.pdf
- malshe 1y agoThanks for sharing this article.
- UncleOxidant 1y agoI don't know how many times now that I've seen these things claim to have run the code and show me the hallucinated output and then go on to develop an incorrect theory based on that hallucinated output.
- antonvs 1y agoI've never seen the CLI coding tools do anything like that. They're designed to integrate with the tools. If you're just using a chat interface then yes, you're likely to get some inconsistent behavior.
- UncleOxidant 1y agoThis was Gemini CLI in kilocode. Does it often. Sometimes it even imagines that it's done a build when it hasn't - imagines build errors and then sets out to fix them. I have it set so that it asks permission prior to running commandline tools so I know it hasn't actually run make.
- antonvs 1y agoI use Gemini CLI daily (work is a Google shop), directly (no kilocode). I've never seen anything like that. I wonder if it could be something to do with the kilocode integration. But, I do more commonly run with permission required for many operations, because I find it works much better if I help it every now and then. It can get stuck on some pretty simple stuff.
- wiremine 1y ago> As mentioned in the article, the big trick is having clear specs I've been building a programming language using Claude, and this is my findings, too. Which, after discovering this, makes sense. There are a LOT of small decisions that go into programming. Without detailed guidance, LLMs will end up making educated guesses for a lot of these decision, many of which will be incorrect. This creates a compounding effect where the net effect is a wrong solution.
- fooster 1y agoI get excellent results and don’t do anything like that. Basically I ask Claude to write code as I do. A small step at a time. I literally prompt it to do the next step I’d do and so on and so forth. I accept all changes immediate and then commit after every change and then review the diff. If Claude did some badness then I ask it to fix that. I typically also give references to existing code that I want it to model or functions to use. This gives me excellent results with far less typing and time.
- kookamamie 1y agoExactly this. In my view people over-think the use of Claude in many cases.
- bamboozled 1y agoBecause it's marketed as AI and it takes a while to figure out that it's really quite limited. In my opinion there's not a lot of intelligence going on, It's great at translating a requirement and giving you an approximation of what you asked for, but there isn't really any "thinking" going on. I think when they advertise "thinking" it just does a few more iterations of giving you the closest "number in your head from the clues you've given it (requirements). I saw someone once say that LLMs are a kind of "word calculator" and I feel that's quite a good description.
- v5v3 1y agoTo be fair, if you turn on thinking mode on Llms and see the output their is some thinking/reasoning. A simple example: Prompt:Make it yellow Think: the user wants something yellow but hasn't said what it is. Previously the user talked about creating a Button, so it must be the button but I should clarify by asking Response: is it the button that you want yellow?
- timacles 1y agothis part of LLMs is the pre-programmed human logic. The LLMs arent actually thinking, they're just going through a defined IF THEN loop based on whatever weights, if there is some ambiguity in a prompt the LLM is just programmed to prompt for more info. Its not actually thinking it needs to ask anything, its just coming back with low precision probability. All of the recent improvements in the LLM's "thinking" have just been layers of programming on top of its statistical models. Which is why its becoming clear LLMs are really not advancing that much.
- cortesoft 1y ago> It makes it clear to me that mid and senior developers aren’t going anywhere. I kinda feel like this is a self-placating statement that is not going to stay true for that long. We are so early in the process of developing AI good enough to do any of these things. Yes, right now you need senior level design skills and programming knowledge, but that doesn't mean that will stay true.
- simion314 1y ago>I kinda feel like this is a self-placating statement that is not going to stay true for that long. We are so early in the process of developing AI good enough to do any of these things. Yes, right now you need senior level design skills and programming knowledge, but that doesn't mean that will stay true. So you really think that in a few years some guy with no coding experience will ask the AI "Make me a GTA 6 clone that happens in Europe" and the AI will make actually make it, the code will just work and the performance will be excellent ? The LLMs can't do that, they are attracted to solutions they seen in their training, this means sometimes they over complicate things, they do not see clever solutions, or apply theory and sometimes they are just stupid and hallucinate variable names and functions , like say 50% of the time it would use speed and 50% of the time it would use velocity and hte code will fail because undefined stuff. I am not afraid of LLMs taking my job, I am afraid of bullshit marketing that convinces the CEO/management that if they buy me Claude then I must work 10x faster.
- jezzamon 1y agoThe GTA example is not a good one because the vast majority of the work in making a videogame is not coding...
- ajmurmann 1y agoAnd, somewhat besides the point, generative AI is getting better at a lot of those things as well. Maybe I want to believe this will happen because it's probably the only way to get a sequel to Sleeping Dogs.
- 1y ago
- kookamamie 1y agoI think it can already replace mid-level engineers, based on my experience. Also, you really don't need meticulously crafted specs for this - I've completed multiple projects with Claude with loose specs, iterating in case the direction is not looking good. You can always esc-out in case you see it doing something you didn't wish for.
- chrz 1y agoWas it frontent or/and did you deploy them to prod to be used by 5 million daily users or just had fun at home?
- gronglo 1y agoYou could have saved yourself another 2 hours by getting Claude 4 Opus to write out the specs for you first. Why did you need to write them at all?
- mnky9800n 1y agoI write out a document that explains what I want. Then I write stubs for the functions and classes or whatever. Every stub I write a docstring for what it’s supposed to do. Then I have Claude write unit tests for each stub one at a time. Then I have it write the functions one at a time. At some point I should just start writing the codes itself again. Haha.