It's hilarious to me to see the same kind of engineer, who throughout my career have constantly bitched and moaned about team meetings, agile ceremonies, issue trackers, backlogs, slack, emails, design reviews, and anything else that disrupted the hours of coding "flow state" they claimed as their most essential and sacred activity to be protected at all costs, suddenly, and with no hint of shame, start preaching about about the vital importance of collaborative activities and the apparent inconsequence of code and coding, the moment a machine was able to do the latter faster than them. I mean, they're not even wrong, but the nakedly hypocritical attitude of people who, until a year ago, were the most antisocial and least collaborative members of any team they were on is still extraordinary.

Are you referring to the author specifically? Or a specific hypocritical person you know? If you're making a general statement about groups of online people you might be falling for the group attribution error[1], where the characteristics of an individual are assumed to be reflective of the whole group.

In any case, two things can be simultaneously true:

1. Writing code is not the bottleneck, as in we can develop features faster than they can be deployed. 2. It's annoying and disruptive to be interrupted when doing work that requires deep focus.

[1] https://en.wikipedia.org/wiki/Group_attribution_error

I think it's obvious that they're not referring to the author or a specific person at all. They're talking about how the zeitgeist has changed. Look at Hacker News archives 3 or more years ago and it would be really hard to find anyone arguing that coding speed is not a bottleneck or that engineers need to spend more time in collaboration. You would find a lot of arguments that leaving engineers alone to code is the best thing a business can do and constant lambasting of meetings, documents, approvals, and other collaborative activities.

I think there are small pieces of truth on both sides of the argument, but I find the sudden change to claiming that coding speed doesn't matter to feel half-baked. Coding speed is part of building a product. Speeding it up does provide benefit. There's a lot of denial about this, but I think the denial is rooted in emotion more than logic right now.

I don't think that this is very hypocritical on the part of the developer holding such views. Typing code has never been the bottleneck, building the mental model has. You need the mental model so you know how the domain and the actual model will interact, which is needed for pre-empting what tests you need, what QA you need to do, etc etc. and the limitations of the system. You can demo this out with a specification but all specifications eventually meet the domain head on, and often with catastrophic consequences, and you still need to do this sort of work anyway when writing the specification.

Fundamentally, LLM do not construct a consistent mental model of the codebase (this can be seen if you, uh, read LLM code,), and this is Bad for a lot of reasons. It's bad for long-term maintainability, it's bad for modelling this code accurately and it's behaviour as a system, it's bad for testing and verifying it, etc. Pretty much all of the tasks around program design require you to have that mental model.

You can absolutely get an LLM to show you a mental model of the code, but there is absolutely nothing that can 100% guarantee you that that's the thing it's using. Proof of this is to look at how they summarise documents, to look at how inaccurate a lot of documentation they generate is, and to look at how inaccurate a lot of their code summaries are. Those would be accurate if the LLM was forming a mental model while it worked. It's a program to statistically generate plausible text, the fact that we got the program to do more than that in the first place is very interesting and can imply a lot of things, but at the end of the day, whatever you ask for it, it will generate text. There is absolutely no guarantee around accuracy of that text and there effectively can never be.

I was an LLM naysayer for a long time. During that time I would have agreed with you. Recent experiences have changed my mind. The accuracy I get from models does not suffer from the problems you describe, and many of the issues you're describing are also true, in different ways, of human beings. There's never any guarantee that any of the text you or I produce will be accurate, or that our summary of it will be accurate, but if you ask us to generate text, we will. It recalls that funny meme: "Your job application says you're fast at math. What's 513 * 487?" "39,414." "That's not even close." "But it is fast."

One of the core problems we have in software engineering is the longstanding philosophical problem around creation of cohesive, consistent, objective mental models of inherently subjective concepts like identifying a person, place, etc. Look at the endless lists of falsehoods programmers (tend to) believe about any topic.

You’re right that LLMs specifically have no guarantees about accuracy nor veracity of the text they generate but I posit that that’s the same with people, especially when filtered through the socialization process. The difference is in the kind of errors machines make compared to ones that humans make.

It’s frustrating we’re using anthropomorphic concepts like hallucinations when describing LLM behaviors when the fundamental units of computation and thus failures of computation are so different at every level.

> but I posit that that’s the same with people,

> The difference is in the kind of errors machines make compared to ones that humans make.

There's another difference, and that is that other humans can learn and study that mental model (which is why "readable code" is a goal — the code is a physical manifestation of the model that you, the programmer, has to learn), and then the model can be tweaked and taught back to the original programmer, who can then think of that tweak in the future. Programming is inherently (in most cases) a collaborative art, because you're working with people to collectively develop a mental model and refine it, smoothing it down until (as Christopher Alexander said) there are no misfits between the model and the domain.

Needing focus to think is not the same as needing focus to write code..

It can take a whole day to find 10 good lines to write.

> It can take a whole day to find 10 good lines to write.

So we've come full circle to code writing speed being a factor again? :)

In all seriousness, this just feels like a never-ending list of attempts to try to resist any notion that LLMs might accelerate software development, however small the increment. The original article was arguing that organizational and collaboration was the bottleneck and that taking a whole day to think about the code was not.

And sometimes an LLM can find those 10 lines in 10 minutes. Or it can find a 100 and you cut them down to 10 in two hours total. Yes I've seen this in practice. The amount of code an LLM can tirelessly ingest is super human.

Twenty minutes ago Claude digested about a dozen pipeline definitions, a sequence of build files and targets, read the scripts they use, found the variable that I could reuse for my purposes, and made the appropriate change in the right (looking) place, so that I'd be able to achieve my goals.

I could not have done this nearly as quickly. On the other hand, I gave it clear, precise instructions.

Most of the time it can’t it can write 1000s, but its not good in finding the best 10s.

Speeding it up provides benefit if speed was the bottleneck to begin with. As the author notes or hints at, faster code output leads to more features being delivered, more room for experimentation, etc. But that's not necessarily productivity, if the features offer no value, if the experiments end up on a shelf, if the maintenance burden and context becomes bigger than the organization can handle (even LLM-assisted).

I've done a lot of "rebuild" / "second system" projects and the recurring theme is that the new version does less than the original. I don't think that's entirely down to the reality of second systems, I think that's in part because software grows over time but developers / managers rarely remove functionality. A full rebuild allows product owners (usually different from the ones of the original software) to consider whether something is actually needed.

Maybe some have changed their views because circumstances radically changed?

You wouldn't find anyone saying typing speed is a problem, they wanted more time for thinking.

Or just goomba fallacy

til https://en.wiktionary.org/wiki/Goomba_fallacy

I learned here like a week ago so I'm here to evangelize.

This was a perfect example.

The collective smarts on the Internet can't come up with a better name that might help our brains tag the concept?

Although at least it has some cross-cultural references. Why is naming so hard.

Memes help things to become popular. I guess the question would be how popular would it have been without the meme name? We'll never know.

Weirdly, the meme wasn't a goomba originally. The goomba edit just got way more popular?

Or the alternative explanation: there simply is no better name for it

[deleted]

That’s kind of just strawman with an origin story isn’t it?

No because the goomba is the average of two real opinions, and the strawman is a distortion/reduction of any opinion such that its easy to argue against.

More like a superposition of two opinions.

Schrodinger's Goomba?

Ah, ok, so two real opinions made into a distortion. Right, I see how very dissimilar to an origin story of a strawman that is…

If I only had a brain...

On some level, yes, but having words to describe sub-sets can be useful too.

A "human" is just a "featherless biped", after all?

I think the Goomba Fallacy captures something helpful to me- it's helpful to know the origin of a straw man if you want to un-stuff one.

I know this is off topic but I cannot resist. It's very funny to read a comment about un-stuffing a straw man written by "scarecrowbob"

Gave me a good laugh, thank you. :)

I think the Goomba is distinct. Strawman is disingenuously representing an argument, Goomba is assuming contradictions are coming from the same person, presumably b/c it's coming to the Goomba through the same app.

> Goomba is assuming contradictions are coming from the same person, presumably b/c it's coming to the Goomba through the same app.

Its because it comes from the same political faction. In general people are open about A when A seems palatable, and openly B when B seems palatable, but they almost never admit to do that when its obviously wrong to do so.

That is the rational part of the fallacy, even if these are different sets of people you can still tell they are biased since they never appear in the threads where its obvious they are in the wrong.

For example, lets say in a thread where a white cop shoots a black guy you find a lot of republicans say "this is just statistics, nothing to see here". Then in another thread where a black cop shoots a white guy republicans pour in and argue this must be racism and we should investigate! Maybe it isn't the same set of people, but its still a strong sign of problematic bias that they only choose to speak up in those particular threads and not the others.

Every political side everywhere does this, and that is why people started calling that out.

This is just the fallacy. Political groups are coalitions not single monoliths.

[deleted]

Is it true that they don't appear in the threads where you feel it's obvious they're in the wrong? Or do they just get upvoted less in those threads so you don't see it when they do appear?

In general, hypocrisy is a pretty weak argument. It's an annoying personality trait, but consistency is a thing humans often fail at, and humans failing at holding consistent opinions is a failure of those humans, not the claims they're making. It's not quite as weak as the more non-sequitur kind of ad-hominem attack, because it does at least pertain to the argument being made, and kind of resembles a logical contradiction if you squint, but it seldom does a good job addressing the merits of the argument, rather than the arguer. It's a successful political tactic for the same reason ad hominem arguments in general are, of course, especially in the context of representative forms of government, where the person's character or competence is relevant when they're running for an office. Much less so in contexts where the merits of a position are being debated in abstract.

I think it's very silly to make the argument that "groupwise hypocrisy" is not a fallacy in such a conversation. In politics, the reality is that people have to form coalitions with people with whom they don't agree on everything, and non-political groupings are even more non-sensical, often holding people responsible for the opinions of other people who happen to share things like inborn characteristics. It's especially ridiculous to explain this with this idea that people are engaging in some kind of elaborate coordination to argue with you on the internet. Yes, some people, and indeed political parties, engage in that kind of behavior, and if you think you're arguing with something like a botnet, there are larger considerations to make about what you gain as an individual by trying to engage with such a machine at all. If I believe I'm arguing about the merits of an idea with an actual person, and I find myself reaching for something like "your group is collectively hypocritical on this issue" to make my argument, this is cause to reflect on whether I actually have any real arguments for my position, as that one is... well, essentially meaningless

I think you're trying to invoke what's commonly called a "motte-and-bailey" argument, where people argue for a maximally-defensible position when faced with serious criticism, but act as though they're proving a much less defensible version of their argument, often including a nebula of related ideas, in other contexts. This is something individuals and coordinated factions absolutely do, but again doesn't really support treating any grouping you want to draw of some kind of collective hypocrisy. Even assuming we care about hypocrisy, it seems like this kind of reasoning about nebulous groups that don't explicitly coordinate would allow making that argument about any position in any context, depending on how you draw the boundaries of the group that day. It's well-understood that you can go on the internet and find someone who believes just about any crazy thing you can think of, or find someone who makes the argument for any position poorly.

Are you a very smart writer or are you using smart tools, I'm not sure?

Wouldn't know if I'm a smart writer, but I see little value in writing with a model if that's what you're asking. Language models are good for searching, getting alright at structured outputs like code, and trash at meaningfully expressing my thoughts in prose. Frankly, it concerns me that people think vomiting their thoughts onto the internet could possibly benefit from computational assistance

>Frankly, it concerns me that people think vomiting their thoughts onto the internet could possibly benefit from computational assistance

it concerns you because you have a good authority over your spoken language, and like most people with those skills I presume the language flows easily from you.

that ability isn't guaranteed, for a lot of people expression is tough, and those people felt equally alienated when confronted with an essay of word salad about why their opinion is wrong.

An LLM is a tool. In the 90s I would read columns and editorials about the disgusting faux pas of replying to a wedding invitation via such a cheap trendy medium like internet e-mail , now you receive death certificates that way.

It's not all bad, simpletons can use LLMs to have the critiquing essays turned into 5 word ELI5 statements that they can become enraged over once all the nuance is stripped. That's fun!

Sure, it's a tool that I think that's not a particularly compelling use of. Like I can at least see an endpoint of slop code where the right guardrails and model improvements create a means by which people can ask their computers to do things in natural language, and semantic search is genuinely a novel and powerful capability. Maybe we even get other nice translation protocols to structured forms of language. But in a context where the premise is that we're trying to communicate with other humans, using a model that generates plausible prose is a mechanism that obfuscates rather than clarifies. I don't think it's fit to purpose for that thing any more than a hammer makes a good screwdriver. If it helps you to bounce your ideas off an LLM, by all means do so, but this will mostly just serve to homogenize the writing of everyone doing that. Possibly of value to some people, but not to me

It's almost as if factions are made up of different people with different opinions in a loose alliance.

But nah, clearly they're all goombas.

This is exactly it. You see it on HN all the time. You will debate someone. Then deep in thread, a second person appears with a gotcha. when you point out that the gotcha doesn't fit in with the prior argument, they point out that was a separate person. They knew damn well what they're doing with their little conniving deflection fuck-fuck game. They're acting for the same surrogate argument. The Goomba is real and the people playing the game are just too cowardly to be two-faced themselves so they act two-faced through a surrogate and deflect to the surrogate when it's pointed out.

You, uh, you alright there my dude?

Sometimes there are two groups of people who have different opinions that don't interact, but given the extent they take up the same platform and don't seem to see each other, I'm not sure it is really a fallacy even then.

First, it becomes possible for people who have a double standard to hide behind this. One can try to track an individual's stance, but a lot of internet etiquette seems to be based on the idea of not looking up a person's history to see if they are being contradictory. (And while being hypocritical doesn't necessarily invalidate an argument, it can help to indicate when someone is arguing it bad faith and it is a waste of time as someone will simply use different axioms to reach otherwise contradictory conclusions when they favor each.)

Second, I think there is the ability to call out a group as being hypocritical, even when there are two sub groups. That one group supports A generally and another group supports B generally (and assuming that A + B is hypocritical), but they stop supporting it when it would bring them into conflict indicates a level of acceptance by the change in behavior. Each individual is too hard to measure this (maybe they are tired today, or distracted, or didn't even see it), but as a group, we can still measure the overall direction.

So if a website ends up being very vocally in support of two contradictory positions, I think there is still a valid argument to be made about contradicting opinions, and the goomba fallacy is itself a fallacy.

Edit: Removed example, might be too distracting to bring up an otherwise off topic issue as an example.

I believe in A, I don't take a strong position on B, I am in coalition with people who believe in B and don't take a strong position on A, we both believe in C, D, E, and F, which some other people believe in with differing weights. Browbeating me about position B (or, the most useless kind of Internet banter, complaining about me and my hypocritical position on A+B to your friends who oppose both in a likewise contradictory way, in some venue I've never heard of) is not about making people reevaluate positions, it's about negative factionalism. The only reason it might not fit the familiar categorization of "fallacy" is that you would never use it in rational debate, either in arguing with another person or in reasoning out your own position.

>I believe in A, I don't take a strong position on B

But if A and B are opposed, then there is a question of why a strong position on A can be allowed with a weak position on B, if the reason for the strong position on A would also indicate a strong position against B.

The underlying argument being implied (but rarely ever directly stated) is to question if your reason for the strong position on A is really the reason you state, or if that is just the reason that sounds good but not the real reason for your belief.

In effect, that you don't apply the stated reason to B despite it fitting is the counter argument to why it doesn't actually support A.

If there is an inconsistency in arguments being applied, any formal discussion falls apart and people effectively take up positions simply because they like them, contradictions irrelevant. This generally isn't a good outcome for public discourse.

That's just "why do you hate waffles" with more words.

You're making a strawman

If so, I've seen that strawman living and breathing, and saying the first thing before, and the other thing now, several times.

[flagged]

[dead]

>Writing code is not the bottleneck, as in we can develop features faster than they can be deployed.

That's an organizational issue due to over-regulation, bureucracy, too many stakeholders each with their own irrelevant opinion, etc.

Startups or FOSS projects without the above absolutely can't "develop features faster than they can be deployed", and usually have a huge backlog of bugs and features they'd like to have, but never got around to.

If you don't have stakeholders I contend you probably don't have a product, or you're building the bare minimum MVP which upon becoming a product will be woefully inadequate, generating the aforementioned bottleneck.

I said "too many". And mostly meant people with a say, as in "design by executive board/committee" as opposite to someone or a small team with a vision. Not about not having users.

In any case, the point still stands: most companies absolutely can't code "faster than they can ship" and for that have huge backlogs of things they'd want to add or bugs to fix.

> 2. It's annoying and disruptive to be interrupted when doing work that requires deep focus.

Steering a LLM also requires deep focus. Unless you want to end up on accidentally quadratic or have a CVE named after your project.

How can it? You prompt it, then wait minutes+ for it to come back. It's the opposite of flow state.

I get much better results the more thought I put into crafting my prompt. including using llms to help create that prompt. There's definitely a declining rate of return on that time, but thinking about the problem and carefully describing the context can take fairly deep thought. I do think it's in shorter bursts than when doing all of the work, but I get that same feeling of 'bah, where was I?' if I get interrupted while creating the prompt for a more complex feature. On the other hand, I spend a lot less time in flow state while debugging - it's way easier to describe a bug to an llm (often can just paste in the exception or link to error log).

It isn't exactly flow - but at when the prompt comes back it forces me to think. Flow is about getting into a state where I'm thinking so this is surprisingly similar. The prompt is helpful because it gives me a place to focus: does the proposed changes make sense (this is much smaller than the entire code base), and given this is done: do I know anything else that was missed.

So you move from a maker’s schedule to a manager’s schedule. Interrupting you does not have any meaningful consequence on your ability to work because at any given moment you are not really working and when your interruption is over the prompt is still just waiting there for you.

You don't wait. You run multiple independent incremental feature in parallel, while also running a code review, which will create the next set of tasks while you or the llm think up the feature to add after.

Context switching back and forth between a dozen different things is sort of the opposite of flow state, IMO.

It's not "flow state" but working on three features in parallel requires focus that's equally as fragile, at least if you want to follow the output of the LLMs and steer it if it makes mistakes.

Flow comes after when you verify what it did...

What I do is, I'm always responding to output N while the AI is working on prompt N+1. So we are both always responding to each other's question/answer before last.

https://www.youtube.com/watch?v=CCMiyXM-1_U

https://shreevatsa.wordpress.com/2010/02/07/mastermind/

I'm using my ADHD hyper focus skills while flagging issues that the LLM is doing.

Reading 10x more code than before puts me straight into the zone. (In a language that I find interesting: Elixir)

My own process is improving so much that I had only one bug last week that was fixed immediately after the error tracker caught.

But yeah I feel more tired sooner. So it's oneto three hyper focus zones per day, just like before.

The difference is that I enter faster, and now I'm not afraid of leaving the task and resuming later, since I can just ask for a summary of what we did so far.

I'm using two different models from two different providers to cross check the work tho.

I'm very good with bad smells I guess, after years supervising less experienced developers since early days in my long career.

Many people today just trust whatever shit comes out. Some even brag about it, even famous devs like Yegge.

And requiring review of the result is not a "flow state". Flow states means continuous and uninterrupted focus while actively performing, LLMs block and return with new code or questions for minutes on end. That's the opposite of flow, it's the "let's take a break now, see you in a few minutes" for every interaction.

> even famous devs

Are they devs or performance artists by now?

This is a false dichotomy. Software development has always been about keeping people in agreement, from the customer to the coder, and all the people in between (the fewer the better).

Meetings that increases sync between customer and coder are few and precious.

In large organisations ceremonial meetings proliferate for the wrong reasons. People like to insert themselves in the process between customer and coder to appear relevant.

I personally am fond of meetings with customers, end-users, UX designers, and actual stakeholders.

I loathe meetings with corporate busybodies who consume bandwidth for corporate clout.

No, I don’t need another middle manager to interface themselves between me and my users.

Yes! So much of professional software development is about assisting the nominal job of management—planning and budgeting—rather than users or even business fundamentals.

Why am I awake at 1:00am, ruining my brain and body, trying to get this feature finished before the end of the week instead of three days later? Ah yes, so that we meet our quarterly OKR, and the next quarter's plan that the EM and PM negotiated without me or our customers isn't disrupted and doesn't need adjustment. That would invite reprimand from the director, and the extra work would be terrible for them, I understand.

I'm reminded of this recent thread in which Heroku left the devs in charge and suddenly features that the author had requested for years got implemented: https://news.ycombinator.com/item?id=47669749

For that matter, here's a thread from a few days ago recommending the practice of scheduling status meetings for the purpose of pressuring the attendees to work on your project in addition to their other work: https://news.ycombinator.com/item?id=47906942

What hermit wouldn't love meetings that simultaneously insist that you do more while taking away time to do it, all to avoid adjusting a pollyanna quarterly plan and budget!

Just on a personal note as someone who worked in the game dev industry for far too long and is still suffering for it... if

> Why am I awake at 1:00am, ruining my brain and body, trying to get this feature finished before the end of the week instead of three days later?

is actually you (or some other reader) please quit/find a new job ASAP even if it means a pay cut. You don't want to deal with back issues, heart issues, weight issues, digestion issues, blood sugar issues - none of that. Please respect your body and your limited time with us. A coworker of mine had a stroke at thirty - that is a life changing event with, honestly, no real paths to full recovery.

> Why am I awake at 1:00am, ruining my brain and body Stop. They don't deserve it. If you have to sacrifice yourself, do it for someone who deserves it.

Value your body, value your life. Your bosses see you as a piece of meat.

Well said.

This matches perfectly my experience in working in many companies, where in most of them meetings were useless, but in a few places meetings were very useful, depending on how the companies were organized and how the attendance to meetings was selected.

I have seen projects that had to be abandoned without bringing any money, despite being executed perfectly according to the specifications. The reason was that the specifications were wrong because the customers have not thought about describing some requirements and the developers could not ask about those, because of lack of direct communication, while the middle men had no idea about both things, about what the customers might require and about what the developers might need to know.

Not a false dichotomy. I agree with OP and I can say for certain that if you are one of the few developers that is "fond of meetings with customers" you are not the the type of person OP is talking about, and you are more rare than you think.

I am a former Dev turned PO/PM and now CEO, I can tell you many a developers are not fond of those meetings you are fond of and people like myself don't insert our selves where we don't belong, we simply join the meeting and have the vital conversation with the customers/stakeholders whos payments make payroll possible, while the developers refused to.

My team have always commented and liked that I "shielded" them from the none technical meetings and distilled customer needs in our kanban, without them having to go to the meeting. While I agree this isn't the "best way" to do things, I simply have never seen a Dev Team work as the way HN tries to make the role sound "Dev/Eng and the customer is the only thing needed". Would love for this to be the case!

Also for those who think I'm down talking the abilities of my team, we made a company together when we left a huge company we worked for, as Co owners and even now we use same setup is used :)

> I simply have never seen a Dev Team work as the way HN tries to make the role sound "Dev/Eng and the customer is the only thing needed". Would love for this to be the case!

I think a lot of HN truly believes that Software Developer is the only important role at their company. Software goes straight from the developer's brain, through his fingertips into the computer, and then on to the online store (run by nobody) for customers to buy. Engineering managers, program managers, product managers, marketers, MBAs, tech writers, QA, lawyers, process people, various admins and liaisons... they all exist to play pointless political games, have distracting meetings, and obstruct the One True Role. Design docs, planning, schedules, e-mails, JIRA, reviews, syncs, exec updates... all are useless parts of a scheme to torture the developer. It should just be "developers developing, and then money comes in from somewhere." This is an exaggeration, but you see these themes all over the comment section.

There's a reason why startups always begin with a software guy/gal and a sales guy/gal.

It all begins with a product and a sale. That's how you go from zero to one.

Then if you're lucky enough to become an organization and start to have organisational problems you hire HR, accountants, lawyers, and managers.

But there will always be a dichotomy between core and auxilliary roles.

A coder and a salesman can create something out of nothing. We create the garden and those who come after tend to it.

Tech companies who grow large and old enough to forget that product and sales are the bedrock on which everything else stands decay and die.

> I think a lot of HN truly believes that Software Developer is the only important role at their company.

I doubt that. A lot of HN might have believed that some 10 years ago, perhaps, but most of those people have either matured or been driven away by the shift in the discourse.

I was one of the people who used to believe that, but the years of experience have taught me several important lessons that changed my mind. That change in attitude came both from my own failures and from having the rare privilege to work with people who were actually good at those other roles you listed.

> This is an exaggeration, but you see these themes all over the comment section.

And you'll keep seeing those comments, just like you'll keep seeing the comments about how developers are hypocritical divas. Those comments come from people's bad experiences.

Workplace political games are a thing. Unnecessary meetings and documents are a thing. Problematic, unprofessional developers are a thing.

Very small startups with only people selling the product or building the product can often deliver functionality much faster than corporations with all those other roles.

> you are more rare than you think.

Truth. I'm that person and didn't appreciate how rare I was until I became an EM and learned that most of my team would actively avoid conversations with the customer. Even though I have no way to quantify it, I'm sure it's benefitted my career.

Are those people in contact with the customer able to make decisions regarding the roadmap or feature design? It’s a miserable position to be in front of unhappy customers while having no power to solve anything (which is why I tend to be polite with customer support).

100%, majority of the posts here are based in fantasy of how the world should work. They're also highlighting why most Devs cant deal with customers effectively. Customers aren't showing up with a clear spec and handing it off while middle managers butt in and ruin the whole thing.

Though I agree, most managers are BSing way too much, but the reality is that most Devs cannot navigate conversations like they think they can, and like you said, nor do they want to. And that is exactly what the managers do.

I live by these words: “if the client could enunciate a perfect spec, they would code it themselves”. Software development is about helping people get what they want out of a computer. Not what they can specify, that’s asking way too much.

There's an in-between point that I think is better than either, but it can be more difficult to find the right balance: Direct contact with internal stakeholders (with the manager still somewhat involved to still have a good overall view and help prioritize / push back / act as a general buffer), while shielded from customers. That's the place I've always preferred.

I don't know how rare it is. I have always found it harder to write software when I don't know the people who will use it or get to see what they feel about it. It's part of the feedback loop.

When I get good feedback it's like winning a prize and when it's bad it lets me see where we should be spending our time rather than were we perhaps thought we should.

[deleted]

The solution is to work at small companies/startups.

That comes with real tradeoffs, but I've never regretted that path.

Both things can be true at the same time:

1-There is significant collaboration and action required beyond just coding to successfully create+implement software systems

2-When performing the coding step, minimal interruptions are vastly more efficient than working in little chunks of time

> nakedly hypocritical

How is it hypocritical?

If in the old world, the very important process that used up a lot of time and benefited greatly from no distractions was the actual writing of code then interruptions for various ceremonies with limited value other than generating progress reports for some higher ups would feel like a waste of time.

That same person in the 'new' world where writing code is very fast but understanding the business and technical requirements that need to be accomplished is the difficult part would then prioritize those ceremonies more and be ok with distractions while their AI agents are writing the code for them.

It's not hypocritical to change your opinion when the facts of the situation have changed.

Well it is hypocritical. Hypocrisy is an action or statement that is contrary to a stated value or principle. Just because your values or principles changed doesn’t make you a suddenly no longer a hypocrite, it just admits that your former opinions are no longer tenable.

I’ve noticed this push to try to clothe hypocrisy in made up virtues like intellectual curiosity and mental plasticity a lot lately. All I can think is that it’s some kind of ego satisfaction play people make when their place in the world is threatened.

Old value: Producing high value software.

How to do it? Focus on writing code.

New value: Producing high value software.

How to do it? Focus on writing specs for code / identifying needs.

I expect there are a lot of hypocrites in the mix, scared for their job. But this isn't a fundamentally hypocritical position - agents are changing the game for how software gets produced and the things that were important as recently as a year ago might reasonably be said to be irrelevant now. Ironically, we might yet see a great software engineer who has never written a program in their entire life. The odds are slim but it is possible now.

This is shifting the principle/value discussion up to a level where it's meaningless. Let's use a different example.

Old value: Returning value to shareholders.

How to do it? Treat your employees like family and don't be evil.

New value: Returning value to shareholders.

How to do it? Treat your employees like human resources and get away with what you can get away with.

Is this hypocritical? Most people would say yes, but in your framing it's not because we've backed up to the least specific articulation of an underlying principle. It's a species of the motte and bailey fallacy.

Agents may be changing the game for how software gets produced, but all it's really done is switch software developers from being managed to being managers. And software developers trying to square their historic value/principle that management tasks are useless, easy, and ceremonial (to borrow GP's word) tasks that should take a back seat to ~flow state coding~ with their new view that management is an integral, difficult, and requisite part of writing code reeks of hypocrisy.

> Is this hypocritical? Most people would say yes, but in your framing it's not because we've backed up to the least specific articulation of an underlying principle. It's a species of the motte and bailey fallacy.

I'm happy to defend that one too, for the reasons you outline. It is completely normal behaviour from a company, everyone understands it [0] and most managers I've worked with would be happy to talk about it openly. It isn't hypocritical. It'd be hypocritical to pretend that there was some sort of long-term commitment in an employment relation, but that isn't implied in your example.

Changing your behaviour when the situation changes isn't hypocrisy. That is just being aware of the conditions around you. Hypocrisy is pretending your behaviour is principles based, then clearly not following the principles. To show hypocrisy, you have to do two things (1) show people claimed to be following a principles and (2) show that they are not following it. In your scenario, you haven't identified a principle that people are being inconsistent with.

I note you threw in a "don't be evil", so maybe you're thinking of Google. Google is hypocritical, because it claimed to be acting on principles ("don't be evil") and then didn't follow them when it became inconvenient. But if it'd just been honest up front that it was a normal business and would act responsibly to maximise profit it could have undertaken exactly the same actions and not been hypocritical. It was the professing of principle in advance that made the hypocrisy, not the action. Claiming to "not be evil" is unusual for companies, because while they are immoral they usually only lie when it is detectable that it is to their benefit and they're usually just cynical, not hypocritical.

[0] "should" understand it, I suppose. One born every minute.

Sorry, did people not identify needs when developing "high value software" before? That doesn't seem true to me at all. I took a "Needs Assessment" course in my class of '09 undergrad...

I've noticed on hackernews in the past year, a certain type of comment. A deep suspicion to first call out a surface behavior, then psychoanalyze strangers with whatever the flavor of the month "deep observation" is.

You can't be a dick on this platform without fancy prose I guess.

Abduhl, the nature of the job has changed; before it was coding, now it is managing the AI coding. What was and remains valuable is delivering value. This principle has not changed.

If your job was only coding then you are the most replaceable of the bunch. Traditional software engineering is a broader domain that, as rightly pointed out, will require you to actually *sit and talk* with the worst communicators you'll meet in your life.

Looking at a slice of most folks' workday and calling it their whole job is in my opinion, incorrect.

> Just because your values or principles changed doesn’t make you a suddenly no longer a hypocrite

Uh yes it does?? What are you talking about.

https://www.google.com/search?q=hypocrisy

Bottom line is the people described as hypocritical in the comment have no principles, but rather feign passion in anything they think other people consider valuable. When devs thought coding skill was valuable, that's what they claimed to be passionate about, when the game changed and communication became key, they suddenly changed their passion. Either the timing is a coincidence, or they are hypocrites.

I don't think switching one's passion on a dime is a valid escape hatch from hypocrisy.

You're trying to turn flexibility and the ability to adapt to new circumstances into a vice.

You're wrong. It's a virtue.

Ceremonies and tickets aren't especially effective for actual collaboration. They're primarily tools for making work legible and controllable to management.

There is a reason (well, many reasons) that, if I'm working on a creative project with somebody outside a company, we would never think of reaching for Scrum ceremonies or Jira.

It is more than perfectly consistent to complain about that while valuing collaboration.

I require Jira for all my work to protect myself from three things, definitely not productivity:

1. µManagement asking "What have you even been doing?" Now they have a dashboard, and I have a nice record.

2. Protect me from people who wouldn't tell me problems existed, but would tell their managers they were blocked by those problems. Now, the understanding is that if the Jira doesn't exist, then the problem doesn't exist.

3. I use the "On Hold" state of an issue for a clear signal, for them and their managers that I add as watchers, that there will be no progress until whatever requirement is met (question answered, etc). It dramatically decreases response times, and means I don't have to nag them. Goes back to #2, where I can point out that they are blocking themselves.

All these things come into existence because people are so bad at collaborating, but really good at pointing fingers.

This is a good way of using a ticket tracker: bottom-up, where engineers, testers, and other stakeholders are empowered to create and manage tickets as a means of communicating about their work and what they are blocked on. It's part of the writing culture mentioned in TFA.

In some places, the ticket tracker works top-down: only the manager creates tickets, and the manager makes measurements about tickets closed, velocity, and so on to assess the productivity of their team.

I think the great divide on JIRA and JIRA-likes often comes down to which culture people have been exposed to.

Sounds like JIRA is a very important tool.

Nothing special about Jira, specifically. The clear record/state is what's important.

Tickets become the correct tool once the organization exceeds a certain size.

It might be easier to collaborate with one other person through email or text message history. Or even two or three people. But beyond a certain point having tickets to track all the conversations about a task becomes invaluable.

It's 100% denial/ego. I've been a contractor longer than I'd like and it's the exact same response I see when I join a new team. The team complains they have too much work and can't get anything done, so their manager pulls me in. Suddenly, they don't want to give anything up. I'm actually in the middle of this right now. The team "is swamped" yet somehow, they are able to argue that almost everything I can handle is best handled by them and they don't need help. Fine by me, I'll sit around and get paid. But it smells exactly the same. They don't want to admit that A - they are replaceable and their work isn't that unique and B - they are the bottleneck, not the process or workload.

> A - they are replaceable and their work isn't that unique and B - they are the bottleneck, not the process or workload.

The problem rather is: often good programmers have quite good ideas how these problems could be solved, but for "organizational politics" reasons they are not allowed to apply these solutions.

Thus:

Concerning (B): Because they are not allowed to apply their improvement ideas, they are the bottleneck. But being the bottleneck is not the root problem, but rather a consequence of not being allowed to improve things.

Concerning (A): It is indeed often the case that if you simply let someone else do the work, the code quality decreases a lot and in subtle ways. Good programmers are very sensitive (and sometimes vocal) with respect to that - in opposite to managers.

And I totally respect that, I get it, I really do. But it's really obvious when people are being territorial and any contractor will tell you this happens every time. I suspect that a lot of the times, I'm hired to "teach them a lesson" in that "Hey, velocity sucks and I'm hearing a lot of whining, so if you don't like doing it, this guy will" and people snap into shape.

Unless the team are seriously bad developers, many times, it’s the manager fault. As a hired consultant, you often benefit many freedom that team is lacking. As someone that has been hired as a consultant, one of those are meetings and not having to worry about office politics.

I love how everyone is blaming management and if they only listened to the programmer(s) everything would be fixed.

I’ve been on all sides of this coin, and there is plenty of blame, misunderstanding, and bad ideas to go around.

Additionally on A: the people who will be stuck maintaining this contribution for years and years have a different view of the pain.

Pushing a 90% solution through is a ‘win’ for the coder who is leaving, and hurts everyone on a continuing basis. It’s bad accounting, and lets the consultant look good for making the team perform worse (and look bad later).

And, IME, if that 90% solution needs a 100% rewrite after 40-80% burn in bugs and error chasing? What once was a bit behind is now way behind with staffing issues. Sunk costs don’t create extra budget.

Do It Right The First Time doesn’t always apply, only mostly always. Some people are insecure and territorial, yeah, but some know what their job is.

No matter what you do, entrenched engineers will make SURE they will be the only ones maintaining everything until their retirement, because they will make life impossible for everybody else until they leave.

Entrenched engineers don’t want to you to alleviate or god forbid share the pain. Pain is good for employment security. And if the ship goes down, they’ll make sure they’re the last one to get fired, because there’s nothing the entrenched engineer fears more than having to job hunt.

Well who are you? Why should they trust you to actually complete a task and not dump unfinished work on them when your contract is up?

The manager didn't do the work to figure out what a contractor should do before hiring one. Why would they expect that org to plan the exit if they didn't plan the entrance?

Behavior shouldn't be surprising, no?

I mean, they hire me for a reason, whatever that may be. I want to do a good job and carry out the task because I want to get hired again by them or whatever agency is pimping me out. I've seen a lot of shit and that's my value. Whether or not the team wants to help me succeed is their political thing. And that's not invisible to management either.

You're not looking at it very empathetically. You're disregarding the concerns I floated, you expect the team that feels underwater to now stop everything to reshuffle the work scheduling to fit in a wild card all while you're calling them bad and replaceable.

I mean it really sounds like you're not on their side at all. It's their job to help you succeed, apparently. From what you've said already, you don't care about the project either. You're happy to waste time and money. It sounds like they're right not to trust you.

If he was hired to do a job, its not on the team to "trust" him. Its to incorporate him as a resource. I'm sorry but speaking strictly from a productivity standpoint, we're not here to be empathetic, we're here to deliver value to the organization.

If I'm a manager of a team thats struggling and now also sabotaging additional resources, because they havent got the right warm and fuzzies, I'm going to be looking to have some difficult conversations. I'm also going to be very critical of anyone who floats a lack of "trust" as the blocker without some concrete evidence to justify it.

Whatever concerns they might have is not for the contractor to address. They are between them and their own management who deemed them unable to deliver sufficiently.

Well this is all highly hypothetical but my point is that there are valid reasons to not entrust a contractor, who is only around temporarily, with long standing features. Not because they are nefarious but because they, by definition, will not own the feature ultimately.

Resistance is also not the same as sabotage. My assumption is that everyone is acting in good faith from their own perspective. An immediate issue I see that the contractor was brought in because folks were looking at the calendar and not the tasks. Now the team is being pushed to carve out tasks. If shovel ready tasks are identified first, almost certainly, things go smoother. You're not context switching everyone. Its far less chaotic.

What you seem to not understand is empathy is going to move the team forward and deliver. Jumping to bad faith immediately is likely not the fastest way to a solution. If someone is struggling, its useful to understand why and address those problems. Its often not because they're bad.

That's not at all what I'm saying and I don't know where you're getting that from. I'm not trying to stop anyone. I'm trying to be an extra paddle. I'm happy to do nothing iff I try to help but get boxed out. I have no problem just riding in the boat and saying "hey, there's rocks up there" or "This seam looks leaky, maybe patch it". I'm not here to fight people or egos.

This sounds like my ideal job. How do you land such gigs?

Recruiters.

This seems to confuse cause and effect.

True, most engineers hate meetings because as your rightly point often there can be too many "types" of meetings - team meting, issue tracking, backlogs, design reviews, triage etc etc. Out of the 7-8 working hours, a senior engineer might be in meetings for 4-5 hrs. Then they bitch and moan that they are spending too much in meetings and not enough time coding. A reason for that is projects often have unclear or even changing requirements along with tight deadlines.

Sure today with AI, code can be produced faster than ever. But the requirements being unclear or always evolving hasn't really changed. Today many non-engineers assume that what they have in mind is straightforward and can be created by AI. That is not true. Unclear requirements lead to unclear results. Garbage in Garbage out. Getting the right input is still the most important part of software. That has not changed. That is the collaboration piece of software.

And sure within the software community there are folks who don't like to collaborate even on requirements, they are more than happy to follow someone's lead. They like their manager/architect to "shield" them and do these tasks for them. These silent warrior type engineers are going to be the most impacted due to AI coding. Because they have no visibility and even if they are 5 rated coders, there is always going to be "But AI can produce code. What else can you do if you wont even collaborate?"

So, it's not very cut and dry. Engineers come in all shapes and size.

The bitching was about meetings and ceremonies that took away the little time left to spend time asking more features to be implemented, or revisited before it could get completed.

No developer was ever unhappy to communicate. But when pointless communication occupies too many long hours, interrupting useful the progress of understanding what could and should be done (by coding, yes, experimenting, getting a grasp of the beast), then yes they became unsympathetic.

> No developer was ever unhappy to communicate

I've worked with engineers all over the spectrum in terms of their styles, beliefs, and preferences... and some of them are frankly not very interested in getting out of their comfort zone (like heads down, writing code and being alone), and optimizing for the group rather than themselves.

So yes, they are in fact unhappy to communicate (in a general sense), because of how tedious and uncomfortable communication often is.

I'm not saying it's irrational or immoral, or not driven by the types of past poor experiences you mention, but in my experience it's often pretty obviously suboptimal and highly frustrating to work with.

Some are inherently that way. Yes. Those don't thrive even within the engineer groups. Outliers don't make the rule. OP argues developers are hypocrites for demanding to be left alone when it suits them, or engaged when they feel they job is at stake.

If anything, genAI for coding is making engineers seek more engagement, that can't be a bad thing given the fracture between the business and product development.

> the same kind of engineer

Who?

There are millions of software engineers around the world. It's quite likely that they have a few different opinions and point of views!

https://hn.algolia.com/ - search for "actual work" This has long been a topic on HN.

But it is written there, and GP was quite specific:

>the same kind of engineer, who throughout my career have constantly bitched and moaned about team meetings, agile ceremonies, issue trackers, backlogs, slack, emails, design reviews, and anything else that disrupted the hours of coding "flow state" they claimed as their most essential and sacred activity

Seems pretty clear to me.

I doubt the GP has gone back through their career and checked on each person who thought there were too many meetings have now all made the switched they're being accused of, though.

Why does that matter?

Because a claim was made about a group of people.

Exactly. Does it matter if one member of that class does not follow the trend?

No, but no-one said that. It's far more likely that this "group" of people doesn't even exist, and it's yet another case of treating "strangers on the internet" or "other people" as one person and being upset when that "person" is being inconsistent.

robertlagrant 2026-05-06T13:44:40 1778075080

"I doubt the GP has gone back through their career and checked on each person who thought there were too many meetings have now all made the switched they're being accused of, though."

Anyway, I'm stopping this now as it's not a constructive conversation anymore. Let's agree to disagree.

[deleted]
[deleted]

What type of engineer, who until a year ago - because of AI apparently - is suddenly no longer concerned about code? Personally I'm just as concerned about code because AI has not changed the fact that it still takes a really long time to develop stable, secure software (ie- if you're making software to do ambitious things). Nothing about modern AI tools eliminate the need to get in the zone; using AI to amplify one's engineering skills let's us solve the next problem faster - but in software there are unlimited problems.

Just because I hate those ' team meetings, agile ceremonies, issue trackers, backlogs, slack, emails, design reviews, and anything else that disrupted the hours of coding "flow state"' - doesn't mean I don't understand how important they were and are. I moaned them before, and will continue to - but they were always important. I have learned the hard way more than once what happens when you sit at a keyboard and write code (one time I lost my job because the code I was writing was so far out from what the company needed, the next I realized what was happening in time to leave first - only after I was gone did they realize that what I was doing really was important and they made me a good offer to come back)

The activity that needed and still needs to be protected is problem solving:

- Understanding the problem at hand

- Putting all the pieces together so that they solve the right problem the right way

- Making sure that the solution facilitate future extension and doesn't lead to a ball of mud two months from now... Unless stakeholders want it to be quick and dirty, then making sure they understand the costs/risks

- Planning execution a way that is incremental and testable so that we can build confidence that the system is doing what we expect of it

- if you are in a team, figuring out common dependencies so that those can be done first and unblock parallelism on execution.

Once all that is done and documented, writing the code was easy and fast.

What would sometimes happen is that some unexpected detail or dependency would be discovered as part of the writing of the code and then you are back at the beginning, figuring out how to make everything fit together.

I find that the main confusion comes from people not realizing that those are two different activities and instead calling it all "writing code".

> Understanding the problem at hand

I think one of the things that AI is uncovering is how bad many programmers were/are at this. Sure , they may understand by ref vs. by val, but they can’t or won’t take the time to really understand what needs to be built.

I’ve said for a long time that coding is the easy part, it’s understanding what needs to be built that’s hard. AI has now come along and born that out.

I'm not in the group you described so I don't want to speak for them, but I can empathize because there are some things that are meaningfully different with AI:

1. Increased velocity makes rituals like daily standup and other comms relatively infrequent compared to how they used to be, so there are fewer touch points now. For example a daily standup might have been occuring several times while someone worked on one feature ticket, but now they can bang out multiple features a day plus some bug fixes, but still only have the daily touch point.

2. AI written code needs to be thought through and planned a lot more than human written, because the machine doesn't go through the same discovery/writing process that a human goes through. It looks superficially similar, but is subtlely and importantly different.

3. Without solid planning and requirements definitions, it's a lot easier for AI to go off the rails and do something you don't ultimately want. That wasn't true for humans writing code because they have a lot of project context knowledge that helps a great deal. AI obviously doesn't have this.

4. With the intense speed of devs now thanks to AI, it's far easier to step on each other and end up with at best merge conflicts, at worst significant deviation in solutions, and often major refactors/overhauls that can make the codebase feel foreign and confusing to devs. Most people have had the experience of stepping away from a project and coming back after a refactor had been done, and realizing that they don't know where basic things even are anymore. It can be unsettling and add a lot of friction.

5. AI can be pretty good (and very fast) at producing documentation and plans, so the "cost" of planning before coding is a lot lower now. That changes the equation of "what is the most important thing to spend my time on to iterate quickly".

I posit that getting into a coding flow state isn't just about producing code. It morphs and develops the problem space in the engineer's head. It helps them realize where the spec is lacking. It familiarizes them with the capabilities of the codebase so they can speak confidently about what future changes will entail.

I understand your sentiment, and there’s absolutely some truth to it, but I don’t think the path forward is throwing more management resources (or layers) at the problem. And I don’t think the management technology industry is the answer either.

I think the solution will be small (1-5 person) teams where product and engineering sit next to each other and have clear authorization to launch directly to prod at their discretion. The gripes about performative work tracking mechanisms and the realization that non-tech considerations are now the bottle neck are not mutually incompatible.

No Thats not the same persons.Thats as simple as that. Those who used to be hyperfocused in the zone/flow so to get integrated designed consistent opiniated KISS Small-Is-Beautifull antipattern-free reusable code featuring the best abstraction layering with just the right amount of external dependencies and cognitive load ... these people are suffering a lot seeing the skills they cherished their whole life being devalued in less than a year. This opinion is a project manager's one. He's probably right. Both sides are right.

You’re describing a multitude of different people with a variety of viewpoints. It’s also smart to change your mind when the environment changes; code being easy to write is a decisive shift.

Code may be easy to write once you know what the code needs to do.

Just because concurrent design, QA, research etc push out the Gantt chart doesn't mean your meeting isn't useless.

In fact, deep pipelines don't even need to have bottlenecks to take time. Even still any given meeting could still be a waste of time depending on the meeting.

Just look at what they write. There is a correlation between the Agentic Multitasker and the type of person who wanted results and didn’t care about the coding in itself. That’s what they themselves keep writing.

They are not the same people.

> It's hilarious ... their most essential and sacred activity ... suddenly, and with no hint of shame ... the nakedly hypocritical attitude ... still extraordinary

Calm down the hyperventilating for two seconds, look around, and you’ll immediately see examples of the same group of people who now biTch aNd mOaN about how agentic coding is killing what they love about programming.

It’s interesting to see people either gloat or get incensed at the nerds who like computers in the context of these developments.

But the flow state wasn't just about typing code. The flow state was about understanding the problem, about loading it into your head so that you could "walk around in it" mentally, so that you could figure out that what really needed to happen was that module X needed to add a getter to value foo, that module Y needed to get foo and make a change based on the value, and that the key to making this all work was to add a way for Y to access X that fit within the existing architecture. That took focus, far more than implementing the pieces did.

[dead]

The people I know like this are people I consider to be "advanced juniors". They are held back by their inability to work with other parts of the business and understand customer needs. In order to be successful they need to be spoon fed requirements. What I've seen from the limited sample in my orbit is that they've actually doubled down on AI and are creating little private worlds of agents and further isolating themselves from the business, not talking about how great collaboration and such are.

Are my standards too high to expect juniors to also be able to work with other parts of the business and ask for additional requirements if needed?

No. "Plays well with others" is part of being a functional member of any engineering team that I'm on.

Meanwhile people who bitch and moan about “other engineers” all the time haven’t changed at all. How refreshing.

Is it hypocrisy or learning? A more charitable take - it wasn't too many years ago that I also decried the need for all the collaboration. But as I advanced in my career, that worldview just didn't hold up. In this case, maybe the introduction of agentic coding has accelerated that learning because now 'regular' engineers are forced to take on coordination roles.

[With that said, the specific implementations of such collaboration are often still very painful and counterproductive...]

THIS COMMENT IS GOLD.

Another example I can point to is software security. For context, I’ve built and sold two edtech companies that taught enterprise developers about software security .. It didn’t matter how good the training content was .. ouur product replaced boring appsec video training with interactive labs, vulnerable code snippets to hack and fix .. gamification ... leaderboards .. whatever it took so they couldn’t complain about having to watch boring videos .. however the completion rates sucked .. because they just didn’t care regardless of how hard we tried ..

Now post AI .. my Linkedn is full of blogs and think pieces about how important “software threat modelling” and “cybersecurity” are, and how “coding was never the hard part.” ... suddenly, TM, something only a tiny fraction of companies actually practice, is being framed as the real challenge .. and having deep understanding of OWASP / secure design , vulnerable dependencies ..secure architecture ,, is the real bottle neck .. lol

That's just scarcity based economics doing its thing.

I don't think it's hilarious, I think it's rather sad to see people so easily trampled by the whims of an irrational market. Generally speaking, we benefit when people stick by their values, and yet we play this awful game where winning means abandoning our values in pursuit of "value" whatever that is.

> I mean, they're not even wrong, but the nakedly hypocritical attitude of people who, until a year ago, were the most antisocial and least collaborative members of any team they were on is still extraordinary.

I don't think there is any hypocrisy. The error in the analysis is assuming both conflicting opinions are held by the same person. They aren't.

The amount of cognitive dissonance I'm seeing on HN right now is concerning.

I'm seeing both these beliefs right now:

• Belief A: "I am a skilled professional whose value lies in my unique ability to solve complex problems."

• Belief B: "An LLM can now solve many of these problems in seconds for pennies."

This thread is great at showing how people are rationalizing by moving the goal posts, so to say

"both these beliefs" and you label one a Belief and the other a Fact.

I don’t think that’s the issue. The problem is that with software you don’t know what a user might like until something is in production.

This is probably true of other fields too. But rolling back changes there is expensive (example construction).

But with software you can get to put things out and iterate. This is not to say identifying what’s needed isn’t important but you had roles where the product owner is getting feedback for the previous iteration while the devs are working on the current one.

With code assistants this loop collapses a LOT. Suddenly it can be a lot easier to define better what you need and in near real time also gauge how it would operate.

Both are true “leave me alone” and “you don’t know what to build”. Because the people identifying what to build aren’t the people doing the building.

Collaborative activities and process being important is NOT mutually exclusive with many meetings being useless, agile ceremonies time wasting uselessness and design review being used as a place to pontificate about crap.

NONE of the activities you mentioned are activities that lead to what article talks about - well designed spec.

/s Oh noooo, it's like they're turning into managers... Now that machine can do their job better than them they've become as unimportant as you always thought they were, always pretending to be banging keyboard where it used less brain cycles than highly important work like posturing in a meeting did. Anyone can bang a keyboard even a machine can do that now, it can surely never replace important work of you having to 10 meetings. Lets replace all of them with machines and us meeting lovers can run the company with the machine produced work that we never have hope of understanding.

I agree with this sentiment https://news.ycombinator.com/item?id=48033534

I've had seniors tell me my entire career that writing code was the easiest part of their jobs.

I’m one of those, and it’s true.

One of the reasons I liked coding is because it’s easy on a relative basis. Dealing with people, ambiguous requirements, edge cases, business realities, are all the parts that are hard.

American football player Ray Lewis said one time he was paid to go to practice, but he played the games for free. I feel the same way about coding - I was (and still am) paid to deal with everything else.

True

I think you're assuming the venn diagram is a circle here, I don't think that's a healthy perspective to have (in any context).

Just because you use LLMs doesn't mean you don't need the "flow". Reading code SUCKS, getting into the flow is harder than ever.

Unless you sign off on a Looks Good to Me PR and go loiter by the kombucha machine. Then you have other problems.

I feel attacked. I still dislike most team meetings, agile ceremonies, etc. Slack and emails give me anxiety. A 30 min meeting will disrupt me for 90 minutes. But, yea, the code was never the bottleneck. Except maybe when I worked at a startup. All of the above are true.

Personally I find it hilarious that the same people at my company who can't be bothered to write down detailed requirements and are constantly fighting any effort to do research or technical documentation or pay down tech debt are now trying vibe coding and struggling to produce anything useful. Oh you don't understand why you aren't getting the results you expected? Maybe you should try thinking deeper about what you expect before your rush your engineers or, now, your agents.

Um… how do you get those requirements if slack / email give you anxiety ? And meetings are disruptive ?

I am genuinely curious. I understand where you are coming from, you want to maintain flow state.

How does one effectively load the funnel to support flow state ?

Jira tickets? Requirements documents in some kind of ALM tool?

Hmm... everyone is different and I'm not sure I'm the best representative of the "flow state" crowd. For one, I'm a DS not an SWE. Also I tend to do more research-y projects, projects where the requirements are vague at the start of the process and a big part of my job is requirements gathering. Projects that aren't super time sensitive TBH. Jira rarely works well. So the projects that have worked best for me involve lots of brainstorming meetings at the start, then documentation (literally Word docs), then development work, then restart the cycle. The worst projects involve stakeholders who want to make science decisions in real time. If that makes sense? None of this may apply in your world.

Isn't solving problems, instead of blindly implementing a high-level description of the solution, your job as a developer?

I don't understand this reply. Yes, I solve problems all the time. And that usually requires thinking deeply about the problem. And that deep thought is difficult when I'm getting constantly pinged about other stuff.

There are problems you can solve, and problems that you cannot. Depending on the exact details GP may have been slacking for not solving problems, or correct in saying he can't do good work because he shouldn't be solving the problems alone.

That was me. I complained a lot about meetings, design docs, etc. I did not understand that the process of discovery is messy and what looks inefficient is not really. I expected sharper meetings, shorter docs etc. In retrospect I see my naivety but it took me too long to change my attitude.

They sound like very important people no matter what the circumstances are, haha.

Having "house rules" on a team that new members must agree to follow tends to flush such people out and they usually exit on their own when their shenanigans get repeatedly called out as violative. Gotta introduce the rules in the interview process and get agreement after they join. Catching them out early is the key.

We had an intervention on one hard case and he rage quit the next day. I don't know why people do that, it's a small world and people talk.

There are 2 bands: you let people earn a living or you let investors/executives become richer every year to the detriment of workers. I don’t care about the medium, Im not with the big fishes

An important thing can (and one may argue will) be overdone AND hvlfvssed stealing oxygen from another important thing.

While I'm glad you posted this point of view/framing which honestly needs highlighting in the name of a better discussion, I must remind that the moaning back then was for the ceremony stealing time from building.

Two things can be true at the same time. Yes, those meetings are horrible, and plenty of times they're useless and can be summarised as "why wasn't this an email/slack message", but also plenty of those same meetings can equally be extremely important.

In fairness, given the context those meetings give, it stands to reason that giving that same context to an AI, it can, in theory, still do the same thing as an engineer. But those meetings still need to be had.

Yea, when you have multiple people doing anything, communication has to happen. It's not optional. As soon as your company hires developer #2, you need to communicate. As the team sizes get larger, 1:1 in-person conversations become less important and you need E-mail. As the team sizes get even larger and non-developer stakeholders become more numerous, meetings creep in. These things are not developer-torture devices. They are happening because your company decided that the product needs to be built by more than one person.

If y'all can find that company where the product is entirely developed soup-to-nuts by a single lone-wolf developer, without any other stakeholders or involved parties, by all means join that company! And tell HN about it--many of us would join it, too. But in the real world, development is a messy people-soup and you have to communicate.

There's nothing hypocritical about preferring the part of the job that isn't the bottleneck and wishing one could spend more time on enjoyable things. Nor is code being called "inconsequential" simply because it can be done (more) easily.

We've had systems that induce boilerplate before, and we've had systems that try to cope with that boilerplate before.

Considering the process to be tedious is really not the same thing as being antisocial.

That's an oppinion for sure, and a very shallow, general oppinion. Some people like solving problems, sometimes via code, while others tend to hide behind the 'Collaboration' banner, to help their own career progression. Both are legitimate tracks. To dismiss one, is to make the other appear 'non-Good'. But, perhaps data can be furnished as part of this post to support either as 'better'.

It's certainly the case that the collaborative ceremony can be mismanaged, and that is frustrating when you need time to implement. I don't expect that complaint to go away, those who are using AI heavily will replace it with not having enough time for prompting.

But I have also worked with some who refused to participate in collaboration, they felt their time and ideas superior to others, and there's no excuse for that.

I've got nothing to add to the discussion but want to take a moment to appreciate your ability to construct long sentences. It flows beautifully.

Or the person just likes to lock into flow states at the point of maximum leverage. Previously that was coding. Now it’s commanding agents.

I think probably both things can be true. That all of those things can be actively harmful when they distract the most productive coders from coding, and become more useful when time at a keyboard isn't really the constraint for producing code any more and coordination becomes a more serious problem.

They are still anti-social. But they see the “social” as a way to feed the AI better, to make better code.

The focus is still the code.

My sense is that it's the opposite. The people who complain about meetings, managers, and methodologies also complain about agentic coding. The people who are excited about frameworks, methodologies, and project management tooling are excited about agentic coding.

I've been selling and managing my own projects for over six years, so I don't count myself in the antisocial camp. But LLMs haven't changed the fact that I like to have at least five hours of deep work every day.

I have seen this play out too IRL and I am really enjoying the schadenfreude.

Did you ever try no meeting days and other methods to avoid interrupting thought workers?

Because even if someone is writing design documents you shouldn't be interrupting that process regularly either.

The archetype of the "jerk engineer" is over, because it turns out coding isn't all that valuable anymore. We now need "engineers" who understand much more than coding.

It's an astute observation but overstated. There are just as many programmers who view their activity as too sacred to consider using an LLM, even for relatively easy, predictable, or disposable work.

[deleted]

Generally, groups of people aren't homogenous.

The contradictions you see could mostly be variations across individuals rather than hypocrisy within individuals.

(Doubly so for vaguely defined groups, like "kind of engineer".)

Before, meetings (aka. coordination) bottlenecked the coding.

Even if coding was solved, meetings could still be the bottleneck.

You think spending more time on meetings is going to solve anything?

I do need to point out that not all meetings are equal, and the "hypocrisy" you are seeing may come from different groups of people.

Sometimes code is the bottleneck, other times it's not. Large company, not a bottleneck, fixing bugs or individual app developer, more so.

[deleted]

I'm not going to comment on the likely "Goomba fallacy" at work in your comment, but I just want to note:

> team meetings, agile ceremonies, issue trackers, backlogs, slack, emails, design reviews

Are frequently not:

> [important] collaborative activities

I've always been someone who disliked distractions from my "coding 'flow state' they claimed as their most essential and sacred activity to be protected at all costs" (because, you know, I was getting paid to write code and that's the only way I could actually get it done), but I also loved genuine collaborative activities (as in a small number of people, interacting with each other in a high bandwidth way, to figure something out or get on the same page).

A lot of the activities you explicitly mention are usually literal garbage for actual collaboration.

> (because, you know, I was getting paid to write code and that's the only way I could actually get it done)

I'm going to assume you were getting paid to build software that solved problems and created value for your customers and stakeholders. Writing code has always been just one activity that's part of the job, and developers forget that and make statements like this! That's the parent poster's point. I'm not saying it's not an extremely important part of the job, or that people don't often collaborate poorly in ways that take away from the sacred deep work time, but framing it as "I get paid to do X and not Y" is just a highly limiting way to look at or talk about the role.

>> (because, you know, I was getting paid to write code and that's the only way I could actually get it done)

> I'm going to assume you were getting paid to build software that solved problems and created value for your customers and stakeholders.

That's a distinction without a difference. At least historically, I was "paid to build software that solved problems" and I was to do that by writing code. If I didn't write code, and enough of it, I'd be fired. Getting my flow state disrupted for no good reason was something I'd resist.

Also agile ceremonies are a drag, literally becoming the thing agile was originally supposed to be fighting against (not that agile is gospel, I've always disagreed with some of its practices). They're not a good reason. And I also mentioned an actual good reason. I should also note those meetings I was referring to positively were almost always with users, not tech people.

> Writing code has always been just one activity that's part of the job, and developers forget that and make statements like this! That's the parent poster's point.

I wasn't addressing the parent poster's point per se (and I noted that and why), just noting that a lot of the "collaborative" activities he cited were often not that collaborative, and the shade he was throwing at people who were unenthusiastic about participating in them was probably unwarranted and misguided.

tl;dr: OP needs to have more empathy. There are better ways to thread the needle of his observations than what was on display in his comment.

I think there’s some kernel of validity in this comment, but the unnecessarily aggressive tone loses it. This just comes off as bitter.

Welcome in humanity my friend.

Also, expect harsh and rude reactions when pointing to big issues that are crystal clear in the middle of the village. Not all truths are warmly welcomed, especially when looking elsewhere feels more comfortable in the immediate experience.

Take care and don’t worry too much: the journey’s short, so remember to also enjoy the good parts.

Comments like these are why I still come to HN. Absolute kino.

I mean, it's a natural reaction to the floodgates of quickly produced AI work. This article highlights that problem https://nooneshappy.com/article/appearing-productive-in-the-...

That's a straw man at the root of which sits a conflation of at least two types of meetings:

(A)

Meetings where we discuss whether naming two users in an integration test `u1` and `u2` vs. `user1` and `user2` and whether whoever did the former is so hopeless that they should drop all computer work and go work on a farm, and spend an hour of meaningless and meandering style preferences.

(B)

Higher-level meetings where I can communicate with PMs and customers and CEOs almost on their level f.ex. "Does it make sense for us to have primary/co-borrower roles in our credit products or are all sides equally liable?".

---

With the advent of really good LLMs, meetings of Type A are nearly gone and meetings of Type B have increased meaningfully. I am very happy with that new state of affairs. Are you not?

[deleted]

Textbook example of goomba fallacy.

I would say in general the amount of persons who pivot like that is low.

Similarly, the amount of open source people who previously maintained a hardliner programming meritocracy stance and now pivoted to AI and market AI is exclusively limited to those whose companies are working on AI products. The good ones in that space are decidedly less than 1% of all good ones.

Yes this exactly, it's getting ridiculous at this point.

It's precisely because I get swamped with all the non-coding work that agentic coding works so well. And in multiple ways.

- it lets you get back in the flow faster (unless you were used to writing out your inner thinking monologues and reasoning to get yourself back to speed when you come back from a meeting).

- it lets you move faster and take on more on your own, meaning less people needed in the team, less communication/syncing/non-coding overhead.

If you're objective about it, AI coding is going to be amazing for individual productivity. It's probably going to fuck us (developers) over with the reduced demand, lower bargaining power, etc. But just on technical merits it's a great productivity tool.

The models are still not better than me at coding and handholding is required, but the speedups are undeniable, and we're long past the threshold of usefulness. So far all the contrarian takes are either shallow/reflexive pushback because people don't like the consequences, or people working in niche stuff where LLMs are not that great yet. But that has been shrinking with almost every release - in my experience.

I know everyone here writes cutting edge algorithms that were never encountered in the training data, their code is hyper optimized realtime bare metal logic that's used in life or death scenarios and LLMs are useless to them - but most of the stuff I do day to day is solve problems that have been solved before, in a slightly different context. LLMs are pretty good at that.

If coding by hand took 10x longer, why would it have bee unreasonable for people to demand more time to code? Seems like floored logic and you're just exciting to dunk on people?

They were right back then because these tools didn't exist yet, and they're right today because they do now.

What even is your point? Are you... mad because the truthiness of a statement can change over time?

Then there's the other kind of engineer, who would rather see the world burn and their friends destitute than spend another second in an agile meeting.

What? Coding was escape from what that hypothetical engineer of yours disliked the most. Now there is less of it and ai hypers keep yapping about the job being no longer needed. Meanwhile it's just the fun part that was optimised out. Working hours stay the same, so it's more of the unfun activities. The job is worse, but we're told it's "solved". Bitching more makes sense, no?

I hate meetings when they're mismanaged, which is often. I like a good meeting. Probably what most swes would say.

no, these meetings are still hot garbage.

half the time you’re going to discover the right decision / path while you’re coding.

focus time went from hammering code to figuring out how to solve the problem. PRs are now how we exchange ideas. meetings are still productivity theater.

Nah they're reaching for something they're good at. Same with you bro.

The stark reality is this. Both coding and project management can be done with AI. I think coding is more important than all the fluff surrounding project management but with AI both are now ready to become obsolete.

The thing with project management is that it's a bit harder for AI to tackle because it's not just pure tokens it needs to deal with. We need to give the agent more tools to interact with real time and real world events for AI to fully take over this aspect of the job, but make no mistake... project management is easier in terms of skill (not in terms of effort).

Looks like this comment is touching a nerve. This community is progressing from "AI can't write code", to "Well, AI can write code but it's not really about the code". I wonder where the goalposts will be moved next?

The community portion that unironically think AI is good enough now, are mostly managers and non/semi-technical people, and engineers who do not engage in critical or complex problems. HN has always been too much of the velocity-alignment-synergy class of professional talkers; it's just so much more obvious now that they feel emboldened in false confidence.

I've been paying attention to that line of division and came to the same conclusion. We're seeing the "tiers" diverge as AI becomes more capable. As the saying goes, you don't know what you don't know.

No hackers on Hacker News? Oh my oh my

Ah yes, the good old No True Scotsman fallacy, where we smugly proclaim that anyone who thinks AI is good now must be working on unimportant and easy things.

Ah yes, the (please copy & paste this message into an LLM to get it to generate a novel response in these parentheses)

My comment from 3 years ago still something I agree with https://news.ycombinator.com/item?id=34925145

There's some of that, but more often it's developers whose arguments are a year behind the frontier models or, just as common, they're dramatically overstating their abilities.

It's an inherent tension that every discipline has to wrestle with. The most experienced developers are in the best position to evaluate where LLMs are, but those who are the loudest about their own abilities generally aren't in this camp. Humility tends to come with experience, and arrogance tends to come with inexperience.

Conversely there's a massive amount of money being thrown around biased in favor of inflating what LLMs can do compared to humans.

[deleted]
[deleted]

Both your error and the OP's error is in imagining that the same people are saying both things. The "community" fallacy, which has been around for about 10 years now, that pretends that people with something in common (e.g. "uses HN") are somehow a community that thinks identically is completely wrong.

Actually, it's some of the same people. I won't name names, but there are a lot of AI skeptics on this site who loudly and prominently comment on every AI story. And if you look at their posting histories you'll see the exact type of goalpost-shifting the parent commenter is talking about.

You see it elsewhere as well. There's now a cottage industry (with visible members like Ed Zitron) who have made a career out of creating and selling anti-AI content. At first they were complaining that AI lies constantly. As AI got better, they shifted to other talking points.

There are 8 billion people on the planet. You can find a seemingly large group of people who believe anything. That doesn't mean the group exists in a way that's worth talking about.

> There's now a cottage industry (with visible members like Ed Zitron) who have made a career out of creating and selling anti-AI content

I can't believe that Ed Zitron, who I just looked up, has made a career out of creating and selling anti-AI content. He's 40. He cannot have been doing that for very long.

> At first they were complaining that AI lies constantly. As AI got better, they shifted to other talking points.

Calling the truth "complaining" seems more revealing of you than them. If the AI was lying constantly, they weren't "complaining". They were telling the truth. Once the AI stopped lying so much, they stopped saying that as keeping on saying it would no longer be true. But there are still other issues to talk about. That's...right? Isn't it?

This community hasn't agreed on either of those things, just like it never agreed on good coding practices.

My opinion since college (8y ago) was that the best engineers are the ones who treat everything as halfway a people problem, even in low level code.

LLMs have been getting a lot better at coding.

If the "goalposts" represent what people generally think LLMs are capable of, they should be moving, right?

And complex, multi-part, long term efforts like building software and software companies always have numerous obstacles. When one is cleared, you wouldn't expect there to be no more, would you?

Your tone is complaining, but I just see people working in reality.

Is it even a problem that so called goal posts are moved?

That's life.

Life changes and us along with it.

"Who Moved My Cheese?"

Exactly goalposts need to keep moving

I'm still at the "AI can write code, but it needs to go through me and I need to deeply understand the generated code base" stage. It's still about the code, it has always been about the code and how well it satisfies the requirements.

Since I didn't agree with the premise of the top level post, I was scrolling down as far as possible to get to the second top level comment and yet here I am still scrolling.

From my perspective AI doesn't really accelerate me per se, it's more like the AI helps me avoid getting stuck.