Hacker News new | ask | show | jobs
by jcelerier 355 days ago
> The goal of software engineering is not to write code faster

That just really depends on your situation. Here's a case I had just last week: we had artists in residency who suddenly showed up with a new, expensive camera that didn't have any easy to use driver but requires the use of their huge and bulky custom SDK.

Claude whipped a basic working c++ proprietary-camera-sdk-to-open-video-sharing-protocol in, what, 2 minutes? From the first go with a basic prompt? Without that it'd have been at least a couple days of development, likely a day just to go through the humongous docs -- except I had at most two hours to put on this. And I already have experience doing exactly this, having written software that involves realsenses, orbbec, leapmotion, Kinect, and all forms of weird cameras that require the use of their c++ SDK.

So the artists would just not be able to do their residency the way they wanted because they only have 3 days on-site to work too.

Or I'd have spent two days for some code that is very likely to only ever being used once, as part of this residency.

Thus in my line of work, being able to output code that works, faster than humans, is absolutely game changer - this situation I'm describing is not the exception, it's pretty much a weekly occurrence.

4 comments

> Claude whipped a basic working c++ proprietary-camera-sdk-to-open-video-sharing-protocol in, what, 2 minutes? From the first go with a basic prompt? Without that it'd have been at least a couple days of development, likely a day just to go through the humongous docs

That's basically what I said. They are example generators. Their creators have not published the source of the data that goes in their training so we can assume that everything that is accessible from the web (and now from places that use their tools) was used.

So if you're already know the domain to provide the right keywords, and can judge the output to see if it's good enough, it's going to be fine. Especially, as you've said, it's something that you're used to do. But do you need the setup mentioned in TFA?

Most software engineering tasks involved more than getting some basic prototype working. After the 80% work done by the prototype, there's the other 80% to have reliable code. With LLMs, you're stuck with the first 80%, and that already require someone experienced to get there.

It definitely takes a lot of experience writing code with a LLM. Like a junior engineer it makes tons of (small) mistakes. It takes years of practice to detect the LLM is introducing small bugs that will reveal themselves only after extensive testing or running in prod.

It will be interesting to see how beginning developers will deal with these bugs as they did not write the code and do not have a mental model of the code. Will quality drop? Perhaps some can be compensated by letting the LLM do extensive testing.

Similar anecdata:

I was writing some automated infra tests with Terraform and Terratest and I wanted to deploy to my infra. My tests are compiled into a binary and shipped to ECS Fargate as an image to run.

Instead of doing docker in docker to pull and push my images and before googling for an existing lib for managing images directly I asked Claude to write code to pull the layer tarballs from docker hub and push them to my ECR. It did so flawlessly and even knew how to correctly auth to dockerhub with their token exchange on the first try.

I glanced at the code and surmised it would have taken me an hour or two to write and test as I read the docs on the APIs.

I am sure there is a lib somewhere that does this but even that would have likely taken more time than the code gen I got.

Oh, so Claude in this case was a bandaid over a communication problem (the artists not getting the memo about not suddenly showing up with new equipment that you have to support, with no prior discussion, warning, or heads-up).

It absolutely is a game changer.

Now the game for you is to deal with whatever equipment they throw at you, because nobody is going to bother consulting you in advance.

Just use AI, bro.

Good luck next time they show up with gear that Claude can't help you with. Say, because there's no API in the first place, and it's just incompatible the existing flow.

>So the artists would just not be able to do their residency the way they wanted because they only have 3 days on-site to work too.

That, to me, sounds like the good outcome for everyone involved.

It would have been their problem, which they were perfectly capable of solving by suddenly showing up with supported equipment on the job site.

Wanting you to deal with their "suddenly showing up" is not the right thing to want.

If want that, they shouldn't be able to do the residency the way they want.

Saying this as a performing musician: verifying that my gear will work at the venue before the performance is my responsibility, not the sound tech's. Ain't their job to have the right cables or power supplies. I can't fathom showing up with a setup and simply demanding to make it work.

IDK what kind of divas you work with, but what you described is a solid example of a situation when the best tool is saying "no", not using Claude.

The fact that it's a weekly occurrence is an organizational issue, not a software one.

And please — please don't use a chatbot to resolve that one either.

Chill Winston! Artists in residency are not know for being technical. They are not divas demanding support but individuals who are supposed to have access to resources, space, and support that allows them to develop as artists.

The spaces they are working with often benefit from having talented creatives but this isn't a performance gig we're talking about.

I think it was just an example. The real meat behind the example is what someone said today and that I'm now stealing: AI helps with a faster tech debt generation. Having $anyone asking for $anything in a hurry it's probably the #1 cause of tech debt. If now with AI all the answers are going to be "yes, sure!" well, tech debt will go up.
That's a good way of putting it. Especially in inexperienced users' hands.

I'm working with a bunch of autonomy guys (think PHD algorithms people) and ChatGPT lets them write code. Which is good.

Except the code is hot garbage. It works for the thing they're trying to do, but it doesn't handle errors, it's not extendable, it's not maintainable, and they'll fight you when you tell them how to make it any of the above because they didn't write it and don't really understand how it works.

There's no management buy-in--startup, so velocity matters more than anything--so I've resorted to letting them have their working garbage patch and I just let them deal with the consequences. Frustrating, but quality doesn't matter sometimes.

the answer was "yes, sure" before AI too. the difference is whether you're going to do overtime staying up to 2AM trying to make things work.
Not in my case. But overstaying, at least here in Europe, is not seen as a good thing, while using AI starts to be encouraged by CTOs and CEOs.
as someone from France this has really, really not been my experience when I think of how many times I had to pull on all-nighters for work because of $deadline.
>Artists in residency are not know for being technical.

They use the technology, they make the decisions about technology (like which cameras to use), and they literally can't do their work without the tech

— they better be at list a little "technical" for their own sake.

The idea of knowing your gear has nothing to do with artistry. This is my rifle. There are many like it, but this one is mine.

And if they're "not known for being technical", they better consult someone who is (that is, you) before making decisions about technology (like choosing equipment for the job).

The problem here wasn't their lack of technical expertise.

The problem was the artists suddenly showing up one day with strange equipment.

The solution here is asking the artists to check in with you about gear as soon as they are signed up, and talking to you BEFORE getting new gear.

That's it. They don't have to be more technical. They need to help you help them.

You said it yourself that this would not have been a problem for you without Claude if you had more time to deal with it.

The problem was a lack of advance warning. And it's a solvable problem.

These artists might not have been divas before that residency.

But the policy of not having to consult the tech before bringing in gear and expecting it to just work, on zero notice, while remaining "not technical" — that turns them into divas.

If they are not making these demands, who does?

If that's you, that sounds rather masochistic. In which case using Claude to dull the pain seems rather counterproductive in the short term.

Seriously though, Claude isn't a solution for setting expectations and communication, which is the real problem here.

You could've still used Claude to write that driver. But you could have also had the several days to do it, and it wouldn't be an example of Claude saves the day any more.

Or — better yet — you could've given the artists a chance to reconsider their gear choices.

There might not have been a reason why they picked that gear in the first place instead of one you could've worked with easily (did you ask?).

You didn't enable the artists to do their job. You enabled them to make uninformed gear decisions.

That's not helping them in the long term; it's just setting them up for failure. Claude can't code around an API that isn't there, or a hardware incompatibility.

And that's before we get to the most important aspect of art: limitation breeds creativity. This sort of babysitting isn't helping the art either.

If the goal is to help them develop as artists, then it seems you're accomplishing the opposite.

Have you at least told them that they've created a problem for you? They'd want to know that. People usually don't want to create problems for others.

As for me — I'm chill AF in the first place; and I'm not against using chatbots to solve problems — it's just that I'm not convinced that Claude is the right LLM to use here.

Perhaps asking ChatGPT about this situation, and how to talk to artists (and shape the equipment policy for your space) would do much more impact on the problem you said is recurring on a weekly basis than using Claude to put more bandaids on a pile of bandaids.

> The problem was the artists suddenly showing up one day with strange equipment.

again, this is not a problem but a basic expectation when you do media arts residencies. Just like it's an expectation when you work in the event industry that you're going to get gigs for making something in the morning for an event happening in the evening.

>again, this is not a problem but a basic expectation when you do media arts residencies

If it isn't a problem, then the AI isn't a solution. You can't have a solution without a problem.

Saying that "this is just a basic expectation" is rather bizarre.

Who's setting that expectation?

And more importantly, why is it there? Who's benefiting from it? Why do you keep it?

FFS, you can proactively reach out to the artists and ask about what equipment they will use.

One doesn't just suddenly get an arts residency. There's an application process, I presume, and plenty of communication between the artist and the venue happening before any work begins.

There's no reason for discussion of the equipment not taking place early on where the entire point is using technology to create art.

And yes, "is just the way things are done in this industry" can be remarkably stupid. Doctors didn't wash hands until mid 19th century, that was just the basic expectation.

More soldiers were dying of disease in military hospitals than from battlefield casualties as a result.

The solution to the high death rate wasn't automating weapons (which did come with the Maxim gun). It was Florence Nightingale challenging the basic expectations.

Or, in modern parlance — calling BS on it.

You're not making a convincing case for that "basic expectation" existing.

>Just like it's an expectation when you work in the event industry that you're going to get gigs for making something in the morning for an event happening in the evening.

I've read this sentence three times, and it still didn't make any sense. Could you perhaps rephrase?

Again, when I gig with bands, I don't bring random gear for someone to set up.

It's my job. And we have a sound check. And if my gear doesn't work, the sound guy isn't fixing it.

Not sure what sort of analogy you meant to make, but it's not coming through.

Excellent point! His approach worked in practice, but it would never work in a theoretical situation where proving a point is more important than just solving the problem, so it's obviously worthless.
"Use the cameras you used last time for this gig, we'll work out something for the next one"

If uttering a sentence like this is a "theoretical" solution for you, I don't know what to tell you, except that you're not going to have a good time in any job until you learn the practicality of saying "no" the hard way.

And if you're living your life where the only "solution" to any problem created by stupidity, miscommunication, and bad planning of other people is saying "yes, sir!” and enabling them to do more if it —

— best of luck growing out of serfdom one day.

> And if you're living your life where the only "solution" to any problem created by stupidity, miscommunication, and bad planning of other people is saying "yes, sir!” and enabling them to do more if it

I'm not sure if you've ever worked in a "creative" environment filled with artists, either professionally or not, but the goal is almost never to come up with a solution that is technological superior or even "correct", it just have to work for the session, maybe two.

If you're a technical contributor to such an environment, then your "job" is basically to support their whims, that's how the project moves forward. Saying "no" when an artist approaches you isn't really in the job requirements, but of course you can steer them into a different direction, but ultimately they steer the ship, and they have to.

But ultimately your job in those cases are to support the vision of someone else, often by any means necessary and fast too.

>I'm not sure if you've ever worked in a "creative" environment filled with artists

I've played in 4 bands over the past 8 years, paid and unpaid gigs, and helped organize a few events.

So, no, I haven't worked in a "creative" environment (with scare quotes), but I've played live in bars, clubs, concert venues, house parties, So Far Sounds events, art spaces, fairs, park stages, hotels, parties, and so on.

And no, those spaces weren't filled with artists (thankfully). We were the artists; the spaces were filled with the paying audience for which we performed.

Under no circumstances could anyone expect the sounds guy to just make shit work. Nor have whims.

And we've been told "no" a-plenty, because that's the real world. Sometimes you don't get to have a real sound check before going live, and you deal with it.

As a co-organizer: I can recall one person who behaved the way you describe (being clueless about gear and expecting someone else to make it work). I've seen them play in another venue, and — surprise! — their shit didn't work there either. They were a crappy musician, and a bad person. And the sound people at the other venue didn't bend over backwards for that person because why would they.

So, I don't know what artists and what spaces you work with, but the dynamic you describe isn't healthy, isn't the norm, and isn't necessary.

Most importantly: it's not a software issue for Claude to solve.

> If uttering a sentence like this is a "theoretical" solution for you, I don't know what to tell you, except that you're not going to have a good time in any job until you learn the practicality of saying "no" the hard way.

but no one wants to say no here. the thing is going to happen one way or another, if only because everyone involved is passionate about making sure artists can reach their dreams. if we can't do this, we just close shop.

Have you considered that you can help the artists reach their dreams better if you make sure they check in with you about their gear before they haul it in out of the blue?

In no way does doing that inhibit their art making.

All it does is helps you help them.

To put it another way: any reason they're not doing that?

Other than "nobody bothered to think about it, and the tech guy will make it work anyway".

“The goal of software engineering is not to write code faster”

Writing proper code including tests and refactorings takes substantial time.

It is definitely worth it to do this faster, if only to get faster feedback to go back to the first phase; requirements and analysis.

I have experienced this myself, using CC it took me a few hours less to realise i was on the wrong track.

Requirements are filters for the set of implementations. The only feedback is the count and the nature of the results. And what you usually do is to either abandoning it or restricting it further. Because the source of the requirements is the business domain which exist outside the technical domain.

Selecting one of the implementation over the other is design, aka making decisions. Sometimes you have to prototype it out to where which parameters is the best. And sometimes a decision can revert an earlier one and you have to investigate the impact radius of that change.

But coding is straightforward translation. The illusion of going faster is that we forego making decisions. Instead we're hoping that the agent makes the correct ones based on some general direction, forgetting than an inch deviation can easily turn into a mile error. The hopeful things would have been an iteration, adding the correct decisions and highlighting the bad ones to avoid. But no one have that kind of patience. And those that use LLMs often finish with a "LGTM" patch.

The normal engineering is to attain a critical mass of decisions and turns that immediately to formal notation which is unambiguous. Then we validate with testing if that abrupt transformation was done properly. But all the decisions were made with proper information.