Live data from Hacker News

The role of developer skills in agentic coding

martinfowler.com

191–200 of 204 posts

Re: The role of developer skills in agentic coding

#191
post #166

Earlier quoted context omitted.

The (pretty substantial) difference is now the computer is telling you what to do.

In what way?

In the way that the more you do that, the less you have any clue what you're doing. Because you're not learning, you're following instructions. Being programmed, if you will.

Re: The role of developer skills in agentic coding

#192

Earlier quoted context omitted.

> Luddism is a strange philosophy for a software engineer. Luddism and critically evaluating the net benefit and cost of a piece of tech, are 2 very different things. And the latter is not strange for a SWE at all, in fact I'd say it's an essential skill.

I'm referring to this part: >I like writing code and figuring stuff out This is an alien mentality to me.

Problem solving, I'm pretty sure it's the driving motivation for many/most coders.

I find pleasure in crafting the solution, sculpting it by hand; putting everything I've got into making it fit the problem like a glove. Coding to me is an artistic way of expressing myself, exploring, always improving; it's part of the fun to me.

And I don't like following instructions in general, don't like being programmed.

So what's in it for you then, if not the problem solving?

Re: The role of developer skills in agentic coding

#193
post #163
post #114

I don't get it, at all. Why are experienced developers so enthusiastic about chaining themselves to such an obviously crappy and unfulfilling experience? I like writing code and figuring stuff out, that's why I chose a career in software development in the first place.

Instead of writing code, you can now figure out the code that your AI wrote and effectively treat everything as a legacy system.

How is correcting someone else's solutions even close to as fulfilling as creating your own? How can you not lose something by choosing that method?

Re: The role of developer skills in agentic coding

#194
post #114

I don't get it, at all. Why are experienced developers so enthusiastic about chaining themselves to such an obviously crappy and unfulfilling experience? I like writing code and figuring stuff out, that's why I chose a career in software development in the first place.

> I like writing code and figuring stuff out, that's why I chose a career in software development in the first place. That's not why I got into software development. I got into it to make money. I think most people in Silicon Valley these days are the same mentality. How else could you tolerate the level of abuse you experience in the workplace and how little time you get to really dig on that particular aspect of th…

I guess there were always two kinds, Bill Gates doesn't strike me as a person who loves technology. Compared to, say Dennis Ritchie or Wozniak.

I'm firmly in the problem solver/hacker/artist camp.

Which I guess is why we're more concerned about the current direction. Because we value those aspects more than anything; consider them essential to creating great software/technology, to staying human; and that's exactly what GenAI takes away.

I see how not giving a crap about anything but money means you don't see many problems with GenAI.

Re: The role of developer skills in agentic coding

#195

Earlier quoted context omitted.

> Luddism is a strange philosophy for a software engineer. Luddism and critically evaluating the net benefit and cost of a piece of tech, are 2 very different things. And the latter is not strange for a SWE at all, in fact I'd say it's an essential skill.

I'm referring to this part: >I like writing code and figuring stuff out This is an alien mentality to me.

Okay...given that a SWE job is literally "take problem description, figure out way to solve problem in software", what part about this is "alien" exactly?

And yes, there already are solutions to many common problems. The task then becomes finding a best-fit, and adapting these solutions to the specific needs of the usecase...which is another instance of the same task.

Re: The role of developer skills in agentic coding

#196

Here is how I use it: As a writing assistant that lives in my IDE, and as a very very cool and sophisticated rubber duck that can answer me. Something I do quite a lot is throwing back and forth a discussion over a particular piece of code, usually provided with little to no context (because that's my task to worry about), hammering it until we get that functionality correct, then presenting it with broader context t…

This doesn't parse for me: > a discussion over a particular piece of code [...] hammering it until we get that functionality correct Care to provide an example of sorts? > then presenting it with broader context to fit it in So after you have a function you might convert it to a method of a class. Stuff like that?

> Care to provide an example of sorts?

For example, recently I needed to revise some code I wrote a few years back, re-implementing a caching mechanism to make it work across networked instances of the same software. I had a rough idea how I wanted to do that, and used an LLM to flesh out the idea. The conversation starts with an instruction that I don't want any code written until I ask for it, then I describe the problem itself, let it list the key points, and then present my solution (all still as prose, no code so far).

Next step, I ask for its comments, and patterns/implementation details how to do that, as well as alternatives to those. This is the "design phase" of the conversation.

Once we zoom in on a concrete solution, I ask it to produce a minimal example code of what we discussed. Then we repeat the same process, this time discussing details about the code itself. During that phase I tell it what parts of the implementation it doesn't t need to worry about and what to focus on, keeping it from going off to mock-up-wonderland.

At the end it usually gets an instruction like "alright, please write out the code implementing what we discussed so far, in the same context as before".

This gives me a starting point to work from. If the solution is fairly small, I might then give it some of the context this code will live in, and ask it to "fill in the blanks" as it were...often though I do that part myself, as its mostly small refactoring and renaming.

What I find so useful about this workflow, as opposed to just throwing the thing at my project directory; it prevents the AI from getting side tracked, lost, as it were, in some detail, endlessly chasing its own tail trying to make sense of some compiler error. The human in the loop (yours truly), sets the stage, presents the focus, and the starting point is no code at all, just an ephemeral description of a problem and a discussion about it, grounding all the latter steps of the interaction.

Hope that makes sense.

Re: The role of developer skills in agentic coding

#197

Earlier quoted context omitted.

This is a very typical reply when we see someone pointing out the flaws of AI coding tools. "You are using it wrong, AI can do everything if you properly prompt it" Yes, it can write everything if I provide enough context, but it ain't 'Intelligence' if context ~= output. The point here is providing enough context itself is challenging and requires expertise, this makes AI ides unusable for many scenarios.

We already have a term for prompting a computer in a way that causes it to predictably output useful software; we called that programming, and people on this website used to think that knowing how to do that was a worthwhile field of study.

The obligatory CommitStrip: https://www.commitstrip.com/en/2016/08/25/a-very-comprehensi...

Re: The role of developer skills in agentic coding

#198

Earlier quoted context omitted.

It's a piece of software, not a magical wand

In terms of use it's closer to a magic wand than traditional software.

It's more like a genie, you tell it your wish and hope it doesn't get it all twisted.

Re: The role of developer skills in agentic coding

#199

Earlier quoted context omitted.

This is a very typical reply when we see someone excited about AI and then a luddite needs to come along and tell them why they should not be so excited and helpful. I mostly jest but your comment comes off quite unhelpful and negative. The person you replied to wasn’t blaming the parent comment, just offering helpful tips. I agree that today’s AI tools aren’t perfect, but I also think it’s important for developers t…

I think your reply is a bit unfair. The first problem of the AI using outdated libraries sure it can be fixed if you are a competent developer who keeps up with industry standards. But if you need someone like that to guide an AI, then "agentic" coding loses a lot of its "agentic" ability which is what the article is talking about. If you need enthusiasts and experts to steer the AIs, they are a bit like "full self d…

I disagree. It’s unfair to put words in other people’s mouth which is who I was replying to.

Re: The role of developer skills in agentic coding

#200

Imo, AI implements something useful 20% of the time while breaking existing code 80% of the time.

which AIs are you using? do you edit what they suggest yourself or just blindly copy-paste and hit run? do you ask them to write unit-tests + self-fix for what they written?

I used Cursor, Augment Code, Roo Code, Aider, Cline, Github Copilot. With Claude and Deepseek and OpenAI backends. I let AI to modify files and I ask to write tests and fix them. Some tools can also run them.

I am fiddling with tools like Cursor, Aider, Augment Code, Roo Code and LLMs like GPT, Sonnet, Grok, Deepseek to try to decide whether I can use AI for what I need, and if yes, identify some good workflows. I've read experiences of other people and tried my own ideas. I've burnt countless tokens, fast searches and US dollars. Working with AI for writing code is painful. It can break the code in ways you've never imagined and introduce bugs you never thought are possible. Unit testing and integration testing doesn't help much, because AI can break those, too.

You can ask AI to run in loop, fixing compile errors, fixing tests, do builds, run the app and do API calls, to have the project building and tests passing. AI will be happy to do that, burning lots of dollars while at it.

And after AI "fixes" the problem it introduced, you will still have to read every goddam line of the code to make sure it does what is supposed to.

For greenfield projects, some people recommended crafting a very detailed plan with very detailed description and very detailed specs and feed that into the AI tool.

AI can help with that, it asks questions I would never ask for an MVP and suggests stuff I would never implement for an MVP. Hurray, we have a very, very detailed plan, ready to feed into Cursor & Friends.

Based on the very detailed plan, implementation takes few hours. Than, fixing compile errors and fixing failing tests takes a few more days. Then I manually test the app, see it has issues, look in the code to see where the issues can be. Make a list. Ask Cursor & Friends to fix issues one by one. They happily do it and they happily introduce compilation errors again and break tests again. So the fixing phase that last days begins again.

Rinse and repeat until hopefully we spend a few weeks together (AI and I) instead on me building the MVP myself in half time.

One tactic which seems a bit faster, is to just make a hierarchical tree of features, ask Cursor & Friends to implement a simple skeleton, then ask them to implement each feature, verifying myself the implementation after each step. For example, if I need to log in users, just ask to add logging in code, the ask to add an email sender service, then ask to add email verification code.

Structuring the project using Vertical Slice Architecture and opening each feature folder in Cursor & Friends seems to improve the situation as the AI will have just enough context to modify or add something but can't break other parts of the code.

I dislike that AI can introduce inconsistencies in code. I had some endpoint which used timestamps and AI used three different types for that DateTime, DateTimeOffset and long (UNIX time). It also introduced code to convert between the types and lots of bugs. The AI uses some folder structure for a part of the solution and other structure for other parts. It uses some naming conventions in some parts and other naming conventions in other parts. It uses multiple libraries for the same thing, like multiple JSON serializing libraries. It does things in a particular way in some parts of the application and in another way in other parts. It seems like tens of people are working in the same solution without anyone reading the code of the others.

While asking AI to modify something, it will be very happy to modify things that you didn't ask to.

I still need to figure out a good workflow, to reduce time and money spent, to reduce or eliminate inconsistency, to reduce bugs and compile errors.

As an upside using AI to help with planning seems to be good, if I want to write the code myself, because the plan can be very thorough and I usually lack time and patience to make a very detailed plan.

Post reply on HN