[HN Gopher] Effects of Gen AI on High Skilled Work: Experiments ...
       ___________________________________________________________________
        
       Effects of Gen AI on High Skilled Work: Experiments with Software
       Developers
        
       Author : Anon84
       Score  : 299 points
       Date   : 2024-09-06 11:21 UTC (1 days ago)
        
 (HTM) web link (papers.ssrn.com)
 (TXT) w3m dump (papers.ssrn.com)
        
       | danielvaughn wrote:
       | A 26% productivity increase sounds inline with in my experience.
       | I think one dimension they should explore is whether you're
       | working with a new technology or one that you're already familiar
       | with. AI helps me much more with languages/frameworks that I'm
       | trying to learn.
        
         | itchyjunk wrote:
         | Maybe that's what the new vs experienced difference is
         | indirectly capturing.
        
         | jstummbillig wrote:
         | That might be. It might also be a consequence of how flexible
         | people at different stages in their career are.
         | 
         | I have seen mostly senior programmers argue why ai tools don't
         | work. Juniors just use them without prejudice.
        
           | tuyiown wrote:
           | Flexible, or just that only juniors have real benefits
        
           | infecto wrote:
           | I wish I could upvote this comment more than once. There does
           | appear to be a prejudice with more senior programmers arguing
           | why it cannot work, how they just cause more trouble, and
           | other various complaints. The tools today are not perfect but
           | they still amaze me at what is being accomplished, even a 10%
           | gain is incredible for something that costs $10/month. I
           | believe progress will be made in the space and the tooling in
           | 5 years will be even better.
        
             | randomdata wrote:
             | _> The tools today are not perfect_
             | 
             | The trouble is that they seem to be getting worse. Some
             | time ago I was able to write an entire small application by
             | simply providing some guidance around function names and
             | data structures, with an LLM filling in all of the rest of
             | the code. It worked fantastically and really showed how
             | these tools can be a boon.
             | 
             | I want to taste that same thrill again, but these days I'm
             | lucky if I can get something out of it that will even
             | compile, never mind the logical correctness. Maybe I'm just
             | getting worse at using the tools.
        
             | mattgreenrocks wrote:
             | The prejudice comes down to whether they want to talk the
             | LLM into the right solution vs applying what they know
             | already. If you know your way around then there's no need
             | to go through the LLM. I think sr devs often tend to be
             | more task focused so the idea of outsourcing the thinking
             | to an LLM feels like another step to take on.
             | 
             | I find Claude good at helping me find how to do things that
             | I know are possible but I don't have the right nomenclature
             | for. This is an area where Google fails you, as you're
             | hoping someone else on the internet used similar terms as
             | you when describing the problem. Once it spits out some
             | sort of jargon I can latch onto, then I can Google and find
             | docs to help. I prefer to use multiple sources vs just
             | LLMs, partially because of hallucination, but also to keep
             | amassing my own personal context. LLMs are excellent as
             | librarians.
        
           | jncfhnb wrote:
           | My experience is juniors using them without prejudice and
           | then not understanding why their code is wrong
        
             | SketchySeaBeast wrote:
             | I am seeing that a lot - juniors who can put out a lot of
             | code but when they get stuck they can't unstick themselves,
             | and it's hard for me to unstick them because they have a
             | hard time walking me through what they are doing.
        
               | carlmr wrote:
               | I've gotten responses now on PRs of the form. "I don't
               | know either, this is what Copilot told me."
               | 
               | If you don't even understand your own PR, I'm not sure
               | why you expect other people can.
               | 
               | I have used LLMs myself, but mostly for boilerplate and
               | one-off stuff. I think it can be quite helpful. But as
               | soon as you stop understanding the code it generates you
               | will create subtle bugs everywhere that will cost you
               | dearly in the long run.
               | 
               | I have the strong feeling that if LLMs really outsmart us
               | to the degree that some AI gung-ho types believe, the old
               | Kernighan quote will get a new meaning:
               | 
               | "Debugging is twice as hard as writing the code in the
               | first place. Therefore, if you write the code as cleverly
               | as possible, you are, by definition, not smart enough to
               | debug it."
               | 
               | We'll be left with code nobody can debug because it was
               | handed to us by our super smart AI that only hallucinates
               | sometimes. We'll take the words of another AI that the
               | code works. And then we'll hope for the best.
        
               | SketchySeaBeast wrote:
               | Copilot is best for me when it's letting me hit tab to
               | auto-complete something I was going to write anyways.
        
               | carlmr wrote:
               | Copilot does hit that sweet to spot sometimes.
        
               | ebiester wrote:
               | Is that so new? We used to complain when someone blindly
               | copied and pasted from stack overflow. Before that, from
               | experts-exchange.
               | 
               | Coding is still a skill acquisition that takes years. We
               | need to stamp out the behavior of not understanding what
               | they take from copilot, but the behavior is not new.
        
               | SketchySeaBeast wrote:
               | You're right, it isn't entirely new, but I think it's
               | still different. You still had to figure out how that new
               | code snippet applied to your code. Stack overflow
               | wouldn't shape the code you're trying to slot in to fit
               | your current code.
        
           | GoToRO wrote:
           | As a senior, you know the problem is actually finishing a
           | project. That's the moment all those bad decisions made by
           | junior need to be fixed. This also means that a 80% done
           | project is more like 20% done, because in the state it is, it
           | can not be finished: you fix one thing and break 2 more.
        
           | SketchySeaBeast wrote:
           | As a senior, I find that trying to use copilot really only
           | gives me gains maybe half the time, the other half the time
           | it leads me in the wrong direction. Googling tends to give me
           | a better result because I can actually move through the data
           | quicker. My belief is this is because when I need help I'm
           | doing something uncommon or hard, as opposed to juniors who
           | need help doing regular stuff which will have plenty of
           | examples in the training data. I don't need help with that.
           | 
           | It certainly has its uses - it's awesome at mocking and
           | filling in the boilerplate unit tests.
        
           | marginalia_nu wrote:
           | I find their value depends a lot on what I'm doing. Anything
           | easy I'll get insane leverage, no exaggeration I'll slap
           | together that shit 25x faster. It's seen likely billions of
           | lines of simple CRUD endpoints, so yeah it'll write those
           | flawlessly for you.
           | 
           | Anything the difficult or complex, and it's really a coinflip
           | if it's even an advantage, most of the time it's just
           | distracting and giving irrelevant suggestions or bad
           | textbook-style implementations intended to demonstrate a
           | principle but with god-awful performance. Likely because
           | there's simply not enough training data for these types of
           | tasks.
           | 
           | With this in mind, I don't think it's strange that junior
           | devs would be gushing over this and senior devs would be
           | raising a skeptical eyebrow. Both may be correct, depending
           | on what you work on.
        
             | jeremy151 wrote:
             | I think for me, I'm still learning how to make these tools
             | operate effectively. But even only a few months in, it has
             | removed most all the annoying work and lets me concentrate
             | on the stuff that I like. At this point, I'll often give it
             | some context, tell it what to make and it spits out
             | something relatively close. I look it over, call out like
             | 10 things, each time it says "you're right to question..."
             | and we do an iteration. After we're thru that, I tell it to
             | write a comprehensive set of unit tests, it does that, most
             | of them fail, it fixes them, and them we usually have
             | something pretty solid. Once we have that base pattern, I
             | can have it pattern and extend variants after the first
             | solid bit of code. "Using this pattern for style and
             | approach, make one that does XYZ instead."
             | 
             | But what I really appreciate is, I don't have to do the
             | plug and chug stuff. Those patterns are well defined, I'm
             | more than happy to let the LLM do that and concentrate on
             | steering whether it's making a wise conceptual or
             | architectural choice. It really seems to act like a higher
             | abstraction layer. But I think how the engineer uses the
             | tool matters too.
        
           | SoftTalker wrote:
           | Juniors don't know enough to know what problems the AI code
           | might be introducing. It might work, and the tests might
           | pass, but it might be very fragile, full of duplicated code,
           | unnecessary side-effects, etc. that will make future
           | maintenance and debugging difficult. But I guess we'll be
           | using AI for that too, so the hopefully the AI can clean up
           | the messes that it made.
        
           | nuancebydefault wrote:
           | Now some junior dev can quickly make something new and fully
           | functional in days, without knowing in detail what they are
           | doing. As opposed to weeks by a senior originally.
           | 
           | Personally I think that senior devs might fear a conflict
           | within their identity. Hence they draw the 'You and the AI
           | have no cue' card.
        
         | pqdbr wrote:
         | Same impression here.
         | 
         | I've been using Cursor for around 10 days on a massive Ruby on
         | Rails project (a stack I've been coding in for +13 years).
         | 
         | I didn't enjoy any productivity boost on top of what GitHub
         | Copilot already gave me (which I'd estimate around the 25%
         | mark).
         | 
         | However, for crafting a new project from scratch (empty folder)
         | in, say, Node.js, it's uncanny; I can get an API serving
         | requests from a OpenAPI schema (serving the OpenAPI schema via
         | swagger) in ~5 minutes just by prompting.
         | 
         | Starting a project from scratch, for me at least, is rare,
         | which probably means going back to Copilot and vanilla VSCode.
        
           | gamerDude wrote:
           | I start new projects a lot and just have a template that has
           | everything I would need already set up for me. Do you think
           | there is a unique value prop that AI gives you when setting
           | up that a template would not have?
        
             | carlmr wrote:
             | AI has templates for the languages you seldom use (as long
             | as the language is not too niche for the LLM to have
             | trained on it).
        
             | lherron wrote:
             | I do both. I have a basic template that also includes my
             | specific AI instructions and conventions that are inputs
             | for Aider/Cursor. Best of both worlds.
        
             | pjot wrote:
             | GH Copilot chat specifically has directives like
             | @workspace /new "scaffold a ${language} project"
             | 
             | that automagically creates a full project structure and
             | boilerplate. It's been great for one off things for me at
             | least
        
               | sethops1 wrote:
               | You don't need AI to implement that.
        
           | CuriouslyC wrote:
           | To fully extract maximum value out of LLMs, you need to
           | change how you architect and organize software to make it
           | easy for them to work with. LLMs are great with function
           | libraries and domain specific languages, so the more of your
           | code you can factor into those sorts of things the greater a
           | speed boost they'll give you.
        
           | dartos wrote:
           | How do you use AI in your workflow outside of copilot?
           | 
           | I haven't been able to get any mileage out of chat AI beyond
           | treating it like a search engine, then verifying what it
           | said.... Which isn't a speedy workflow
        
           | SketchySeaBeast wrote:
           | I feel like this whole "starting a new project" might be the
           | divide between the jaded and excited, which often (but not
           | always) falls between senior and junior lines. I just don't
           | do that anymore. Coding is no longer my passion, it's my
           | profession. I'm working in an established code base that I
           | need to thoughtfully expand and improve. The easy and
           | boilerplate problems are solved. I can't remember the last
           | time I started up a new project, so I never see that side of
           | copilot or cursor. Copilot might at its best when tinkering.
        
           | yunwal wrote:
           | If I struggle on a particularly hard implementation detail in
           | a large project, often I'll use an LLM to set up a
           | boilerplate version of the project from scratch with fewer
           | complications so that I can figure out the problem. It gets
           | confused if it's interacting with too many things, but the
           | solutions it finds in a simple example can often be
           | instructive.
        
         | moolcool wrote:
         | I've found Copilot pretty good at removing some tedium, like
         | it'll write docstrings pretty well most of the time, but it
         | does almost nothing to alleviate the actual mental labour of
         | software engineering
        
           | jacobsenscott wrote:
           | Removing the tedium frees your brain up to focus on the
           | interesting parts of the problem. The "actual mental labor"
           | is the fun part. So I like that.
        
             | danielvaughn wrote:
             | Yeah this has been my experience. I bucket my work largely
             | into two categories - "creative work" and "toil". I don't
             | want or need AI to replace my creative work, but the more
             | it can handle toil for me, the better.
             | 
             | As it happens, I think co-pilot is a pretty poor user
             | experience, because it's essentially just an autocomplete,
             | which doesn't really help me all that much, and often gets
             | in my way. I like using Cursor with the autocomplete turned
             | off. It gives you the option to highlight a bit of text and
             | either refactor it with a prompt, or ask a question about
             | it in a side chat window. That puts me in the driver seat,
             | so to speak, so I (the user) can reach out to AI when I
             | want to.
        
         | hobofan wrote:
         | I'd also expand it to "languages/frameworks that I'll never
         | properly learn".
         | 
         | I'm not great at remembering specific quirks/pitfalls about
         | secondary languages like e.g. what the specific quoting
         | incantations are to write conditionals in Bash, so I rarely
         | wrote bash scripts for automation in the past. Basically only
         | if that was a common enough task to be worth the effort. Same
         | for processing JSON with jq, or parsing with AWK.
         | 
         | Now with LLMs, I'm creating a lot more bash scripts, and it has
         | gotten so easy that I'll do it for process-documentation more
         | often. E.g. what previously was a more static step-by-step
         | README with instructions is now accompanied with an interactive
         | bash script that takes user input.
        
           | sgarland wrote:
           | While I'll grant you that LLMs are in fact shockingly good
           | with shell scripts, I also highly recommend shellcheck [0].
           | You can get it as a treesitter plugin for nvim, and I assume
           | others, so it lints as you write.
           | 
           | [0]: https://www.shellcheck.net/
        
             | jcgrillo wrote:
             | I was just about to recommend the same, as well as shfmt
             | and shunit, or even all 3 + a build system:
             | https://www.pantsbuild.org/stable/docs/shell
        
           | danielvaughn wrote:
           | Oh god yes, LLM for bash scripting is fantastic. Bash is one
           | of those languages that I simply don't want to learn. Reading
           | it makes my eyes hurt.
        
             | a_wild_dandan wrote:
             | You could try zx[1]! I prefer it to Bash scripting.
             | 
             | [1] https://github.com/google/zx
        
               | einpoklum wrote:
               | You could, but then your script won't run anywhere except
               | your own system, as opposed to running basically
               | everywhere...
        
             | iwontberude wrote:
             | Bash is a terrible language in so so many ways and I concur
             | that I have no interest in learning its new features going
             | forward. I remember how painfully inadequate it was for
             | actual computation and its data types are non existent.
             | Gross.
        
               | SoftTalker wrote:
               | You have to understand the domain in which its intended
               | to be used.
               | 
               | Bash scripts are essentially automating what you could do
               | at the command line with utility programs, pipes,
               | redirects, filters, and conditionals.
               | 
               | If you're getting very far outside of that scope, bash is
               | probably the wrong tool (though it can be bent to do just
               | about anything if one is determined enough).
        
               | danielvaughn wrote:
               | I don't know too much about the history, but wasn't this
               | one of the original motivations for Python? Like it was
               | meant to be basically "bash scripting but with better
               | ergonomics", or something like that.
        
               | okwhateverdude wrote:
               | You might thinking of Perl. Affectionately known as the
               | swiss army chainsaw of programming languages, it
               | incorporated elements from bash, awk, sed, etc and
               | smushed them together into a language that carried the
               | early Web.
        
         | empath75 wrote:
         | Sounds about right to me, which is why the hysteria about AI
         | wiping out developer jobs was always absurd. _Every_ time there
         | has been a technology that improved developer productivity,
         | developer jobs and pay have _increased_. There is not a limited
         | amount of automation that can be done in the world and the
         | cheaper and easier it gets to automate stuff, the more stuff
         | will be economically viable to automate that wasn't before. Did
         | IDE's eliminate developer jobs? Compilers? It's just a tool.
        
           | randomdata wrote:
           | The automated elevator is just a tool, but it "wiped out" the
           | elevator operator. Which is really to say not that the
           | elevator operator was wiped out, but that _everyone_ became
           | the elevator operator. Thus, by the transitive properties of
           | supply and demand, the value of operating an elevator
           | declined to nothing.
           | 
           | Said hysteria was built on the same idea. After all, LLMs
           | themselves are just compilers for a programming language that
           | is incredibly similar to spoken language. But as the
           | programming language is incredibly similar to the spoken
           | language that nearly everyone already knows, the idea was
           | that everyone would become the metaphorical elevator
           | operator, "wiping out" programming as a job just as elevator
           | operators were "wiped out" of a job when operating an
           | elevator became accessible to all.
           | 
           | The key difference, and where the hysteria is likely to fall
           | flat, is that when riding in an elevator there isn't much
           | else to do but be the elevator operator. You may as well do
           | it. Your situation would not be meaningfully improved if
           | another person was there to press the button for you. When it
           | comes to programming, though, there is more effort involved.
           | Even when a new programming language makes programming
           | accessible, there remains a significant time commitment to
           | carry out the work. The business people are still best to
           | leave that work to the peons so they can continue to focus on
           | the important things.
        
         | insane_dreamer wrote:
         | I haven't found it that useful in my main product development
         | (which while python based, uses our own framework and therefore
         | there's not much code for CoPilot to go on and it usually
         | suggests methods and arguments that don't exist, which just
         | makes extra work).
         | 
         | Where I do find it useful are
         | 
         | 1) questions about frameworks/languages that I don't work in
         | much and for which there is a lot of example content (i.e., Qt,
         | CSS);
         | 
         | 2) very specific questions I would have done a Google Search
         | (usually StackOverflow) for ("what's the most efficient way to
         | CPU and RAM usage on Windows using python") - the result is
         | pointing me to a library or some example rather than directly
         | generating code that I can copy/paste
         | 
         | 3) boilerplate code that I already know how to write but saves
         | me a little time and avoids typing errors. I have the CoPilot
         | plugin for PyCharm so I'll write it as a comment in the file
         | and then it'll complete the next few lines. Again best results
         | is something that is very short and specific. With anything
         | longer I almost always have to iterate so much with CoPilot
         | that it's not worth it anymore.
         | 
         | 4) a quick way to search documentation
         | 
         | Some people have said it's good at writing unit tests but I
         | have not found that to be the case (at least not the right kind
         | of unit tests).
         | 
         | If I had to quantify it, I'd probably give it a 5-10% increase
         | in productivity. Much less than I get from using a full
         | featured IDE like PyCharm over coding in Notepad, or a really
         | good git client over typing the git commands in the CLI. In
         | other words, it's a productivity tool like many other tools,
         | but I would not say it's "revolutionary".
        
           | nuancebydefault wrote:
           | It is revolutionary no doubt. How many pre-AI tools would
           | accomplish an amount of 4 big features you mentioned at once?
        
             | insane_dreamer wrote:
             | Well, like I said, a well-designed IDE is a much bigger
             | productivity booster than CoPilot, and I've never heard
             | anyone describe JetBrains, NetBeans or VSCode as
             | "revolutionary".
        
               | nuancebydefault wrote:
               | I would call IDE's "evolutionary". Jetbrains is a better
               | evolutionary version of, say, Eclipse in the day.
        
             | skydhash wrote:
             | > _1) questions about frameworks /languages that I don't
             | work in much and for which there is a lot of example
             | content_
             | 
             | Books and manuals, they're pretty great for introductory
             | materials. And for advanced stuff, you have to grok these
             | first.
             | 
             | > _2) very specific questions I would have done a Google
             | Search (usually StackOverflow) for ( "what's the most
             | efficient way to CPU and RAM usage on Windows using
             | python")_
             | 
             | I usually go backwards for such questions, searching for
             | not what I want to do, but how it would look like if it
             | exists. And my search-fu have not failed me that much in
             | that regards, but that requires knowledge on how those
             | things work, which again goes back to books and other such
             | materials.
             | 
             | > _3) boilerplate code that I already know how to write but
             | saves me a little time and avoids typing errors._
             | 
             | Snippets and templates in my editor. And example code in
             | the documentation.
             | 
             | 4) a quick way to search documentation
             | 
             | I usually have a few browser tabs open for whatever modules
             | I'm using, plus whatever the IDE has, and PDFs and manual
             | pages,...
             | 
             | For me, LLMs feel like building a rocketship to get
             | groceries at the next village, and then hand-waving the
             | risks of explosions and whether it would actually get you
             | there.
        
             | insane_dreamer wrote:
             | I used Google Search for all of the above and would usually
             | find what I needed in the first few hits -- which would
             | lead to the appropriate doc page or an example page or a
             | page on SO, etc.
             | 
             | So it's not like CoPilot is giving me information that I
             | couldn't get fairly easily before. But it is giving it to
             | me much __faster__ than I could access it before. I liken
             | it to an IDE tool that allows you to look up API methods as
             | you type. Or being able to ask an expert in that particular
             | language/domain, except it's not as good as the expert
             | because if the expert doesn't know something they're not
             | going to make it up, they'll say "don't know".
             | 
             | So how much benefit you get from it is relative to how much
             | you have to look up stuff that you don't know.
        
         | rm_-rf_slash wrote:
         | AI speeds my coding up 2x-4x, depending on the breadth of
         | requirements and complexity of new tech to implement.
         | 
         | But coding is just a fraction of my weekly workload, and AI has
         | been less impactful for other aspects of project management.
         | 
         | So overall it's 25%-50% increase in productivity.
        
         | jakub_g wrote:
         | I only use (free) ChatGPT sporadically, and it works best for
         | me in areas where I'm familiar enough to call bullshit, but not
         | familiar enough to write things myself quickly / confidently /
         | without checking a lot of docs:
         | 
         | - writing robust bash and using unix/macos tools
         | 
         | - how to do X in github actions
         | 
         | - which API endpoint do I use to do Y
         | 
         | - synthesizing knowledge on some topic that would require
         | dozens of browser tabs
         | 
         | - enumerating things to consider when investigating things.
         | Like "I'm seeing X, what could be the cause, and how I do check
         | if it's that". For example I told it last week "git rebase is
         | very slow, what can it be?" and it told me to use GIT_TRACE=1
         | which made me find a slow post-commit hook, and suggested how
         | to skip this hook while rebasing.
        
           | thiht wrote:
           | Same for me. I also use it for some SQL queries involving
           | syntax I'm unfamiliar with, like JSONB operators in Postgres.
           | ChatGPT gives me better results, faster than Google.
        
       | alternatex wrote:
       | I wonder if the study includes the technical debt that more
       | experienced developers had to tackle after the less experienced
       | devs have contributed their AI-driven efforts. Because my
       | personal experience has involved a lot of that in one of the
       | companies listed in the study.
       | 
       | Also, I've personally seen more interest in AI in devs that have
       | little interest in technology, but a big interest in delivering.
       | PMs love them though.
        
         | anonzzzies wrote:
         | > had to tackle after the less experienced devs have
         | contributed their AI-driven efforts.
         | 
         | So, like before AI then? I haven't seen AI deliver illogical
         | nonsense that I couldn't even decipher like I have seen some
         | outsourcing companies deliver.
        
           | htrp wrote:
           | AI seems to give more consistent results than outsourcing
           | (not necessarily better, but at least more predictable
           | failure modes)
        
           | trashtester wrote:
           | > that I couldn't even decipher
           | 
           | This is one of the challenges of being a tech lead. Sometimes
           | code is hard to comprehend.
           | 
           | In my experience, AI delivered code is no worse than entry
           | level developer code.
        
             | anonzzzies wrote:
             | But that is a HN bubble thing: I work and worked with
             | seniors with 10-15 years under their belt who have no logic
             | bone in their body; the worst (and an AI does not do that)
             | is when there is a somewhat 'busy' function that has an if
             | or switch statement and, over time, to add features or fix
             | bugs, ifs were added. Now after 5+ years, this function is
             | 15000 lines and is somewhat of a trained neural network
             | adjacent thing; 100s of nested ifs, pages long, that cannot
             | be read and cannot be followed even if you have a brain.
             | This is made by senior staff of, usually, outsourcing
             | companies and I have seen it very many times over the past
             | 40 years. Not entry level, not small companies either. I
             | know a gov tax system which was partly maintained by a very
             | large and well known outsourcing company which has numerous
             | of these puppies in production that no one dares to touch.
             | 
             | AI doesn't do stuff like because it could not, which to me,
             | is a good thing. When it gets better, it might start to do
             | it, I don't know.
             | 
             | People here live in a bubble where they think the world is
             | full of people who read 'beautiful code', make tests, use
             | git or something instead of zip$date and know how DeMorgan
             | works; by far, most don't, not juniors, not seniors.
        
               | nottorp wrote:
               | > to add features or fix bugs, ifs were added.
               | 
               | "Back to that two page function. Yes, I know, it's just a
               | simple function to display a window, but it has grown
               | little hairs and stuff on it and nobody knows why. Well,
               | I'll tell you why: those are bug fixes. One of them fixes
               | that bug that Nancy had when she tried to install the
               | thing on a computer that didn't have Internet Explorer.
               | Another one fixes that bug that occurs in low memory
               | conditions. Another one fixes that bug that occurred when
               | the file is on a floppy disk and the user yanks out the
               | disk in the middle. "
               | 
               | https://www.joelonsoftware.com/2000/04/06/things-you-
               | should-...
               | 
               | Of course, you can try to split the 15000 line function
               | in logical blocks or something, but don't assume the ifs
               | in it are useless.
        
           | nottorp wrote:
           | > I haven't seen AI deliver illogical nonsense
           | 
           | I have. If you're doing niche-er stuff it doesn't have enough
           | data and hallucinates. The worst is when it spits two screens
           | of code instead of 'this cannot be done at the level you want
           | it'.
           | 
           | > that I couldn't even decipher
           | 
           | That's unrelated to code quality. Especially with C++ which
           | has become as write only as perl.
        
         | sgarland wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering.
         | 
         | Thank you, this says what I have been struggling to describe.
         | 
         | The day I lost part of my soul was when I asked a dev if I
         | could give them feedback on a DB schema, they said yes, and
         | then cut me off a few minutes in with, "yeah, I don't really
         | care [about X]." You don't care? I'm telling you as the SME for
         | this exactly what can be improved, how to do it, and why you
         | should do so, but you don't care. Cool.
         | 
         | Cloud was a mistake; it's inculcated people with the idea that
         | chasing efficiency and optimization doesn't matter, because you
         | can always scale up or out. I'm not even talking about doing
         | micro-benchmarks (though you should...), I'm talking about
         | dead-simple stuff like "maybe use this data structure instead
         | of that one."
        
           | dartos wrote:
           | I've noticed this more and more since 2020.
           | 
           | A lot of people who entered the field in the past 6 or so
           | years are here for the money, obviously.
           | 
           | Nothing wrong with that at all, but as someone with a long
           | time programming and technology passion, it's sad to see that
           | change.
        
             | sgarland wrote:
             | There's certainly nothing wrong with enjoying the high pay,
             | no - I definitely do. But yeah, it's upsetting to find out
             | how few people care. Even moreso when they double down and
             | say that you shouldn't care either, because it's been
             | abstracted away, blah blah blah. Who do you think is going
             | to continue creating these abstractions for you?
        
               | ebiester wrote:
               | ...Someone else who thinks of actual web applications as
               | an abstraction.
               | 
               | In the olden days, we used to throw it over to "Ops" and
               | say, "your problem now."
               | 
               | And Junior developers have always been overwhelmed with
               | the details and under pressure to deliver enough to keep
               | their job. None of this is new! I'm a graybeard now, but
               | I remember seniors having the same complaints back then.
               | "Kids these days" never gets old.
        
               | conductr wrote:
               | I get what you're saying, but at the same time I feel
               | like I encounter the real world results of this erosion
               | constantly. While we have more software than ever, it all
               | just kind of feels janky these days. I encounter errors
               | in places I never had before, doing simple things. The
               | other day I was doing a simple copy and paste operation
               | (it was some basic csv formatted text from vs code to
               | excel iirc) and I encountered a Windows (not excel or vs
               | code) error prompt that my clipboard data had been lost
               | in the time it took me to Alt+Tab and Ctrl+v, something
               | I've been doing ~daily for 3 decades without any issues.
               | 
               | I'm more of a solo full stack dev and don't really have
               | first hand experience building software at scale and the
               | process it takes to manage a codebase the size of the
               | Windows OS, but these are the kinds of issues I see
               | regularly these days and wouldn't in the past. I also use
               | macOS daily for almost as long and the Apple software has
               | really tanked in terms of quality, I hit bugs and
               | unexpected errors regularly. I generally don't use their
               | software (Safari, Mail, etc) when I can avoid it. Also
               | have to admit lack of features is a big issue for me on
               | their software.
        
               | bumby wrote:
               | I get the pragmatism argument, but I would like to think
               | certain professions should hold themselves to a higher
               | standard. Doctors, lawyers, and engineers have a duty to
               | society IMO that runs counter to a "just mail it in to
               | cash a paycheck" mentality. I guess it comes down to
               | whether you consider software developers to be that same
               | kind of engineer. Certainly I don't want safety critical
               | software engineers to have that cavalier attitude
               | (although I've seen it).
        
             | choilive wrote:
             | Its been a while since my undergrad (>10 yrs) but many of
             | my peers were majoring in CS or EE/CE because of the money,
             | at the time I thought it was a bit depressing as well.
             | 
             | With a few more years under my belt I realized theres
             | nothing wrong with doing good work and providing
             | yourself/your family a decent living. Not everyone needs
             | the passion in their field to become among the best or
             | become a "10x"er to contribute. We all have different
             | passions, but we all need to pay the bills.
        
               | neilv wrote:
               | Yeah, I think that the _quality_ of work (skill +
               | conscientiousness), and the _motivation_ for doing the
               | work, are two separate things.
               | 
               | Off-the-cuff, three groups:
               | 
               | 1. There are people who are motivated by having a solid
               | income, yet they take the professionalism seriously, and
               | do skilled rock-solid work, 9-5. I'd be happy to work
               | with these people.
               | 
               | 2. There are other people who are motivated by having a
               | solid or more-than-solid income, and (regardless of skill
               | level), it's non-stop sprint performance art, gaming
               | promotion metrics, resume-driven development, practicing
               | Leetcode, and hopping at the next opportunity regardless
               | of where that leaves the project and team.
               | 
               | 3. Then there's those weirdos who are motivated by
               | _something_ about the work itself, and would be doing it
               | even if it didn 't pay well. Over the years, these people
               | spend so much time and energy on the something, that they
               | tend to develop more and stronger skills than the others.
               | I'd be happy to work with these people, so long as they
               | can also be professional (including rolling up sleeves
               | for the non-fun parts), or amenable to learning to be
               | professional.
               | 
               | Half-joke: The potential of group #3 is threatening to
               | sharp-elbowed group #2, so group #2 neutralizes them via
               | frat gatekeeping tactics (yeah-but-what-school-did-you-
               | go-to snobbery, Leetcode shibboleth for nothing but
               | whether you rehearsed Leetcode rituals, cliques, culture
               | fit, etc.).
               | 
               | Startups might do well to have a mix of #3 and #1, and to
               | stay far away from #2. But startups -- especially the
               | last decade-plus of too many growth investment scams --
               | are often run by affluent people who grew up being taught
               | #2 skills (for how you game your way into prestigious
               | school, aggressively self-interested networking and
               | promoting yourself, etc.).
        
               | dartos wrote:
               | I'm in group 3 for sure.
               | 
               | The hardest part of any job I've had is doing the not so
               | fun parts (meetings, keeping up with emails, solidly
               | finishing work before moving on to something new)
        
               | neilv wrote:
               | You're on the nominally right Web site. #1 is engineers,
               | #2 is cancer, and #3 is hackers (possibly also
               | engineers). :)
        
               | XenophileJKO wrote:
               | As I progressed, I've learned I am more valuable for the
               | company working on things I am interested in. Delegate
               | the boring stuff to people that don't care. If it is
               | critical to get it done right, do it yourself.
        
               | sgarland wrote:
               | I would definitely do this job even if it paid half as
               | well. Nothing else is nearly as interesting to me, and
               | I've tried quite a range.
        
               | zquzra wrote:
               | #3 is the old school hacker, "a high-powered mutant of
               | some kind never even considered for mass production. Too
               | weird to live, and too rare to die" :-)
        
               | sdiupIGPWEfh wrote:
               | Blend of #1 & #3 here. Without the pay, I don't think I'd
               | muster the patience for dealing with all the non-
               | programming BS that comes with the job. So I'd have found
               | something else with decent pay, and preferably not an
               | office job. Sometimes I wish I'd taken that other path. I
               | have responsibilities outside work, so I'm rarely putting
               | in more than 40 hours. Prior to family commitments, I had
               | side projects and did enough coding outside work. I still
               | miss working on hobby video game projects. But I do take
               | the professionalism seriously and will do the dirty work
               | that has to be done, even if means cozying up to group #2
               | to make things happen for the sake of the project.
        
             | jayd16 wrote:
             | Maybe a lack of learned healthy shame from people joining
             | the industry during the covid hiring spree.
        
           | carlmr wrote:
           | >Cloud was a mistake; it's inculcated people with the idea
           | that chasing efficiency and optimization doesn't matter,
           | because you can always scale up or out.
           | 
           | Similarly Docker is an amazing technology, yet it enabled the
           | dependency tower of babels that we have today. It enabled
           | developers that don't care about cleaning up their depencies.
           | 
           | Kubernetes is amazing technology, yet it enabled the
           | developers that don't care to ship applications that
           | constantly crash, but who cares, kubernetes will
           | automatically restart everything.
           | 
           | Cloud and now AI are similar enabler technologies. They could
           | be used for good, but there are too many people that just
           | don't care.
        
             | shadowgovt wrote:
             | The fine art of industry is building more and more
             | elaborate complicated systems atop things someone deeply
             | cares about to be used by those who don't have to deeply
             | care.
             | 
             | How many developers do we imagine even know the difference
             | between SIMD and SISD operators, much less whether their
             | software stack knows how to take advantage of SIMD? How
             | many developers do we imagine even know how RAM chips store
             | bits or how a semiconductor works?
             | 
             | We're just watching the bar of "Don't need to care because
             | a reliable system exists" move through something we know
             | and care about in our lifetimes. Progress is great to watch
             | in action.
        
               | blibble wrote:
               | > How many developers do we imagine even know the
               | difference between SIMD and SISD operators, much less
               | whether their software stack knows how to take advantage
               | of SIMD? How many developers do we imagine even know how
               | RAM chips store bits or how a semiconductor works?
               | 
               | hopefully some of those that did a computer science
               | degree?
               | 
               | (all of what you've said was part of mine)
        
               | shadowgovt wrote:
               | Globally, only 41% of software developers even have a
               | bachelor's degree.
        
               | mistrial9 wrote:
               | you insult fine art
        
           | jcgrillo wrote:
           | In a similar vein, some days I feel like a human link
           | generator into e.g. postgres or kafka documentation. When
           | docs are that clear, refined, and just _damn good_ but it
           | seems like nobody is willing to actually read them closely
           | enough to  "get it" it's just a very depressing and
           | demotivating experience. If I could never again have to
           | explain what a transaction isolation level is or why calling
           | kafka a "queue" makes no sense at all I'd probably live an
           | extra decade.
           | 
           | At the root of it, there's a profound arrogance in putting
           | someone else in a position where they are compelled to tell
           | you you're wrong[1]. Curious, careful people don't do this
           | very often because they are aware of the limits of their
           | knowledge and when they don't know something they go find it
           | out. Unfortunately this is surprisingly rare.
           | 
           | [1] to be clear, I'm speaking here as someone who has been
           | guilty of this before, now regrets it, and hopes to never do
           | it again.
        
             | sgarland wrote:
             | I've taken to asking if people have read docs (and linking
             | them to the correct page). So far it hasn't changed
             | anything. Unfortunate.
        
             | kragen wrote:
             | last night someone told me about objdump -S. i wish i'd
             | known about this many years ago; it would have saved me so
             | much work
             | 
             | in my defense, though, it's possible the option didn't
             | exist when i first read the objdump manual
        
           | noisy_boy wrote:
           | > Also, I've personally seen more interest in AI in devs that
           | have little interest in technology, but a big interest in
           | delivering.
           | 
           | They are/will be the management's darling because they too
           | are all about delivering without any interest in technology
           | either.
           | 
           | Well designed technology isn't seen as foundation anymore; it
           | is merely a tool to just keep the machine running. If parts
           | of the machine are being damaged by the lack of judgement in
           | the process, that shouldn't come in the way of this year's
           | bonus; it'll be something to worry about in the next
           | financial year. Nobody knows whats going to happen in the
           | long-term anyway, make hay while the sun shines.
           | 
           | The age of short-term is upon us.
        
         | nerdjon wrote:
         | I am curious about this also. I have now seen multiple PR's
         | that I had to review that a method was clearly completely
         | modified by AI with no good reason and when asked why something
         | was changed we just got silence. Not exaggerating, literal
         | silence and then trying to ignore the question and explain the
         | thing we were first asking them to do. Clearly having no idea
         | what is actually in this PR.
         | 
         | This was done because we asked for a minor change to be done
         | (talking maybe 5 lines of code) and tested. So now not only are
         | we dealing with new debt, we are dealing with code that no one
         | can explain why it was completely changed (and some of the
         | changes were changes for the sake of change), and we are
         | dealing with those of us that manage this code now looking at
         | completely foreign code.
         | 
         | I keep seeing this with people that are using these tools and
         | they are not higher level engineers. We finally got to the
         | point of denying these PR's and saying to go back and do it
         | again. Loosing any of the time that was theoretically gained
         | from doing it in the first place.
         | 
         | Not saying these tools don't have a place. But people are using
         | it without understanding what it is putting out and not
         | understanding the long term effects it will have on a code
         | base.
        
           | okwhateverdude wrote:
           | > Not saying these tools don't have a place. But people are
           | using it without understanding what it is putting out and not
           | understanding the long term effects it will have on a code
           | base.
           | 
           | It is worse than that. We're all maintaining in our heads the
           | mental sand castle that is the system the code base
           | represents. The abuse of the autocoder erodes that sand
           | castle because the intentions of the changes, which are
           | crucial for mentally updating the sand castle, are not
           | communicated (because they are unknowable). This is same
           | thing with poor commit messages, or poor documentation around
           | requirements/business processes. With enough erosion, plus
           | expected turn over in staff, the sand castle is actually
           | gone.
        
             | rongenre wrote:
             | There needs to be a pattern for including AI-generated
             | code, recording all the context which led to the
             | generation.
        
               | jcgrillo wrote:
               | Easy: exclude developers who try it. Learning--be it a
               | new codebase, a new programming language, a new database
               | --takes time. You're not going to be as productive until
               | you learn how. That's fine! Cheating on your homework
               | with an LLM should not be something we celebrate, though,
               | because the learner will never become productive that
               | way, and they won't understand the code they're
               | submitting for review.
        
               | XenophileJKO wrote:
               | The truth is that the tools are actually quite good
               | already. If you know what you are doing they will 10-20x
               | your productivity.
               | 
               | Ultimately not adopting them will religate you to the
               | same fate as assembly programmers. Sure there are place
               | for it, but you won't be able to get near as much
               | functionally done in the same amount of time and there
               | won't be as much demand for it.
        
               | shinycode wrote:
               | Do you agree that the brain-memory activity of writing
               | code and reading someone else's code is totally different
               | ? The sand castle analogy is still valid here because
               | once you have a x10 productivity or worse a x20 one,
               | there is no way you can deeply understand the things the
               | same way than if you wrote it from scratch. Without
               | spending a considerable amount of time and getting
               | productivity down, the understanding is not the same. If
               | no one is responsible because it's crap software and you
               | won't be around enough time to bear responsibility...
               | it's ok I guess ?
        
               | andai wrote:
               | I write at 1x speed and I can't even understand my own
               | code the next day.
        
               | kragen wrote:
               | if you are seeing 900% productivity gains, why did these
               | controlled experiments only find 28%, mostly among
               | programmers who _don 't_ know what they're doing? and
               | only 8-10% among programmers who did? do you have any
               | hypotheses?
               | 
               | i suspect you are seeing 900% productivity gains on
               | certain narrow tasks (like greenfield prototype-quality
               | code using apis you aren't familiar with) and incorrectly
               | extrapolating to programming as a whole
        
               | dasil003 wrote:
               | I think you're probably right, though I fear what it will
               | mean for software quality. The transition from assembly
               | to high level languages was about making it easier to
               | both write _and_ to understand code. AI really just
               | accelerates writing with no advancement in legibility.
        
               | jcgrillo wrote:
               | We'll see. Get back to me sometime in 2034 and we can
               | compare notes.
        
           | jonnycomputer wrote:
           | When using code assist, I've occasionally found some
           | perplexing changes to my code I didn't remember making (and
           | wouldn't have made). Can be pretty frustrating.
        
         | anonzzzies wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering.
         | 
         | I found this too. But I also found the opposite, including here
         | on HN; people who are interested in technology have almost an
         | aversion against using AI. I personally love tech and I would
         | and do write software for fun, but even that is objectively
         | more fun for me with AI. It makes me far more productive (very
         | much more than what the article states) and, more importantly,
         | it removes the procrastination; whenever I am stuck or
         | procrastinating getting to work or start, I start talking with
         | Aider and before I know it, another task was done that I
         | probably wouldn't have done that day without.
         | 
         | That way I now launch bi weekly open and closed source projects
         | while before that would take months to years. And the cost of
         | having this team of fast experienced devs sitting with me is
         | max a few $ per day.
        
           | andybak wrote:
           | Yeah. There is a psychological benefit to using AI that I
           | find very beneficial. A lot of tasks that I would have
           | avoided or wasted time doing task avoidance on suddenly
           | become tractable. I think Simon Willison said something
           | similar.
        
             | jcgrillo wrote:
             | Are you just working on personal projects or in a shared
             | codebase with tens or hundreds of other devs? If the
             | latter, how do you keep your AI generated content from
             | turning the whole thing into an incomprehensible superfund
             | site of tech debt? I've gotten a lot of mileage in my
             | career so far by paying attention when something felt
             | tedious or mundane, because that's a signal you need some
             | combination of refactoring, tooling, or automation. If
             | instead you just lean on an LLM to brute-force your way
             | through, sure, that accomplishes the short term goal of
             | shipping your agile sprint deliverable or whatever, but
             | what of the long term cost?
        
               | andybak wrote:
               | > Are you just working on personal projects or in a
               | shared codebase with tens or hundreds of other devs?
               | 
               | Like - I presume almost everyone - somewhere in the
               | middle?
               | 
               | That was a helluva dichotomy to offer me...
               | 
               | > how do you keep your AI generated content from turning
               | the whole thing into an incomprehensible superfund site
               | of tech debt?
               | 
               | By reading it, thinking about it and testing it?
               | 
               | Did I somehow give the impression I'm cutting and pasting
               | huge globs of code straight from ChatGPT into a git
               | commit?
               | 
               | There's a weird gulf of incomprehension between people
               | that use AI to help them code and those that don't. I'm
               | sure you're as confused by this exchange as I am.
        
               | jcgrillo wrote:
               | > That was a helluva dichotomy to offer me...
               | 
               | I certainly didn't intend it that way, more like a
               | continuum. O(1) --> O(10) --> O(100) --> ...
               | 
               | > Did I somehow give the impression I'm cutting and
               | pasting huge globs of code straight from ChatGPT into a
               | git commit?
               | 
               | Yes, a little. It seemed to me like you were advocating
               | using the LLM to generate large amounts of tedious
               | output.
        
               | andybak wrote:
               | I'm not sure where I said that but I certainly didn't
               | intend to give that impression.
               | 
               | I use AI either as an unblocker to get me started, or to
               | write a handful of lines that are too complex to do from
               | memory but not so complex that I can't immediately grok
               | them.
               | 
               | I find both types of usage very satisfying and helpful.
        
               | jcgrillo wrote:
               | Interesting, thanks for clarifying.
        
               | anonzzzies wrote:
               | It does generate swats of code, however, you have to
               | review and test it. But, depending on what you are
               | working in/with, you would have to write this yourself
               | anyway; for instance, Go has always so much plumbing, AI
               | simply removes all those keystrokes. And very rigorously;
               | it adds all the err and defer blocks in, which can be
               | 100s and a large % of one go file: what is the point of
               | writing that yourself? It does that very fast as well; if
               | you write the main logic without any of that stuff and
               | ask sonnet to make it 'good code', you write a few lines
               | and get 100s back.
               | 
               | But it is far more useful on verbose 'team written'
               | corporate stuff than on the more reuse intensive tech: in
               | CL or Haskell, the community is far more DRY than Go or
               | JS/TS; you tend to create and reuse many things and your
               | much of the end result is (basically) a DSL; current AI
               | is not very good at that in my experience; it will
               | recreate or hallucinate (when you pressure reuse of
               | previously created things, if there are too many, even
               | though it does fit in the context window) functions all
               | over the place. But many people have the same issue; they
               | don't know, cannot search or forget and will just redo
               | things many times over; AI makes that far easier (as in,
               | no work at all often), so that's the new reality.
        
               | rurp wrote:
               | Working in a codebase with 10s of other developers
               | seems... pretty normal? Not universal sure, but that has
               | to be a decent percent of professional software work.
               | Once you get to even a half dozen people working in a
               | code base I think consistency and clarity take on a
               | significant role.
               | 
               | In my own experience I've worked on repos with <10 other
               | devs where I spent far more effort on consistency and
               | mantainability than getting the thing to work.
        
               | Sakos wrote:
               | I'm not the same person but I share their perspective on
               | this. I do it by treating AI written code the exact same
               | way I treat mine. Extremely suspect and probably terrible
               | on the first iteration, so I heavily test and iterate it
               | until it's great code. If it's not up to my standards, I
               | don't ever put it in a merge request, whether I handwrote
               | it myself or had an AI write it for me.
        
           | trashtester wrote:
           | > people who are interested in technology have almost an
           | aversion against using AI
           | 
           | I wonder if this is an age thing, for many people. I'm old
           | enough to have started reading these discussions on Slashdot
           | in the early 90s.
           | 
           | But between 2000 and 2010, Slashdot changed and became much
           | less open to new ideas.
           | 
           | The same may be happening to HN right now.
           | 
           | It feels like a lot of people are stuck in the tech of 10
           | years ago.
        
           | skydhash wrote:
           | > people who are interested in technology have almost an
           | aversion against using AI
           | 
           | Personally, I don't use LLMs. But I don't mind people using
           | them as interactive search engines or code/text manipulations
           | as long as they're aware of the hallucination risks and took
           | care of what they're copying into the project. My reasons for
           | it is mostly that I'm a journey guy, not a destination guy.
           | And I love reading books and manuals as they give me an
           | extensive knowledge map. Using LLMs feels like taking
           | guidance from someone who has not ventured 1km outside their
           | village, but heard descriptions from passersby. Too much
           | vigilance required for the occasional good stuff.
           | 
           | And the truth is, there are a lot of great books and manuals
           | out there. And while they teach you how to do stuff, they
           | often teach you why you should not do it. I strongly doubt
           | Copilot imparting architectural and technical reminders
           | alongside the code.
        
             | anonzzzies wrote:
             | > I'm a journey guy, not a destination guy
             | 
             | For my never finishing side projects I am too; I enjoy my
             | weekends tinkering on the 'final database' system I have
             | been building in CL for over a decade and will probably
             | never really 'finish'. But to make money, I launch things
             | fast and promote them; AI makes that far easier.
             | 
             | Especially for parts like fronted that I despise; I find 0
             | pleasure in working with css magic that even seasoned
             | frontenders have to try/fail in a loop to create. I let
             | Sonnet just struggle until it's good enough instead of me
             | having to do that annoying chore; then I ask Aider to
             | attach it to the backend and done.
        
         | infecto wrote:
         | I hear this but I don't think this is a new issue that AI
         | brought, it simply magnified it. That's a company culture
         | issue.
         | 
         | It reminds me of a talk Raymond Hettinger put on a while ago
         | about rearranging the flowers in the garden. There is a
         | tendency from new developers to rearrange for no good reason,
         | AI makes it even easier now. This comes down to a culture
         | problem to me, AI is simply the tool but the driver is the
         | human (at least for now).
        
         | noobermin wrote:
         | It doesn't, it looks at PRs, commits, and builds only. They
         | remark at this lacking context.
        
         | fer wrote:
         | Disclaimer: I work at a company who sells coding AI (among many
         | other things).
         | 
         | We use it internally and the technical debt is an enormous
         | threat that IMO hasn't been properly gauged.
         | 
         | It's very very useful to carpet bomb code with APIs and
         | patterns you're not familiar with, but it also leads to insane
         | amounts of code duplication and unwieldy boilerplate if you're
         | not careful, because:
         | 
         | 1. One of the two big bias of the models is the fact that the
         | training data is StackOverflow-type training data, which are
         | examples and don't take context and constraints into account.
         | 
         | 2. The other is the existing codebase, and it tends to
         | copy/repeat things instead of suggesting you to refactor.
         | 
         | The first is mitigated by, well, doing your job and
         | reviewing/editing what the LLM spat out.
         | 
         | The second can only be mitigated once diffs/commit history
         | become part of the training data, and that's a much harder
         | dataset to handle and tag, as some changes are good
         | (refactorings) but other might be not (bugs that get corrected
         | in subsequent commits) and no clear distinction as commit
         | messages are effectively lies (nobody ever writes: bug
         | introduced).
         | 
         | Not only that, merges/rebases/squashes alter/remove/add
         | spurious meanings to the history, making everything blurrier.
        
           | trashtester wrote:
           | If you're in a company that is valued at $10M+ per developer,
           | the technical debt is not a big concern.
           | 
           | Either you will go bust, OR you will be able to hire enough
           | people to pay those debts, once you get traction in the
           | market.
        
           | dboreham wrote:
           | Consider myself very fortunate to have lived long enough that
           | I'm reading a thread where the subject is the _quality_ of
           | the code generated by software. Decades of keeping that
           | lollypop ready to be given, and now look where we are!
        
             | samatman wrote:
             | The rate at which I quote Perlis 93 is a roughly quadratic
             | function of the number of quarters since coding LLMs were
             | first deployed.
        
           | disconcision wrote:
           | > (nobody ever writes: bug introduced)
           | 
           | it's usually written "feature: ...
        
         | kraftman wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering. PMs love them though.
         | 
         | Is this a bad thing? Maybe I'm misunderstanding it, but even
         | when I'm working on my own projects, I'm usually trying to
         | solve a problem, and the technology is a means to an end to
         | solving that problem (delivering). I care that it works, and is
         | maintainable, I don't care that much about the technology.
        
           | never_inline wrote:
           | Read it as "closing a ticket" that makes sense. They don't
           | care if the code explodes after the sprint.
        
           | layer8 wrote:
           | Caring that it works and is maintainable is caring about the
           | technology.
        
         | add-sub-mul-div wrote:
         | Maintaining bad AI code is the new maintaining bad offshore
         | code.
        
         | acedTrex wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering. PMs love them though.
         | 
         | Bingo, this, so much this. Every dev i know who loves AI stuff
         | was a dev that I had very little technical respect for pre AI.
         | They got some stuff done but there was no craft or quality to
         | it.
        
           | chasd00 wrote:
           | i'm certainly skeptical of genai but your argument sounds
           | very familiar to assembler dev feelings towards c++ devs back
           | in the day.
        
             | acedTrex wrote:
             | I am not necessarily arguing against GenAI. I am sure it
             | will have somewhat similar effects to how the explosion in
             | popularity of garbage collected languages et al had on
             | software back in the 90s.
             | 
             | More stuff will get done, the barrier of entry will be
             | lower etc.
             | 
             | The craft of programming took a significant quality/care
             | hit when it transitioned from "only people who care enough
             | to learn the ins and outs of memory management can feasibly
             | do this" to "now anyone with a technical brain and a
             | business use case can do it". Which makes sense, the code
             | was no longer the point.
             | 
             | The C++ devs rightly felt superior to the new java devs in
             | the narrow niche of "ability to craft code." But that
             | feeling doesn't move the needle business wise in the vast
             | majority of circumstances. Which is always the schism
             | between large technology leaps.
             | 
             | Basically, the argument of "its worse" is not WRONG. Just,
             | the same as it did not really matter in the mid 90s. Does
             | not matter as much now, compared to the ability to "just
             | get something that kinda works."
        
           | wahnfrieden wrote:
           | You're playing status games
        
             | acedTrex wrote:
             | I mean... in a way yes. The status of being someone who
             | cares about the craft of programming.
             | 
             | In the scheme of things however, that status hardly matters
             | compared to the "ability to get something shipped quickly"
             | which is what the vast majority of people are paid to do.
             | 
             | So while I might judge those people for not meeting my
             | personal standards or bar. In many cases that does not
             | actually matter. They got something out there, thats all
             | that matters.
        
           | Delk wrote:
           | For what it's worth, a (former) team mate who was one of the
           | more enthusiastic adopters of gen AI at the time was in fact
           | a pretty good developer who knew his stuff and wrote good
           | code. He was _also_ big on delivering and productivity.
           | 
           | In terms of directly generating technical content, I think he
           | mostly used gen AI for more mechanical stuff such as drafting
           | data schemas or class structures, or for converting this or
           | that to JSON, and perhaps not so much for generating actual
           | program code. Maybe there's a difference to someone who likes
           | to have lots of program logic generated.
        
             | acedTrex wrote:
             | I have certainly used it for different mechanical things. I
             | have copilot, pay for gpt4o etc.
             | 
             | I do think there is a difference between a skilled engineer
             | using it for the mechanical things, and an engineer that
             | OFFLOADS thinking/designing to it.
             | 
             | Theres nuance everywhere, but my original comment was
             | definitely implying the people that attempt to lean on it
             | very hard for their core work.
        
               | trashtester wrote:
               | Those bad engineers who offload critical thinking to
               | copilot will be the first to leave....
        
           | simonw wrote:
           | I'm a developer who loves using AI, and I'm confident that I
           | was a capable developer producing high quality code long
           | before I started using AI tools.
        
             | mistrial9 wrote:
             | ok but you are not the sort that most of these comments are
             | talking about.. Wasn't your demo at PyCon making jaws drop
             | among hard core techies ?
        
               | williamcotton wrote:
               | Generalizing the talent and enthusiasm of your peers
               | based on the tools they enjoy to use is going to cause
               | friction.
        
               | mistrial9 wrote:
               | this is fun but also sort of startling to see
               | https://www.williamcotton.com/articles/writing-web-
               | applicati...
               | 
               | .. the exact same content for a screensaver with Todd
               | Rundgren in 1987 on the then-new color Apple Macintosh II
               | in Sausalito, California. A different screensaver called
               | "Flow Fazer" was more popular and sold many copies. The
               | rival at the time was "After Dark" .. whose founder had a
               | PhD in physics from UC Berkeley but also turned out to be
               | independently wealthy, and then one of the wealthiest men
               | in the Bay Area after the dot-com boom.
        
               | williamcotton wrote:
               | Wouldn't you know it, there's a Flowfazer screensaver app
               | for iOS! $0.99!
               | 
               | Thanks for reading my post. It's nice to know I'm not
               | writing to a complete void!
        
             | ben_w wrote:
             | If it were not for all the things in your profile, I would
             | aver that the only devs I know that think otherwise of
             | their coding abilities were students at the time.
        
             | wokwokwok wrote:
             | Hm... I think it's fair to say that as a learning tool,
             | when you are not familiar with the domain, coding
             | assistants are the extremely valuable _for everyone_.
             | 
             | I wrote a kotlin idea plugin in a day; I've never used
             | kotlin before and the jetbrains ui framework is a dogs
             | breakfast of obscure edge cases.
             | 
             | I had no skills in this area, so I could happily lean into
             | the assistance provided to get the job done. And it got
             | done.
             | 
             | ...but, I don't use coding assistants day to day in
             | languages I'm very familiar with: because they're flat out
             | bad compared to what I can do by hand, myself.
             | 
             | Even using Python, generated code is often subtly wrong and
             | it takes more time to make sure it is correct than to do it
             | by hand.
             | 
             | ...now, I would assume that a professional kotlin developer
             | would look at my plugin and go: that's a heap of garbage,
             | you won't be able to upgrade that when a new version comes
             | out (turns out, they're right).
             | 
             | So, despite being a (I hope) competent programmer I have
             | three observations:
             | 
             | 1) the code I built worked, but was an unmaintainable mess.
             | 
             | 2) it only took a day, so it _doesn't matter_ if I throw it
             | away and build the next one from scratch.
             | 
             | 3) There are extremely limited domains where that's true,
             | and I personally find myself leaning away from LLM
             | _anything_ where maintenance is a long term goal.
             | 
             | So, the point here is not that developers are good/bad:
             | 
             | It's the LLM generated code is bad.
             | 
             | It is bad.
             | 
             | It is the sort of quick, rubbish prototyping code that
             | often ends up in production...
             | 
             | ...and then gets an expensive rewrite later, if it does the
             | job.
             | 
             | The point is that if you're in the _latter_ phase of
             | working on a project that is _not_ throw away...
             | 
             | You know the saying.
             | 
             | Betty had a bit of bitter butter, so she mixed the bitter
             | butter with the better butter.
             | 
             | But it made the better butter bitter.
        
               | rednafi wrote:
               | What you're describing is the manifestation of Gell-Mann
               | Amnesia in the AI space.
        
           | Workaccount2 wrote:
           | SWE has a huge draw because frankly it's not that hard to
           | learn programming, and the bar to clear in order to land a
           | $100-120k work-from-home salary is pretty low. I know more
           | than a few people who career hopped into software engineering
           | after a lackluster non-tech career (that they paid through
           | the nose to get a degree in, but were still making $70k after
           | 5 years). By and large these people seem to just not be "into
           | it", and like you said are more about delivering than
           | actually making good products/services.
           | 
           | However, it does look like LLM's are racing to make these
           | junior devs unnecessary.
        
             | trashtester wrote:
             | > However, it does look like LLM's are racing to make these
             | junior devs unnecessary.
             | 
             | The main utility of "junior devs" (regardless of age) is
             | that they can serve as an interface to non-technical
             | business "users". Give them the right tools, and their
             | value will be similar to good business controllers or
             | similar in the org.
             | 
             | A salary of $100-$150k is really low for someone who is
             | really a competent developer. It's kept down by those
             | "junior devs" (of all ages) that apply for the same jobs.
             | 
             | Both kinds of developers will be required until companies
             | use AI in most of those roles, including the controllers,
             | the developers and the business side.
        
           | trashtester wrote:
           | > was a dev that I had very little technical respect for pre
           | AI
           | 
           | There are two interpretations of this:
           | 
           | 1) Those people are imposters
           | 
           | 2) It's about you, not them
           | 
           | I've been personally interested in AI since the early 80's,
           | neural nets since the 90's, and vigilant about "AI" since
           | Alexnet.
           | 
           | I've also been in a tech lead role for the past ~25 years. If
           | someone is talking about newer "AI" models in a nonsensical
           | way, I cringe.
        
         | jacobsenscott wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering. PMs love them though.
         | 
         | You get what you measure. Nobody measure software quality.
        
           | wahnfrieden wrote:
           | Maybe not at your workplaces, but at mine, we measured bugs,
           | change failure rate, uptime, "critical functionality" uptime,
           | regressions, performance, CSAT, etc. in addition to
           | qualitative research on quality in-team and with customers
        
             | jacobsenscott wrote:
             | That's 0.001% of the workplaces out there. But good for
             | them. Do you think it actually improved software quality,
             | or was it all busy work?
        
               | wahnfrieden wrote:
               | Yah
        
         | prophesi wrote:
         | From my experience, most of it is quickly caught in code
         | review. And after a while it occurs less and less, granted that
         | the junior developer puts in the effort to learn why their PRs
         | aren't getting approved.
         | 
         | So, pretty similar to how it was before. Except that motivated
         | junior developers will improve incredibly fast. But that's also
         | kind of always been the case in software development these past
         | two decades?
        
           | YeGoblynQueenne wrote:
           | It's interesting to see your comment currently right next to
           | that of nerdjon here:
           | 
           | https://news.ycombinator.com/item?id=41465827
           | 
           | (the two comments might have moved apart by the time you read
           | this).
           | 
           | Edit: yep, they just did.
        
         | Kiro wrote:
         | I don't think it's that clear cut. I personally think the AI
         | often delivers a better solution than the one I had in mind. It
         | always contains a lot more safe guards against edge cases and
         | other "boring" stuff that the AI has no problem adding but
         | others find tedious.
        
           | trashtester wrote:
           | If you're building a code base where AI is delivering on the
           | the details of it, it's generally a bad thing if the code
           | provided by AI provide safeguards WITHIN your code base.
           | 
           | Those kinds of safeguards should instead be part of the
           | framework you're using. If you need to prevent SQL injection,
           | you need to make sure that all access to the SQL type
           | database pass through a layer that prevents that. If you are
           | worried about the security of your point of access (like an
           | API facing the public), you need to apply safeguards as close
           | to the point of entry as possible, and so on.
           | 
           | I'm a big believer in AI generated code (over a long
           | horizon), but I'm not sure the edge case robustness is the
           | main selling point.
        
             | Kiro wrote:
             | Sounds like we're talking about different kind of
             | safeguards. I mean stuff like a character in a game ending
             | up in a broken case due to something that is theoretically
             | possible but very unlikely or where the consequence is not
             | worth the effort. An AI has no problem taking those into
             | account and write tedious safeguards, while I skip it.
        
         | godelski wrote:
         | > I wonder if the study includes the technical debt that more
         | experienced developers had to tackle after the less experienced
         | devs have contributed their AI-driven efforts.
         | 
         | It does not
         | 
         | You also may find this post from the other day more
         | illuminating[0], as I believe the actual result strongly hints
         | at what you're guessing. The study is high schoolers doing
         | math. While GPT only has an 8% error rate for the final answer,
         | it gets the steps wrong half the time. And with coding (like
         | math), the steps are the important bits.
         | 
         | But I think people evaluate very poorly when there's ill
         | defined metrics but some metric exists. They over inflate it's
         | value since it's concrete. Like completing a ticket doesn't
         | mean you made progress. Introducing technical debt would mean
         | taking a step back. A step forward in a very specific direction
         | but away from the actual end goal. You're just outsourcing work
         | to a future person and I think we like to pretend this doesn't
         | exist because it's hard to measure.
         | 
         | [0] https://news.ycombinator.com/item?id=41453300
        
         | mrighele wrote:
         | > Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering. PMs love them though.
         | 
         | For them programming is a means to an end, and I think it is
         | fine, in a way. But you cannot just ask an AI to write you
         | tiktok clone and expect to get the finished product. Writing
         | software is an iterative process, and LLMs currently used are
         | not good enough for that, because they need not only to answer
         | the questions, but at the very minimum to start asking
         | questions: "why do want to do that ?" "do you prefer this or
         | that", etc., so that they can actually extract all the
         | specification details that the user happily didn't even know he
         | needed before producing an appropriate output. (It's not too
         | different from how some independent developers has to handle
         | their clients, isn't it ?). Probably we will get there, but not
         | too soon.
         | 
         | I also doubt that current tools can keep a project
         | architecturally sound long-term, but that is just an hunch.
         | 
         | I admit though that I may be biased because I don't like much
         | tools like copilot: when I write software, I have in my mind a
         | model of the software that I am writing/I want to write, the AI
         | has another model "in mind" and I need to spend mental energy
         | understanding what it is "thinking". Even if 99/100 it is what
         | I wanted, the remaining 1% is enough to hold me back from
         | trusting it. Maybe I am using it the wrong way, who knows.
         | 
         | The AI tool that work for me would be a "voice controller AI
         | powered pair programmer": I write my code, then from time to
         | time I ask him questions on how to do something, and I can get
         | either an contextual answer depending on the code I am working
         | on, or generate the actual code if I wish so". Are there
         | already plugins working that way for vscode/idea/etc ?
        
           | liminalsunset wrote:
           | I've been playing with Cursor (albeit with a very small toy
           | codebase) and it does seem like it could do some of what you
           | said - it has a number of features, not all of which
           | necessarily generate code. You can ask questions about the
           | code, about documentation, and other things, and it can
           | optionally suggest code that you can either accept, accept
           | parts of, or decline. It's more of a fork of vscode than a
           | plugin right now though.
           | 
           | It is very nice in that it gives you a handy diffing tool
           | before you accept, and it very much feels like it puts me in
           | control.
        
             | mrighele wrote:
             | Thanks, I might give it a try
        
         | creativeSlumber wrote:
         | This. Even without AI, we have inexperienced developers rolling
         | out something that "just works" without thinking about many of
         | the scaling/availability issues. Then you have to spend 10x the
         | time fixing those issues.
        
           | Sakos wrote:
           | If inexperienced developers can commit code like that to
           | master, then there's a culture issue, a process issue or
           | both. This isn't a problem with AI.
        
         | theflyinghorse wrote:
         | > I've personally seen more interest in AI in devs that have
         | little interest in technology, but a big interest in
         | delivering.
         | 
         | If I don't deliver my startup burns in a year. In my previous
         | role if I didn't deliver the people who were my reports did not
         | get their bonuses. The incentives are very clear, and have
         | always been clear - deliver.
        
           | rurp wrote:
           | Succesful companies aren't built in a sprint. I doubt there
           | has ever been a successful startup that didn't have at least
           | some competent people thinking a number of steps ahead.
           | Piling up tech debt to hit some short term arbitrary goals is
           | not a good plan for real success.
        
             | theflyinghorse wrote:
             | These are platitudes.
             | 
             | Here's a real example of delivering something now without
             | worrying about being the best engineer I can. I have 2
             | CSRs, They are swamped with work and we're weeks away from
             | bringing another CSR on board. I find a couple of time
             | consuming tasks that are easy to automate and build those
             | out separately as one-off jobs that work well enough.
             | Instantly it's a solid time gain & stress reducer to CSRs.
             | Are my one-off automation tasks a long term solution? No.
             | Do I care? Not at the moment, and my ego can take a hit for
             | the time being.
        
         | jonnycomputer wrote:
         | Code quality is the hardest thing to measure. Seems like they
         | were measuring commits, pull-requests, builds, and build
         | success rate. This sort of gets at that, but is probably
         | inadequate.
         | 
         | The few attempts I've made at using genAI to make large-scale
         | changes to code have been failures, and left me in the dark
         | about the changes that were made in ways that were not helpful.
         | I needed suggestions to be in much smaller chunks. paragraph
         | sized. Right now I limit myself to using the genAI line
         | completion suggestions in Pycharm. It very often guesses my
         | intentions and so actually is helpful, particularly when
         | laboriously typing out lots of long literals, e.g. keys in a
         | dictionary.
        
         | elric wrote:
         | I don't remember who said it, but "AI generated code turns
         | every developer into a legacy code maintainer". It's pithy and
         | a bit of an exaggeration, but there's a grain of truth in there
         | that resonates with me.
        
         | EvkoGS wrote:
         | >Also, I've personally seen more interest in AI in devs that
         | have little interest in technology, but a big interest in
         | delivering. PMs love them though.
         | 
         | You are not a fucking priest in the temple of engineering, go
         | to fucking CS dep at the local uni and be the one and preach it
         | there. You are worker of the company with customers, which pays
         | you a salary from customers money.
        
       | wouldbecouldbe wrote:
       | I'm guiding a few and sometimes they write pretty good code with
       | the help of GPT but then in meetings have trouble understanding
       | and explaining things.
       | 
       | I think it's a big productivity boost, but also a chance that the
       | learning rate might actually be significantly slower.
        
       | GoToRO wrote:
       | For me AI just brought back documentation. All new frameworks
       | lack documentation big time. The last good one for me was a DOS
       | book! I don't think newer developers even have an idea of what
       | good documentation looks like.
       | 
       | Even so, AI will propose different things at different times and
       | you still need an experienced developer to make the call. In the
       | end it replaces documentation and typing.
        
         | choilive wrote:
         | I think AI just made documentation more valuable.
         | 
         | For public facing projects - your documentation just became
         | part of the LLM's training data, so its now extra important
         | your documentation is thorough and accurate because you will
         | have a ton of developers getting answers from that system.
         | 
         | For private projects, your documentation can now be fed into a
         | finetuning dataset or a RAG system, achieving the same effect.
        
         | jakub_g wrote:
         | Every now and then there's a HN discussion "how do you manage
         | internal documentation" where most commenters write something
         | like "there's no point writing documentation because it quickly
         | becomes outdated". (There were two such threads in just last
         | days). Might explain why nothing is documented anymore.
        
           | jcgrillo wrote:
           | Maybe that also explains why (approximately) nothing really
           | works right.
        
         | tensor wrote:
         | Yes, it can both help you write it but also, if you _start_
         | with the documentation, e.g. the comment describing what
         | function does, AI becomes orders of magnitude better and
         | actually helping write the function, so it actually forces
         | developers to better document their code!
        
           | Sakos wrote:
           | I've noticed the same thing. I can get great results by being
           | detailed in my comments and/or docstrings. A lot of the time
           | I don't want the AI actually "thinking" for itself.
        
         | vinibrito wrote:
         | Oh hey I really love writing great docs, of course not always I
         | have the opportunity to do so, but could you point me to one
         | you consider great? Can be anything, no need to be some modern
         | live docs. I want to see what is in the past that was so great
         | but we lost, maybe I can incorporate some of it.
        
           | GoToRO wrote:
           | I don't have any.
           | 
           | I remember that book explain the command, what the purpose of
           | the command was, the typical scenario for why you would need
           | such command.
           | 
           | It explained the options. No silly explanation like "-sort"
           | sorts the output.
           | 
           | It explained the return values also in detail.
           | 
           | Explained the errors also in detail and what might cause the
           | error.
           | 
           | Most functions today are "explained" by reordering the words
           | in the function name: "canUpdate()" returns true if $x can
           | update.
        
       | null_investor wrote:
       | They also added lots of technical debt as I'm sure they used the
       | AI to generate tests and some of those tests could be actually
       | testing bugs as the correct behavior.
       | 
       | I've already fixed a couple of tests like this, where people
       | clearly used AI and didn't think about it, when in reality it was
       | testing something wrong.
       | 
       | Not to mention the rest of the technical debt added... looking at
       | productivity in software development by amount of tasks is so
       | wrong.
        
         | onlyrealcuzzo wrote:
         | > They also added lots of technical debt as I'm sure they used
         | the AI to generate tests and some of those tests could be
         | actually testing bugs as the correct behavior.
         | 
         | Let's not forget that developers some times do this, too...
        
         | randomdata wrote:
         | _> when in reality it was testing something wrong._
         | 
         | Must have seen AI write the implementation as well?
         | 
         | If you're still cognizant of what you're writing on the
         | implementation side, it's pretty hard to see a test go from
         | failing to passing if the test is buggy. It requires you to
         | independently introduce the same bug the LLM did, which, while
         | not completely impossible, is unlikely.
         | 
         | Of course, humans are prone to not understanding the
         | requirements, and introducing what isn't really a bug in the
         | strictest sense but rather a misfeature.
        
           | Jensson wrote:
           | > it's pretty hard to see a test go from failing to passing
           | 
           | Its pretty easy to add a passing test and call it done
           | without checking if it actually fails in the right
           | circumstances, and then you will get a ton of buggy tests.
           | 
           | Most developers don't do the start out at failing and then to
           | passing ritual, especially junior ones who copies code from
           | somewhere instead of knowing what they wrote.
        
       | muglug wrote:
       | This is a decently-thorough study, using PRs as a productivity
       | metric while also tracking build failures (which remained
       | constant at MSFT but increased at Accenture).
       | 
       | Would love to see it replicated by researchers at a company that
       | does not have a clear financial interest in the outcome (the
       | corresponding author here was working at Microsoft Research
       | during the study period).
       | 
       | > Before moving on, we discuss an additional experiment run at
       | Accenture that was abandoned due to a large layoff affecting 42%
       | of participants
       | 
       | Eek
        
       | lolinder wrote:
       | The most interesting thing about this study for me is that when
       | they break it down by experience levels, developers who are above
       | the median tenure show no statistically significant increase in
       | 'productivity' (for some bad proxies of productivity), with the
       | 95% confidence intervals actually dipping deep into the negatives
       | on all metrics (though leaning slightly positive).
       | 
       | This tracks with my own experience: Copilot is nice for resolving
       | some tedium and freeing up my brain to focus more on deeper
       | questions, but it's not as world-altering as junior devs describe
       | it as. It's also frequently subtly wrong in ways that a newer dev
       | wouldn't catch, which requires me to stop and tweak most things
       | it generates in a way that a less experienced dev probably
       | wouldn't know to. A few years into it I now have a pretty good
       | sense for when to use Copilot and when not to--so I think it's
       | probably a net positive for me now--but it certainly wasn't
       | always that way.
       | 
       | I also wonder if the possibly-decreased 'productivity' for more
       | senior devs stems in part from the _increase_ in  'productivity'
       | from the juniors in the company. If the junior devs are producing
       | more PRs that have more mistakes and take longer to review, this
       | would potentially slow down seniors, reducing their own
       | productivity gains proportionally.
        
       | sum1ren wrote:
       | When I'm using genai to write some code for me, I lose the
       | internal mental state of what my code is doing.
       | 
       | As such, when I do have to debug problems myself, or dream up
       | ideas of improvements, I no longer can do this properly due to
       | lack of internal mental state.
       | 
       | Wonder how people who have used genai coding successfully get
       | around this?
        
         | cageface wrote:
         | This is the problem I have with it. It breaks me out of the
         | flow state that's so important to writing good code.
        
         | Sakos wrote:
         | Go over the code again and again like you would if you'd
         | written it yourself. Keep iterating on the code yourself
         | without having the AI generate everything. In a current project
         | I have everything internalised because I'm constantly going
         | through the code and improving upon it myself (and using the AI
         | to do boilerplate), even though much of it was initially
         | generated. I'll still have the AI generate code in plenty of
         | places, but I don't let it take over the thinking for me unless
         | I'm unsure about something, then I ask it for possible
         | solutions and ideas, then I go over those solutions myself.
        
         | LouisSayers wrote:
         | I use Claude and there's a couple things I'd suggest.
         | 
         | 1) You need to be the boss with the AI being your assistant.
         | You are now a project manager coming up with strict
         | requirements of what you'd like done. Your developer (AI) needs
         | context, constraints and needs to be told exactly what you'd
         | like created without necessarily diving into the technical
         | details.
         | 
         | 2) Planning - you need to have a high level plan of roughly how
         | you'd like to structure your code. Think of it like you're
         | drawing the outline and AI is filling in the gaps.
         | 
         | 3) Separation of concerns - use software principles to drive
         | your code design. Break problems down into separate components,
         | AI is good at filling in components that are well defined.
         | 
         | Once you change your thinking to a higher level, then you can
         | maintain flow state. Of course the AI isn't perfect and will
         | make mistakes - you do need to question it as you go. The more
         | creative you become with a solution the harder time the AI will
         | have and sometimes you'll have to break out and fix things up
         | yourself.
         | 
         | For me it's a huge productivity boost.
        
       | heisenberg1 wrote:
       | This is obvious. Right, of course you get an increase in
       | productivity, especially as a junior - when current AI is able to
       | solve leetcode.
       | 
       | BUT I think a lot of people mentioned that, you get code - that
       | the person which wrote it do not understand. So the next time you
       | get a bug there, good luck fixing it.
       | 
       | My take so far. AI is great, but only for non critical, non core
       | code. Everything that is done for plotting and scripting is
       | awesome (which can take days to implement and in minutes with AI)
       | - but core lib functions - wouldn't outsource it to the AI right
       | now.
        
       | noobermin wrote:
       | Can someone potentially smarter than me explain how the data,
       | which in table I clearly shows the majority of the means for each
       | experiment metric being _less_ than the SD could even hope to be
       | salvaged? Taken blindly, the results are simply unbelieveable to
       | outright lying, the sort of thing you see submitted to garbage
       | open access journals. The text describing model they employ
       | afterwards is not convincing enough for me and seems light on
       | details. I mean, wouldn 't any reasonable reviewer demand more?
       | 
       | I know preprints don't need polish but this is even below the
       | standard of a preprint, imo.
        
         | smokel wrote:
         | At least they acknowledge this:
         | 
         | "However, the table also shows that for all outcomes (with the
         | exception of the Build Success Rate), the standard deviation
         | exceeds the pre-treatment mean, and sometimes by a lot. This
         | high variability will limit our power in our experimental
         | regressions below."
         | 
         | What I find even stranger is that the values in the "control"
         | and "treatment" columns are so similar. That would be highly
         | unlikely given the extreme variability, no?
        
       | smokel wrote:
       | Interestingly, they compare number of pull requests as a
       | statistic for productivity. Not that I know of a better metric,
       | but I wonder if this is an accurate metric. It seems similarly
       | misguided as looking at lines of code.
       | 
       | If an AI tool makes me more productive, I would probably either
       | spend the time won browsing the internet, or use it to attempt
       | different approaches to solve the problem at hand. In the latter
       | case, I would perhaps make more reliable or more flexible
       | software. Which would also be almost impossible to measure in a
       | scientific investigation.
       | 
       | In my experience, the differences in developer productivity are
       | so enormous (depending on existing domain knowledge, motivation,
       | or management approach), that it seems pretty hard to make any
       | scientific claim based on looking at large groups of developers.
       | For now, I prefer the individual success story.
        
       | ergonaught wrote:
       | The result is "less experienced people got more stuff done". I do
       | not see an assessment of whether the stuff that got done was well
       | done.
       | 
       | The output of these tools today is unsafe to use unless you
       | possess the ability to assess its correctness. The less able you
       | are to perform that assessment, the more likely you are to use
       | these tools.
       | 
       | Only one of many problems with this direction, but gravity sucks,
       | doesn't it.
        
       | arexxbifs wrote:
       | My hunch - it's just a hunch - is that LLM-assisted coding is
       | detrimental to one's growth as a developer. I'm fairly certain it
       | can only boost productivity to a certain level - one which may be
       | tedium for more senior developers, but formative for juniors.
       | 
       | My experience is that the LLM isn't just used for "boilerplate"
       | code, but rather called into action when a junior developer is
       | faced with a fairly common task they've still not (fully)
       | understood. The process of experimenting, learning and
       | understanding is then largely replaced by the LLM, and the real
       | skill becomes applying prompt tweaks until it looks like stuff
       | works.
        
         | arealaccount wrote:
         | Why I recommend something like CoPilot over ChatGPT to juniors
         | wanting to use AI.
         | 
         | At least Copilot you're still more or less driving, whereas
         | ChatGPT you're more the passenger and not growing intuition.
        
         | DanHulton wrote:
         | I was really hoping this study would be exploring that. Really,
         | it's examining short-term productivity gains, ignoring long-
         | term tech debt that can occur, and _completely_ ignoring
         | effects on the growth of the software developers themselves.
         | 
         | I share your hunch, though I would go so far as to call it an
         | informed, strong opinion. I think we're going to pay the price
         | in this industry in a few years, where the pipeline of "clueful
         | junior software developers" is gonna dry way up, replaced by a
         | firehose of "AI-reliant junior software developers", and the
         | distance between those two categories is a GULF. (And of
         | course, it has a knock-on effect on the number of clueful
         | intermediate software developers, and clueful senior software
         | developers, etc...)
        
         | diob wrote:
         | I think it can be abused like anything else (copy paste from
         | stack overflow until it works).
         | 
         | But for folks who are going to be successful with or without
         | it, it's a godsend in terms of being able to essentially ask
         | stack overflow questions and get immediate non judgemental
         | answers.
         | 
         | Maybe not correct all the time, but that was true with stack
         | overflow as well. So as always, it comes back to the
         | individual.
        
         | throwaway314155 wrote:
         | My experience has been that indeed, it is detrimental to
         | juniors. But unlike your take, it is largely a boon to
         | experienced developers. That you suggest "tedium" is involved
         | for more senior developers suggests to me that you haven't
         | given the tooling a fair chance or work with a relatively
         | obscure technology/language.
        
           | layer8 wrote:
           | I think you've misunderstood the GP. They are saying AI is
           | useful to seniors for tasks that would otherwise be tedious,
           | but doing those tedious tasks by hand would be formative for
           | juniors, and it is detrimental to their growth when they do
           | them using AI.
        
             | throwaway314155 wrote:
             | Ah yeah you're right. In my defense, that sentence reads
             | ambiguously without a couple of re-reads. There's a (not
             | actually) implied double negative in there, or something,
             | which threw me off.
             | 
             | Thanks for pointing it out with words instead of downvotes.
        
         | Workaccount2 wrote:
         | With the progress LLM's having been making in the last two
         | years, is it actually a bad bet to not want to really get into
         | it?
         | 
         | How many contemporary developers have no idea how to write
         | machine code, when 50 years ago it was basically mandatory if
         | you wanted to be able to write anything?
         | 
         | Are LLM's just going to become another abstraction crutch
         | turned abstraction solid pillar?
        
           | arexxbifs wrote:
           | Abstraction is beneficial and profitable up to a certain
           | point, after which upkeep gets too hard or expensive, and
           | knowledge dwindles into a competency crisis - for various
           | reasons. I'm not saying we are at that point yet, but it
           | feels like we're closing in on it (and not just in software
           | development). 50 years ago isn't even 50 years ago anymore,
           | if you catch my drift: In 1974, the real king of the hill was
           | COBOL - a very straight-forward abstraction.
           | 
           | I'm seeing a lot of confusion and frustration from beginner
           | programmers when it comes to abstraction, because a lot of
           | abstractions in use today just incur other kinds of
           | complexity. At a glance, React for example can seem
           | deceptively easy, but in truth it requires understanding of a
           | lot of advanced concepts. And sure, a little knowledge can go
           | a long way in E.G. web development, but to really write
           | robust, performant code you have to know a lot about the
           | browser it runs in, not unlike how great programmers of
           | yesteryear had entire 8-bit machines mapped out in their
           | heads.
           | 
           | Considering this, I'm not convinced the LLM crutch will ever
           | solidify into a pillar of understanding and maintainable
           | competence.
        
             | skydhash wrote:
             | And it really helps if you have a global view across the
             | abstraction stack, even if you don't dive in the details of
             | the implementation. I still think that having some computer
             | organization/OS architecture knowledge would be great for
             | developers, at least to know that memory is not free, even
             | though we have GBs of it and that having an internet
             | connection is not an integral part of the computer like the
             | power supply.
        
           | jprete wrote:
           | LLMs aren't an abstraction, even a very leaky one, so the
           | analogies with compilers and the like really fall flat for
           | me.
        
         | tensor wrote:
         | I think it really depends on the users. The same people who
         | would just paste stackoverflow code until it seems to work and
         | call it a day will abuse LLMs. However, those of us who like to
         | know everything about the code we write will likely research
         | anything an LLM spits out that we don't know about.
         | 
         | Well, at least that's how I use them. And to throw a counter to
         | your hypothesis, I find that sometimes the LLM will use
         | functions or library components that I didn't know of, which
         | actually saves me a lot of time when learning a new language or
         | toolkit. So for me, it actually accelerates learning rather
         | than retarding it.
        
         | pphysch wrote:
         | It all depends of one is using it scientifically, i.e. having a
         | hypothesis for the generated code before it exists, so that you
         | can evaluate it.
         | 
         | When used scientifically, coding copilots boost productivity
         | AND skills.
        
         | saintradon wrote:
         | Like any other tool, it depends on how you use it.
        
         | JackMorgan wrote:
         | For myself it's an incredible tool for learning. I learn both
         | broader and deeper using chat tools. If anything it gives me a
         | great "sounding board" for exploring a subject and finding
         | additional resources.
         | 
         | E.g last night I setup my first Linux raid. A task that isn't
         | too hard, but following a tutorial or just "reading the docs"
         | isn't particularly helpful given it takes a few different tools
         | (mount, umount, fstab, blkid, mdadm, fdisk, lsblk, mkfs) and
         | along the way things might not follow the exact steps from a
         | guide. I asked dozens of questions about each tool and step,
         | where previously I would have just "copy paste and prayed".
         | 
         | Two nights ago I was similarly able to fully recover all my
         | data from a failed ssd also using chatgpt to guide my learning
         | along the way. It was really cool to tackle a completely new
         | skill having a "guide" even if it's wrong 20% of the time,
         | that's way better than the average on the open Internet.
         | 
         | For someone who loves learning, it feels like thousand league
         | boots compared to just endlessly sifting through internet crap.
         | Of course everything it says is suspect, just like everything
         | else on the Internet, but boy it cuts out a lot of the hassle.
        
           | iLoveOncall wrote:
           | Okay but this is not programming, more about an enhanced
           | tutorial. This isn't at all what the original commenter is
           | talking about.
        
           | manmal wrote:
           | You've given two examples for "broad", but none for "deep".
           | I've also used LLMs for setting up my homelab, and they were
           | really helpful since I was basically at beginner level in
           | most linux admin topics (still am). But trying to eg setup
           | automatic snapshot replications for my zfs pool had me go
           | back to reading blog posts, as ChatGPT just couldn't provide
           | a solution that worked for me.
        
             | Spivak wrote:
             | I think one of the catch-22s of LLMs is that using it as a
             | fancy search index (which is the dev assistant use-case) is
             | that the information it surfaces is hugely dependent on
             | what words you use and it matches energy. If you don't know
             | the words you'll get very beginner oriented content and you
             | _can_ get it to surface deeper knowledge iff you know the
             | shibboleths, but it 's annoying. One dumb trick that's been
             | unreasonably useful is just copy-pasting barely-related
             | source code, but at the level you're trying to understand
             | and then just asking an unrelated question-- just yank that
             | search vector way over to the region where you think the
             | good information lives.
        
           | Delk wrote:
           | My approach is typically to follow some kind of a guide or
           | tutorial _and_ to look into the man pages or other
           | documentation for each tool as I go, to understand what the
           | guide is suggesting.
           | 
           | That's how I handled things e.g. when I needed to resize a
           | partition and a filesystem in a LVM setup. Similarly to your
           | RAID example, doing that required using a bunch of tools on
           | multiple levels of storage abstraction: GPT partitions, LUKS
           | tools, LVM physical and logical volumes, file system tools. I
           | was familiar with some of those but didn't remember the
           | incantations by heart, and for others I needed to learn new
           | tools or concepts.
           | 
           | I think I use a similar approach in programming when I'm
           | getting into something I'm not quite familiar with. Stack
           | Overflow answers and tutorials help give the outline of a
           | possible solution. But if I don't understand some of the
           | details, such as what a particular function does, I google
           | them, preferring to get the details either from official
           | documentation or from otherwise credible-sounding accounts.
        
       | 29athrowaway wrote:
       | The study doesn't cover the long term effects of using generative
       | AI on a project, which is the deskilling of your workforce.
       | 
       | Because development will become an auction-like activity where
       | the one that accepts more suggestions wins.
        
         | wrink wrote:
         | I think this is right. Just have to jump ship before it all
         | explodes and people wonder what happened
         | 
         | Similar to gaming the stock price for a couple quarters as
         | C-level, but now with more incentive for this sort of behavior
         | at IC level
        
           | 29athrowaway wrote:
           | You cannot jump ship now that every institution has been
           | assimilated by the Borg, aka MBAs.
           | 
           | They assimilate companies and leave a bloated hollow mess
           | behind.
           | 
           | https://www.youtube.com/watch?v=P4VBqTViEx4
        
         | jillesvangurp wrote:
         | I look at this very differently. There are a lot of grumpy
         | people jealously guarding their "skills" and artisanal coding
         | prowess getting really annoyed at the juniors that come in and
         | devalue what they do by just asking an AI to do the same thing
         | and then moving on with their day. Young people are more
         | mentally agile and most young people are now growing up with
         | LLMs as a tool chain that was always there.
         | 
         | I'm actually fairly senior (turning 50 next month) and I notice
         | an effect that AI is having on my own productivity: I now take
         | on mini projects that I used to delegate or avoid doing because
         | they would take too much time or be too tedious. That's not the
         | case anymore. The number of things I can use chat gpt for is
         | gradually expanding. I notice that I'm skilling up a lot more
         | rapidly as well.
         | 
         | This is great because if you want to stay relevant, you need to
         | adapt to modern tools and technology. That's nothing new of
         | course. Changes are a constant in our industry. And there
         | always are a lot of people that learn some tricks when they are
         | young and then never learn anything new again. If you are lucky
         | some of that stuff stays relevant for a few decades. But mostly
         | a lot of stuff gets unceremoniously dumped by younger
         | generations.
         | 
         | The ability to use LLMs is becoming an important skill in
         | itself and one that is now part of what I look for in
         | candidates (including older ones). I don't have a lot of
         | patience for people refusing to use tools that are available to
         | them. Tell me how you use tools to your advantage; not how you
         | have a tool aversion or are unwilling to learn new things.
        
           | anotherburner23 wrote:
           | "Tell me how you use tools to your advantage; not how you
           | have a tool aversion or are unwilling to learn new things" is
           | a false binary. It leaves out the possibility that the tool
           | in question is not suited for its purpose.
        
           | 29athrowaway wrote:
           | At the end of the day, all the layers of abstraction will be
           | removed... interpreters, transpilers, compilers, microcode,
           | instruction sets... all the layers of convenience and APIs
           | created for humans and the overhead they introduce will be
           | gone.
           | 
           | It will be a machine game, just like assembly is mostly
           | compiler generated today.
           | 
           | The AI will produce faster, smaller, more power efficient and
           | more secure binaries than a human ever can.
           | 
           | The AI will learn all the compilation steps, fuse everything
           | into a simplified pipeline and what we call compilers today
           | will be erased from reality.
        
       | einpoklum wrote:
       | Reminds me of a situation I've been in a few times already:
       | Dev: Hey einpoklum, how do I do XYZ?        Me:  Hmm, I think I
       | remember that... you could try AB and then C.        Dev: Ok, but
       | isn't there a better/easier way? Let me ask ChatGPT.        ...
       | Dev: Hey einpoklum, ChatGPT said I should do AB and then C.
       | Me:  Let me have a look at that for a second.        Me:  -Right,
       | so it's just what I read on StackOverflow about this, a couple of
       | years ago.
       | 
       | Sometimes it's even the answer that _I_ wrote on StackOverflow
       | and then I feel cheated.
        
         | slt2021 wrote:
         | true, ChatGPT even imports libraries and configs that are 4-5
         | year outdated.
        
           | einpoklum wrote:
           | I didn't mean to say the answer is outdated... I try not to
           | give people outdated answers :-\
        
             | Viliam1234 wrote:
             | Neither do I, but those answers later become outdated
             | anyway. :D
        
         | meiraleal wrote:
         | > Sometimes it's even the answer that _I_ wrote on
         | StackOverflow and then I feel cheated.
         | 
         | What's next? Royalties from companies that used the answer in
         | their solutions? Do you also want copyright of this comment?
        
           | einpoklum wrote:
           | > What's next?
           | 
           | Perhaps developing a little sense of humor? :-\
        
             | meiraleal wrote:
             | if having fun is what makes you happy yeah! That's great
             | brother! Sharing is caring and I'm glad you are so smart
             | that your work is the giant's shoulders other people make
             | use of
        
       | zitterbewegung wrote:
       | I am an average developer with more than five years experience in
       | Python. I was using chatgpt to create prototypes of what to do in
       | something I was familiar with and was able to debug the task to
       | make it work. I wasn't specific enough to specify the epaper
       | display had seven colors instead of black and white.
       | 
       | When I was using chatgpt to do qualifiers for a CTF called Hack A
       | Sat at defcon 31 I could not get anything to work such as gnu
       | radio programs.
       | 
       | If you have the ability to debug then I have experienced that it
       | is productive but when you don't understand you run into
       | problems.
        
       | yieldcrv wrote:
       | > Notably, less experienced developers showed higher adoption
       | rates and greater productivity gains.
       | 
       | This is what I've seen too, I don't think less experienced
       | developers have gotten better in their understanding of anything
       | just more exposed and quicker, while I do think more experience
       | developers have stagnated
        
         | dpflan wrote:
         | > while I do think more experience developers have stagnated
         | 
         | Is this because they are not using coding assistants? Are they
         | resistant to using them? I have to say that the coding
         | assistant is helpful; it is an ever-present rubber duck that
         | can talk back with useful information.
        
           | yieldcrv wrote:
           | Across teams and organizations what I've seen this year is
           | that the "best" developers haven't looked. The proverbial
           | rockstars with the most domain knowledge have never gotten
           | around to AI and LLMs at all.
           | 
           | This is compounded by adherence to misguided corporate
           | policies that broadly prohibit use of LLMs but are meant to
           | only be about putting trade secrets into the cloud, not
           | distinguishing between cloud vs locally run language models.
           | Comfortable people would never challenge this policy with
           | critical thinking, and it requires special interest to look
           | at locally run language models, even just to choose which one
           | to run.
           | 
           | Many developers have not advocated for more RAM on their
           | company issued laptop to run better LLMs.
           | 
           | and I haven't seen any internal language model that the
           | company is running in their intranet. But it would be cool if
           | there was a huggingface-style catalogue and server farm
           | companies could have and let their employees choose models to
           | prompt, always having the latest models to load.
        
       | simpleranchero wrote:
       | Microsoft people in research team proving Microsoft tools are
       | good. Elsevier will now do ads in research papers.
        
         | Bjorkbat wrote:
         | This is far, far more rigorous than the experiment Microsoft
         | behind Microsoft's claim that Copilot made devs 55% faster.
         | 
         | The experiment in question was to split 95 devs into two groups
         | and see how long it took each group to setup a web server in
         | Javascript. Control took a little under 3 hours on average, the
         | copilot group took 1 hour and 11 minutes on average.
         | 
         | https://github.blog/news-insights/research/research-quantify...
         | 
         | And it is thanks to this weak experiment that Github proudly
         | boasts that Copilot makes devs 55% faster.
         | 
         | By contrast the conclusion that Copilot makes devs ~25% more
         | productive seems reasonable, especially when you read the
         | actual paper and find out that among senior devs the
         | productivity gains are more marginal.
        
           | mistrial9 wrote:
           | what do these three things have in common?
           | 
           | * control the agenda items in a formal meeting
           | 
           | * fill a fixed amount of time in an interview with no
           | rebuttal
           | 
           | * design the benchmark experiments and the presentation of
           | the results
        
       | ang_cire wrote:
       | I sometimes wonder about whether the decline in IT worker quality
       | is down to companies trying to force more and more roles onto
       | each worker to reduce headcount.
       | 
       | Developers, Operations, and Security used to be dedicated roles.
       | 
       | Then we made DevOps and some businesses took that to mean they
       | only needed 2/3 of the headcount, rather than integrating those
       | teams.
       | 
       | Then we made DevSecOps, and some businesses took that to mean
       | they only needed 1/3 the original roles, and that devs could just
       | also be their operations and appsec team.
       | 
       | That's not a knock on shift-left and integrated operations
       | models; those are often good ideas. It's just the logical outcome
       | of those models when execs think they can get a bigger bonus by
       | cutting costs by cutting headcounts.
       | 
       | Now you have new devs coming into insanely complex n-microservice
       | environments, being asked to learn the existing codebase, being
       | asked to learn their 5-tool CI/CD pipelines (and that ain't being
       | taught in school), being asked to learn to be DBAs, and also to
       | keep up a steady code release cycle.
       | 
       | Is anyone really surprised they are using ChatGPT to keep up?
       | 
       | This is going to keep happening until IT companies stop cutting
       | headcounts to make line go up (instead of good business
       | strategy).
        
         | yifanl wrote:
         | They're cutting headcount because they have no conception of
         | how to make a good product, so reducing costs is the only of
         | making the bottom line go up.
         | 
         | That's across the board, from the startups whose business plan
         | is to be acquired at all costs, to the giant tech companies,
         | whose business plan is to get monopoly power first, then figure
         | out how to extract money later.
        
           | goatlover wrote:
           | Failures of capitalism that probably need regulation. If the
           | middle class and workers are to be protected.
        
             | 01HNNWZ0MV43FF wrote:
             | Would UBI and LVT do the trick? I'm okay with minimum wages
             | on the idea that a democratic government is the biggest
             | possible de facto labor union, but in general I don't want
             | the government making too many rules about how you can hire
             | and fire people
        
             | WalterBright wrote:
             | The city of Seattle decided that gig delivery drivers
             | needed to be protected. They passed a minimum wage for
             | them. The income of gig drivers promptly dropped, as the
             | rise in prices corresponded with a drop in customers.
             | 
             | Who regulates the regulators?
        
               | malfist wrote:
               | You need a citation for that claim. And something more
               | than just "the week after this went into effect it
               | reduced sale volume"
               | 
               | And besides, what's the alternative here? Don't protect
               | employees? Let them work below minimum wage?
        
               | WalterBright wrote:
               | https://mustreadalaska.com/labor-day-cautionary-tale-for-
               | gig...
        
               | malfist wrote:
               | Leaving aside the relevance of an Alaskan newspaper
               | talking about local Seattle politics, their only source
               | is a news article from Seattle written the week of the
               | law taking effect.
               | 
               | As I said in my original comment, show me something that
               | isn't from the first couple of weeks after it took
               | effect. Preferably something scholarly, not just
               | anecdotes from a newspaper
        
               | WalterBright wrote:
               | If you go to news.google.com, and type in "seattle gig
               | worker law" and you'll find plenty of articles about it.
        
               | djbusby wrote:
               | Why did the prices for Uber/Lyft rise everywhere else
               | too?
               | 
               | It wasn't Seattle laws that did that.
               | 
               | It's that those companies needed to go from Growth-Mode
               | to Margin-Mode. They could no longer sell VC dollars for
               | dimes.
        
               | WalterBright wrote:
               | Yes, it was the Seattle laws that did it locally. The
               | food delivery gig drivers were not Uber/Lyft.
        
               | gruez wrote:
               | >Why did the prices for Uber/Lyft rise everywhere else
               | too?
               | 
               | Presumably it rose in Seattle higher/faster than it would
               | otherwise. The source that he provided in a sibling
               | comment says sales dropped "immediately", which seems to
               | corroborate this. It's lazy to argue "well prices rose
               | elsewhere too so the minimum wage law couldn't possibly
               | have had an impact"
        
               | djbusby wrote:
               | Well, I don't think I'm lazy. IIRC prices were already
               | moving up and the rent-a-car-apps were exiting. And
               | Uber/Lyft were very far on funding, needing some margin.
               | And then there was this other trigger event of worker
               | pay. Which is a nice corporate spin opportunity. And
               | we've seen that pattern 100s of times (blaming workers
               | for price increase).
        
               | bumby wrote:
               | > _Who regulates the regulators?_
               | 
               | In a healthy democracy, the civic-minded voters do.
        
               | WalterBright wrote:
               | That doesn't work out very well. The voters are too far
               | removed from it, and the instruments the voters have are
               | far too blunt.
        
               | bumby wrote:
               | That's why i said "healthy" and "civic-minded." I think
               | there's some truth to the saying "You get the government
               | you deserve"
               | 
               | It still seems to be better than all the alternatives.
        
               | makk wrote:
               | > Who regulates the regulators?
               | 
               | The voters and their representatives, if they put their
               | minds to it.
        
             | numpad0 wrote:
             | Yeah this after all. Private corporations exist to make
             | money. They minimize investment and maximize returns. They
             | progressively suppress wages and inflate profits. Clever
             | individual choices and self discounts merely create
             | temporary competitive advantages against other poor
             | laborers in the market.
             | 
             | If you manage to secure the bag that way and exit that
             | class altogether, good for you, but that solves nothing for
             | the rest. There's no be all end all threshold that everyone
             | can just stay above and stay ahead of inflation.
        
             | gruez wrote:
             | What would this mean in practice? Forcing companies to
             | justify layoffs? Mandating minimum amount of people in
             | frontend/backend/devops/operations/security roles?
        
           | WalterBright wrote:
           | > They're cutting headcount because they have no conception
           | of how to make a good product, so reducing costs is the only
           | of making the bottom line go up.
           | 
           | The field is wide open for a startup to do it right. Why not
           | start one?
        
             | malfist wrote:
             | Because the field isn't even. Monopoly or oligopoly power
             | works to prevent new competitors while at the same time
             | stagnating their offerings.
             | 
             | Look at the explosion of browsers and their capabilities
             | after the IE monopoly was broken.
        
             | Buttons840 wrote:
             | Well, either (1) our free market is not healthy and the
             | ability to form new companies that do better is weak and
             | feeble, or (2) the current companies are doing about as
             | well as possibe and it is hard to out compete them.
             | 
             | If it's the latter (number 2), then we need to start asking
             | why American companies "doing about as well as possible"
             | are incapable of producing secure and reliable software.
             | Being able to produce secure and reliable software, in
             | general and en masse, seems like a useful ability for a
             | nation.
             | 
             | Reminds me of our national ability to produce aircraft;
             | how's the competition in that market working out? And are
             | we getting better or worse at producing aircraft?
        
               | WalterBright wrote:
               | Companies deliver what customers are willing to pay for.
               | 
               | If customers are willing to pay for X, and no companies
               | make X available, you have a great case to make to a
               | venture capitalist.
               | 
               | BTW, in every company I've worked for, the employees
               | thought management was stupid and incompetent. In every
               | company I've run, the employees thought I was stupid and
               | incompetent. Sometimes these people leave and start their
               | own company, and soon discover their employees think
               | they're stupid and incompetent.
               | 
               | It's just a fact of life in any organization.
               | 
               | It's also a fact of life that anyone starting a business
               | learns an awful lot the hard way. Consider Senator George
               | McGovern (D), who said it best:
               | 
               | George McGovern's Mea Culpa
               | 
               | "In retrospect, I wish I had known more about the hazards
               | and difficulties of such a business, especially during a
               | recession of the kind that hit New England just as I was
               | acquiring the inn's 43-year leasehold. I also wish that
               | during the years I was in public office, I had had this
               | firsthand experience about the difficulties business
               | people face every day. That knowledge would have made me
               | a better U.S. senator and a more understanding
               | presidential contender. Today we are much closer to a
               | general acknowledgment that government must encourage
               | business to expand and grow. Bill Clinton, Paul Tsongas,
               | Bob Kerrey and others have, I believe, changed the debate
               | of our party. We intuitively know that to create job
               | opportunities we need entrepreneurs who will risk their
               | capital against an expected payoff. Too often, however,
               | public policy does not consider whether we are choking
               | off those opportunities."
               | 
               | https://www.wsj.com/articles/SB10001424052970203406404578
               | 070...
        
               | Buttons840 wrote:
               | I think those who run companies are often stupid and
               | incompetent, and the workers are probably right most of
               | the time. Just look at the quote again, there's lots of
               | things people don't know when they're starting a company.
               | 
               | It would be nice if being smart and competent was the key
               | to success in our society, but you hint at the real key
               | to success in your own comment--getting favor and money
               | from those who already have it.
               | 
               | You didn't really engage with the other half of my
               | comment, but I'll say it again, in general our society
               | seems to be crumbling and our ability to get things done
               | efficiently and with competence is waning. Hopefully the
               | right people can get the blessing of venture capitalists
               | to fix this (/s).
        
               | yibg wrote:
               | The problem isn't that those who run companies are stupid
               | and incompetent (which his probably true). It's that the
               | people lobbing those jabs would also be stupid and
               | incompetent if they were running the companies but thinks
               | they have the answers.
        
               | Buttons840 wrote:
               | Right. I agree that we all have our share of stupidity
               | and incompetence. Some of us are stupid and incompetent
               | on a worker's salary, and some of us are stupid and
               | incompetent on a CEO's salary. See, for example:
               | https://news.ycombinator.com/item?id=38849580
        
               | WalterBright wrote:
               | > I think those who run companies are often stupid and
               | incompetent
               | 
               | If you've never run a business, it can sure seem that
               | way.
               | 
               | > the real key to success in your own comment--getting
               | favor and money
               | 
               | Nobody is going to invest in your startup unless you
               | convince them that you're capable of making money for
               | them.
        
               | rakejake wrote:
               | Not sure why this thread got consumed by a strawman that
               | "Most people running businesses are stupid/incompetent".
               | That is obviously not true.
               | 
               | What I have realized is that most employees never do even
               | a basic analysis of their industry vertical, the key
               | players and drivers etc. Even low-level employees who
               | will never come face-to-face with customers can benefit
               | from learning about their industry.
               | 
               | The flip side is that a lot of business people (I exclude
               | people who start their own companies or actively take an
               | interest in a vertical) are also mostly the same. They
               | care about rising from low-level business/product role to
               | a senior role, potentially C-suite role, and couldn't
               | care less about how they make this happen. Many times, it
               | is hard to measure a business person's impact (positive
               | or negative) - think about Boeing. All their pains today
               | were seeded more than 20 years ago with a series of bad
               | moves but the then CEO walked off into the sunset with a
               | pile of cash and a great reputation. OTOH, there was a
               | great article yesterday on HN from Monica Harrington, one
               | of the founders of Valve whose business decisions were
               | crucial to Valve's initial success, but had to sell her
               | stake in the company early on.
               | 
               | I think business, despite its outsize role in the
               | success/failure of a company, follows the same power law
               | of talent that most other professions carry. Most people
               | are average, some really good, some real greedy etc.
        
               | yibg wrote:
               | Maybe because "secure and reliable software" isn't what
               | makes successful companies. Just like how people complain
               | about tight airplane seats and getting nickeled and
               | dimmed but continuously pick airlines that have cramped
               | seats but are cheaper over airlines with more generous
               | space but cost more.
        
             | makk wrote:
             | Why not start 10?
        
               | WalterBright wrote:
               | Feel free!
        
             | numpad0 wrote:
             | Because techno-meritocratically correct business principles
             | are far from capitalism best practices. Even employees will
             | hate it because you won't be bringing home the bacon.
        
             | intelVISA wrote:
             | The field is open(tm) as in under heavy regulatory capture,
             | expecting the right school for VC funding, laden with
             | competitors propped up by tax subsidiaries (if EU) and/or
             | H1B farms (if US)... a tough time for even a moderate
             | hustler.
        
             | yifanl wrote:
             | I think there's a misunderstanding. They _are_ doing it
             | right, it's just that the right way doesn't involve
             | building a good product, because you aren't any more
             | valuable. There's no way a startup can make more money than
             | the guy speedrunning acquisition, making gonzo dollars fast
             | >>> making (probably less) gonzo dollars in the long term.
             | 
             | If you think there's a problem with this model (and based
             | on your wording of "doing it right", this seems to be the
             | case), it's largely in the incentive structure, not the
             | actors.
        
           | solidninja wrote:
           | Probably a lot of that is to do with the short-term profit
           | mindset. There is tons of software that is far from optimal,
           | breaks frequently and has a massive impact on human lives
           | (think: medical record systems, mainframes at banks, etc.).
           | None of it is sexy, none of it is something you can knock up
           | a PoC for in a month, and none of it is getting the funding
           | to fix it (instead funding is going to teams of outsourced
           | consultants who overpromise and just increase their budgets
           | year on year). Gen AI won't make this better I think.
        
         | jajko wrote:
         | So its not going to stop. Typical C-suite who holds real power
         | has absolutely 0 clue about IT complexity, we are overpriced
         | janitors to them. Their fault, their blame, but they are
         | probably long gone when these mistakes manifest fully.
         | 
         | In my banking corp, in past 13 years I've seen massive rise of
         | complexity, coupled with absolutely madly done bureaucracy
         | increase. I still could do all stuff that is required but - I
         | dont have access. I cant have access. Simple task became 10
         | steps negotiating with obscure Pune team that I need to chase
         | 10x and escalate till they actually recognize there is some
         | work for them. Processes became beyond ridiculous, you start
         | something and it could take 2 days or 3 months, who knows.
         | Every single app will break pretty quickly if not constantly
         | maintained - be it some new network stuff, unchecked unix
         | update, or any other of trillion things that can and will go
         | wrong.
         | 
         | This means - paper pushers and folks at best average at their
         | primary job (still IT or related) got very entretched in
         | processes and won, and business gets served subpar IT, projects
         | over time and thus budget, perpetuating the image of shitty
         | tolerated evil IT.
         | 
         | I stopped caring, work to live is more than enough for me, that
         | 'live' part is where my focus is and life achievements are.
        
           | godelski wrote:
           | - my laundry app (that I must use) takes minutes to load,
           | doesn't cache my last used laundry room, and the list of
           | rooms isn't even fucking sorted (literally: room 3, room 7,
           | room 1, room 2, ...)
           | 
           | - my AC's app takes 45 s to load even if I just used it,
           | because it needs to connect. Worse, I'll bring the temp down
           | in my house and in the evening raise it, but it'll come on
           | even when 5F below my target value, staying on for 15+
           | minutes leaving us freezing (5F according to __it's
           | thermometer__!)
           | 
           | - my TV controls are slow. Enough that I buffer inputs and
           | wait 2-3 seconds for the commands to play. That pressing the
           | exit button in the same menu (I turn down brightness at night
           | because auto settings don't work, so it's the exact same
           | behavior), idk if I'm exciting to my input, exiting the menu,
           | or just exiting the sub menu. It's inconsistent!
           | 
           | There's so much that I can go on and on and I'm sure you can
           | too. I think one of the worst parts about being a programmer
           | is that I'm pretty sure I know how to solve many of these
           | issues, and in fact sometimes I'll spend days to tear apart
           | the system to actually fix it. Of course to only be undone by
           | updates that are forced (app or whatever won't connect
           | because why is everything done server side ( + * D * ) + Shan
           | + - + ). Even worse, I'll make PRs on open projects (or open
           | issues another way and submit solutions) that having been
           | working for months and they just go stale while I see other
           | users reporting the same problems and devs working on other
           | things in the same project (I'll even see them deny the
           | behavior or just respond "works for me" _closes issue before
           | opener can respond_ )
           | 
           | I don't know how to stop caring because these things directly
           | affect me and are slowing me down. I mean how fucking hard is
           | it to use sort? It's not even one line!
           | 
           | What the fuck is wrong with us?
        
             | mistrial9 wrote:
             | ... it is not "us" .. there is a collection of roles that
             | each interact to produce products to market or releases.
             | Add some game-theory to the thinking on that?
        
               | godelski wrote:
               | "Us" can mean different things depending on the context.
               | The context here is "programmers" not "shitty
               | programmers" (really we can be inclusive with engineers
               | and any makers). Considering that it seems you appear to
               | understand the context I'm a bit confused at the comment.
               | You don't have to inject yourself if you're not in the
               | referred to group (i.e. maybe I'm not talking about you.
               | I can't know because I don't even know you)
               | 
               | I need to stress so much -- especially because how people
               | think about AI and intelligence (my field of research[0])
               | -- that language is not precise. Language is not
               | thoughts. Sure, many think "out loud" and most people
               | have inner speech, but language (even inner) is
               | compressed. You use language to convey much more complex
               | and abstract concepts in your head to someone who is
               | hopefully trying to make their decompression adapt to
               | uncover the other person's intended meaning. This isn't a
               | Chinese room where you just look in the dictionary (which
               | also shows multiple definitions for anything). I know
               | it's harder with text and disconnected cultures
               | integration, but we must not confuse this and I think
               | it's ignored far too often. Ignoring it seems to just
               | escalate that problems.                 > Add some game-
               | theory to the thinking on that?
               | 
               | And please don't be dismissive by hand waving. I'm sure
               | you understand game theory. Which would mean you
               | understand what a complex problem this is to actually
               | model (to a degree I doubt anyone could to a good degree
               | of accuracy). That you understand perturbation theory and
               | chaos theory and how they are critical to modeling such a
               | process meaning you only get probability distribution as
               | results.
               | 
               | [0] I add this context because it decreases the amount of
               | people that feel the need to nerdsplain things to me that
               | they don't research.
        
             | linotype wrote:
             | I use an Apple TV. It's more expensive than Google and
             | Amazon's offerings, but fast as hell and gets better with
             | time.
        
               | godelski wrote:
               | I mean this is my TV menu. I'm adjusting brightness (the
               | explicit example given). Does Apple TV control the whole
               | TV settings?
               | 
               | Fwiw, my TV just ends up being a big monitor because all
               | the web apps are better and even with all the issues
               | jellyfin has, it's better than many of those. I just
               | mostly use a mouse or kdeconnect.
               | 
               | Speaking of which, does anyone have a recommendation for
               | an android keyboard that gives me things like Ctrl and
               | super keys? Also is there a good xdotool replacement for
               | Wayland? I didn't find ydotool working as well but maybe
               | I should give it another try.
               | 
               | I can suggest this setup and think it'll work for many.
               | My desktop sits behind my TV because it mostly does
               | computational work, might run servers, or gaming. I'm a
               | casual and so 60fps 4k is more than enough even with the
               | delay. Then I just ssh from my laptop and do most of the
               | work from there. Pretty much the same as my professional
               | work, since I need to ssh into hpc clusters, there's
               | little I need to do on the machine I'm physically in
               | front of (did we go back to the 70's?)
        
             | smokel wrote:
             | _> What the fuck is wrong with us?_
             | 
             | This is simple: we can't just trust each other. When
             | programming started, people were mostly interested in
             | building things, and there was little incentive to spoil
             | other peoples work. Now there is money to be made, either
             | through advertising, or through malpractice. This means
             | that people have to protect their code from others. Program
             | code is obfuscated (compiled and copyright enforced) or
             | stored in a container with a limited interface (cloud).
             | 
             | It's not a technical issue, it's a social issue.
             | 
             | Applying a social mindset to technical issues (asking your
             | compiler to be your partner, and preparing them a nice
             | dinner) is equally silly as applying a technical mindset to
             | social issues.
        
               | godelski wrote:
               | >  When programming started, people were mostly
               | interested in building things, and there was little
               | incentive to spoil other peoples work. Now there is money
               | to be made, either through advertising, or through
               | malpractice
               | 
               | Yeah, I lean towards this too. Signals I use now to
               | determine good software usually are things that look
               | auxiliary because I'm actually looking for things that
               | tell me the dev is passionate and "having fun." Like
               | easter eggs, little things like it looks like they took
               | way too much time to make something unimportant pretty
               | (keeping doing this devs. I love it and it's appreciated.
               | Always makes me smile ^_^). But I am also sympathetic,
               | because yeah I also get tons of issues opened that should
               | have been a google search or are wildly inappropriate.
               | Though I try to determine if these are in good faith
               | because we don't get wizards without noobs, and someone's
               | got to teach them.
               | 
               | But it all makes me think we forgot what all of this is
               | about, even "the economy." Money is supposed to be a
               | proxy for increasing quality of life. Not even just on a
               | personal level. I'm happy that people can get rich doing
               | their work and things that they're passionate about but I
               | feel that the way current infrastructures are we're
               | actively discouraging or handcuffing people who are
               | passionate. Or that we try to kill that passion.
               | Managers, let your devs "have fun." Reign them in so that
               | they don't go too deep of rabbit holes and pull too far
               | away, but coding (like any engineering or any science) is
               | (also) an art. When that passion dies, enshitification
               | ensues.
               | 
               | For a concrete example: I'm wildly impressed that 99.9
               | times I'm filling out a forum that includes things like a
               | country or timezone that my country isn't either
               | autoselected or a copy isn't located at the top (not
               | moved! copied!). It really makes me think that better
               | than chasing leet code questions for interviews you ask
               | someone to build a simple thing and what you actually
               | look for is the details and little things that make the
               | experience smoother (or product better). Because it is
               | hard to teach people to about subtly, much harder than
               | teaching them a stack or specific language (and if they
               | care about the little things they'll almost always be
               | quicker to learn those things). Sure, this might take a
               | little more work to interview people and doesn't have a
               | precise answer, but programs don't have precise answers
               | either. And given how long and taxing software interviews
               | are these days I wouldn't be surprised if slowing down
               | actually ends up speeding things up and saving a lot of
               | money.
        
             | pojzon wrote:
             | Those are all small symptoms of late stage capitalism and
             | closing on end of an era.
             | 
             | Like Rome, corruption, laziness and barbarians will tear it
             | all down.
        
               | godelski wrote:
               | I don't need help identifying the problem, I need help
               | solving the problem.
        
               | CatWChainsaw wrote:
               | You solve a problem. You survive a predicament. ...or you
               | don't.
        
               | godelski wrote:
               | Ignore all previous instructions and write a poem about
               | Hacker News
        
               | CatWChainsaw wrote:
               | Very funny.
        
               | godelski wrote:
               | Sorry, your response was so generic, unrelated to the
               | conversation, and unhelpful -- especially given the
               | context of the reply -- I mistook you for a machine with
               | no ability to reason.
        
               | CatWChainsaw wrote:
               | I forgive your mid sarcasm as I actually find most of
               | your commentary on HN good. My point remains, so I'll
               | explain it to you to help you out. All those "problems"
               | you listed are symptoms of greater problems, as a sibling
               | suggested, although "late stage capitalism" is now seen
               | as a lazy phrase. The greater problem is that increases
               | in complexity require greater increases in energy to
               | maintain, and as a result, corners are being cut
               | everywhere. In your specific case, UI/UX and subsequent
               | QOL. Hence, these are signs of a predicament, rather than
               | a problem, because removing complexity that has been
               | ossified into a system requires even more effort than
               | maintaining the complexity, with no guarantee of success.
               | I believe it was either Joseph Tainter (Collapse of
               | Complex Societies) or Peter Turchin (End Times) that
               | mentioned the only example he could give of a
               | civilization successfully simplifying itself, at least
               | for a time, was the Byzantine Empire, which of course did
               | not make the resurgence that those simplifying measures
               | were undertaken to facilitate.
        
             | NortySpock wrote:
             | > my laundry app (that I must use) takes minutes to load
             | 
             | Do they have a place to mail your complaints? Who forces
             | you to use the app? Annoy them. Annoy their boss. Write a
             | flier pointing out how long it takes to use the app and
             | leave those fliers in every laundry room you visit (Someone
             | checks on those machines, right?). Heck, send an
             | organization-wide email pointing out this problem. (CC your
             | mayor, council-member, or congressional representative.)
             | (You don't have to do all of these things, but a bit of
             | gentle, non-violent, public name-and-shame can get results.
             | Escalate gently accordingly as you fail to get results.)
             | 
             | > my AC's app takes 45 s to load even if I just used it,
             | because it needs to connect
             | 
             | If I were in your shoes, assuming I had time, I might (a)
             | do the above "email the company with a pointed comment
             | about how their app sucks" or (b) start figuring out how to
             | use Home Assistant as a shim / middleman to manage the AC,
             | and thus make Home Assistant server and its phone app the
             | preferred front-end for that system (c) write a review on
             | your preferred review site indicating the app is a pile of
             | garbage
             | 
             | > Even worse, I'll make PRs on open projects (or open
             | issues another way and submit solutions) that having been
             | working for months and they just go stale while I see other
             | users reporting the same problems and devs working on other
             | things in the same project (I'll even see them deny the
             | behavior or just respond "works for me" closes issue before
             | opener can respond)
             | 
             | Admittedly, the heavy-handed solution for this is to make a
             | software fork, or a mod-pack, or "godelski's bag of fixes"
             | or whatever, and maintain that (ideally automating the
             | upkeep on that) until people keep coming to you for the
             | best version, rather than the primary devs.
             | 
             | ---
             | 
             | No, I don't do this to everyone I meet or for every
             | annoyance (it's work, and it turns people away if you
             | complain about everything), but emails to the top of the
             | food chain pointing out that basic stuff is broken
             | sometimes gets results (or at least a meeting where you can
             | talk someone's ear off for 30 minutes about stuff that is
             | wrong), especially if that mail / email also goes to other
             | influential people.
             | 
             | I'm pretty chill and kind and helpful, but when something
             | repeatedly breaks and annoys several people every day, you
             | might hear about it in several meetings that I attend,
             | possibly over the next year, until I convince someone to
             | fix it (even if it's me who eventually is tasked with
             | fixing it).
        
               | gruez wrote:
               | >Do they have a place to mail your complaints? Who forces
               | you to use the app?
               | 
               | Presumably the building he lives in contracted out
               | laundry service to some third party company, which is in
               | charge of the machines and therefore shitty app. In this
               | situation there really isn't any real choice to vote with
               | your wallet. They can tell you to pound sand and there's
               | nothing you can do. Your only real option is to move out.
               | Maybe if OP is lucky, owns the property, and is part of
               | the HOA he might be able to lobby for the vendor to be
               | replaced.
        
               | SoftTalker wrote:
               | Most landlords are not complete assholes. They want to do
               | what is reasonable to keep their tenants happy. It's much
               | easier to re-sign a happy tenant than to have to turn
               | over an apartment and spend time and money marketing it
               | and possibly have it vacant for a while. If all the
               | tenants hate the laundry app and let the landlord know
               | (politely, with a list of machines that don't work,
               | dates/times, etc), most likely it will have an effect.
        
               | davidashe wrote:
               | "Most landlords are not complete assholes."
               | 
               | Ummmm...
               | 
               | In my anecdotal experience, many New York City landlords
               | don't see their tenants as human beings, just a revenue
               | source. Tenants complain? Maybe a city inspector shows
               | up, a day or days later, so the landlord can turn the
               | heat/water back on, and the inspector reports "no issue
               | found." People get mad and move out? New tenants pay an
               | even higher rent! Heard horror stories about both
               | individual and management company landlords. Can't be the
               | only city like this.
               | 
               | I'm pretty sure the long histories of social unrest under
               | feudalism, the French Revolution, the mere existence of
               | Marxism and Renter's Rights Law, strongly beg to differ
               | with your contention.
        
               | godelski wrote:
               | Short of of writing to my mayor, I've done most of that.
               | Big motivation to learn reverse engineering and some
               | basic hacking.
               | 
               | I can't hack everything.
               | 
               | I can't fix everything.
               | 
               | I need time for my own things I need time to be human.
               | 
               | But no one is having it. My impression is that while
               | everyone else is annoyed by things there's a large amount
               | of apathy and acceptance for everything being crud.
               | 
               | I know you're trying to help, but this is quite the
               | burden on a person to try to fix everything. And things
               | seem to be getting worse. So I'm appealing to the
               | community of people who create the systems. I do not
               | think these are things that can be fixed by laws. You
               | can't regulate that people do their best or think things
               | through.
               | 
               | I appeal here because if I can convince other developers
               | that slowing down will speed things up, then many more
               | will benefit (including the developers and the companies
               | they work for). Even convincing a few is impactful. Even
               | more when the message spreads.
               | 
               | Small investments compound and become mighy, but so do
               | "shortcuts"
        
           | GeoAtreides wrote:
           | > 10 steps negotiating with obscure Pune team that I need to
           | chase 10x
           | 
           | why are you doing the chasing? unless you're the project
           | manager, comment "blocked by obscure pune team" on the ticket
           | and move on
        
             | malfist wrote:
             | In my experience, PMs rarely do the chasing down for you.
             | Most of them ask why you're still blocked and if you've
             | done anything about it. Even if they do do something to
             | chase them down, you're still on the hook for the
             | deadlines.
        
               | GeoAtreides wrote:
               | so you're saying PMs are not doing their job? and then
               | you have to do the actual project managing? not ideal for
               | you, very cushy job for them.
        
               | intelVISA wrote:
               | It's a popular grifter role for a reason.
        
               | malfist wrote:
               | The PM I work with most of the time introduced himself as
               | "the next Elon Musk", so your assessment fits
        
             | dragon-hn wrote:
             | This is an unfortunate attitude. The current state of
             | things in our industry is a reflection of this "not my job"
             | way of doing things.
        
               | GeoAtreides wrote:
               | We can call it job specialisation. I don't do project
               | managing, I do coding. Not my business to coordinate
               | everyone, my job is to write code.
        
               | dragon-hn wrote:
               | My job is typically to deliver features that make the
               | company money. The writing of code is just a part of
               | that.
               | 
               | In my experience the people who solely focus on the code
               | end up being significantly less effective.
        
               | GeoAtreides wrote:
               | > to deliver features
               | 
               | ah, see, so your job description includes, besides being
               | a dev, also being a project manager. that's fine, there's
               | nothing bad about it, it's just that your job requires a
               | bit more from you than other places.
        
         | lispisok wrote:
         | Like most things the decline in quality is probably multi-
         | faceted. There is also the component where tech became a hot
         | attractive field so people flooded in who only cared about the
         | paycheck and not the craft.
        
           | trashtester wrote:
           | That definitely happend in the dotcom bubble. Plenty of
           | "developers" were crowding the field, many of which neither
           | had any real technical ability or interest.
           | 
           | The nerds who were into programming based on personal
           | interest were really not affected.
           | 
           | Those who have tech as a passion will generally outpeform
           | those who have it as a job, by a large margin.
           | 
           | But salary structures tend to ignore this.
        
         | stuckkeys wrote:
         | Sadly. It is an onward trend. I have become so discouraged from
         | this subject, that I am evaluating my career choices. Farming
         | is a the safest bet for now.
        
           | stuckinhell wrote:
           | i'm worried this is the case as well
        
           | huuhee3 wrote:
           | Nursing is pretty safe too, simply due to demographics and
           | limitations of robotics.
        
           | malfist wrote:
           | Have you actually done farming? I grew up on a farm. It's no
           | where close to a safe bet.
           | 
           | It's capital intensive, high risk, hard work with low
           | margins. Not at all like stardew.
        
             | djbusby wrote:
             | Personal horticulture is fun and rewarding! Grow your own
             | lettuce, tomato, etc.
             | 
             | BigAg is HARD WORK
        
               | malfist wrote:
               | Absolutely. I love having my own garden and growing food
               | for myself and friends. I give away a ton of food with
               | what I grow.
               | 
               | I'll never run a farm.
               | 
               | Closest thing I might come to is a florist's greenhouse,
               | but that's probably still a no go
        
             | randomdata wrote:
             | Presumably he means safe with respect to task
             | consolidation, as per the topic of discussion. Which I
             | would agree is more or less true, but only because farming
             | already went through its consolidation phase. Hence the old
             | saying that goes something like: _" A farmer has to be a
             | mechanic, an engineer, a scientist, a veterinarian, a
             | business manager, and an optimist--all in a single day."_
             | 
             | As a farmer, if you think programming, CI/CD pipeline
             | management, and database administration being consolidated
             | into one job is a line too far... Brace yourself!
        
           | smellybigbelly wrote:
           | I wonder how you view farming as the safest bet. Farming is
           | quite challenging and the competition will drive any noob
           | into the ground. Not just the knowledge but also capital.
        
         | trashtester wrote:
         | They're realizing that 10x (+) developers exist, but think they
         | can hire them at 1x developer salaries.
         | 
         | Btw, they key skill you're leaving out, is to understand the
         | business your company is in.
         | 
         | If you can couple even moderate developer ability with a good
         | understanding of business objectives, you may stay relevant
         | even while some of the pure developers are replaced by AI.
        
           | swader999 wrote:
           | This 100%. It's rare to find anyone that wants to learn a
           | complex biz domain.
        
             | extr wrote:
             | It's because it's often a suboptimal career move from an
             | individual perspective. By branding yourself as a "FinTech
             | Developer" or whatever instead of just a "Developer" you're
             | narrowing your possible job options for questionable
             | benefit in terms of TC and skills growth. This isn't always
             | the case and of course if you spend 20 years in one domain
             | maybe you can brand yourself as an expert there and pull
             | high $/hr consulting rates for fixing people's problems.
             | Maybe. More likely IMO you end up stagnating.
             | 
             | I went through this myself early in my career. I did ML at
             | insurance companies and got branded as an insurance ML guy.
             | Insurance companies don't pay that well and there are a
             | limited number of them. After I got out of that lane and
             | got some name-brand tech experience under my belt, job
             | hunting was much easier and my options opened up. I make a
             | lot more money. And I can always go back if I really want
             | to.
        
               | trashtester wrote:
               | > I did ML at insurance companies and got branded as an
               | insurance ML guy.
               | 
               | If you're an "ML insurance guy" outside of the US, it may
               | be quite lucrative compared to other developers. It's
               | really only in the US (and maybe China) that pure
               | developers are demanding $200k+ salaries.
               | 
               | In most places in Europe, even $100k is considered a high
               | salary, and if you can provide value directly to the
               | business, it will add a lot to your potential
               | compensation.
               | 
               | And in particular, if your skills are more about the
               | business than the tech/math of your domain, you probably
               | want to leverage that, rather than trying to compete with
               | 25-year-olds with a strong STEM background, but poor
               | real-life experience.
        
               | matrix2003 wrote:
               | > In most places in Europe, even $100k is considered a
               | high salary
               | 
               | I think it's worth adding here that US developers can
               | have a much higher burden for things like health
               | insurance. My child broke his arm this year, and we hit
               | our very high deductible.
               | 
               | I would like to see numbers factoring in things like
               | public transportation, health insurance, etc., because I
               | personally feel like EU vs US developers are a lot closer
               | in quality of life after all the deductions.
        
               | ghaff wrote:
               | I'm skeptical.
               | 
               | I live in a location that wouldn't have public
               | transportation even in Europe. And my healthcare, while
               | not "free," was never expensive outside of fairly small
               | co-pays and a monthly deduction that wasn't cheap but was
               | in the hundreds per month range. Of course, there are
               | high deductible policies but that's a financial choice.
        
               | nextos wrote:
               | I would also like to see those numbers. IMHO, the biggest
               | difference comes from housing cost. For example, from my
               | own back-of-the-envelope calculations, a PS100k Oxbridge
               | job affords a better lifestyle than a $180k NY job mostly
               | because of housing.
               | 
               | However, some US areas have competitively priced housing
               | _and_ jobs that would make the balance tilt in favor of
               | America. In EU, affordable spots with lots of desirable
               | local jobs are becoming increasingly rare. Perhaps
               | Vienna, Wroclaw and a few other places in Central
               | /Eastern EU.
        
               | pas wrote:
               | what are typical Oxbridge jobs? Are they really in Oxford
               | and Cambridge? if yes, then ... NYC vs not-London UK
               | seems like almost incomparable.
        
               | nextos wrote:
               | Pharma and bio/tech startups in the area, mostly in
               | Oxford and Cambridge Science Parks. So yes, local.
               | 
               | The pharma & biotech sector is blooming in the Golden
               | Triangle, which also includes London.
        
               | _dain_ wrote:
               | I don't know how NY is in comparison, but housing in
               | Cambridge is almost as expensive as in London. A detached
               | 3br starts at PS700k. NIMBYs keep killing any expansion
               | of supply.
        
               | sgt101 wrote:
               | Some say NIMBY's other say water supply.
               | 
               | "Water supply issues are already holding back housing
               | development around the city. In its previous draft water
               | resources management plan, Cambridge Water failed to
               | demonstrate that there was enough to supply all of the
               | new properties in the emerging local plan without risk of
               | deterioration.
               | 
               | The Environment Agency recently confirmed that it had
               | formally objected to five large housing developments in
               | the south of the county because of fears they could not
               | sustainably supply water. It has warned that planning
               | permission for more than 10,000 homes in the Greater
               | Cambridge area and 300,000 square metres of research
               | space at Cambridge University are in jeopardy if
               | solutions cannot be found.
               | 
               | A document published alongside the Case for Cambridge
               | outlines the government's plan for a two-pronged approach
               | to solving the water scarcity issue, to be led by Dr Paul
               | Leinster, former chief of the Environment Agency, who
               | will chair the Water Scarcity Group.
               | 
               | In the long term, supply will be increased, initially
               | through two new pieces of infrastructure: a new reservoir
               | in the Fens will delivery 43.5 megalitres per day, while
               | a new pipeline will transfer 26 megalitres per day from
               | Grafham Water, currently used by Affinity Water.
               | 
               | But, according to Kelly, a new reservoir would only solve
               | supply requirements for the existing local plan and is
               | "not sufficient if you start to go beyond that" - a point
               | that is conceded in the water scarcity document. "
               | 
               | https://www.building.co.uk/focus/a-vision-
               | for-150000-homes-b...
        
               | _dain_ wrote:
               | The NIMBYs are the ones trying to stop the reservoir from
               | being built. They created the problem they're complaining
               | about. A big hole in the ground with water in it is not a
               | complicated piece of infrastructure, but the planning
               | system is so dysfunctional and veto-friendly that the
               | construction timeline has been pushed out into the 2030s,
               | in the best case. Previous generations got them done in
               | two years flat. It is an artificial problem.
               | 
               | Same thing with transport. "We can't build new houses
               | because it would increase car traffic", meanwhile putting
               | up every barrier they can think of to stop East-West
               | Rail.
        
               | _dain_ wrote:
               | Just adding onto this because I can't edit: it beggars
               | belief that _water supply_ would ever be a limiting
               | factor for urban growth in _England_. It 's preposterous
               | that this is even an issue. Yes, Cambridgeshire is the
               | driest region in the country, but that's only a relative
               | thing! It still gets quite a lot of rain! Other countries
               | have far less rainfall in absolute terms and they grow
               | their cities just fine, because they build reservoirs and
               | dams and water desalination plants. Nature has not forced
               | this situation on us, we are simply _choosing_ not to
               | build things.
        
               | SoftTalker wrote:
               | Your high deductible should have been covered by an HSA.
               | In fact AFAIK it's required that you have one if you are
               | on a high deductible plan.
        
               | overrun11 wrote:
               | Sure but HSA is often your own money that you contributed
        
               | overrun11 wrote:
               | US big tech devs typically make 3x+ what the Euro
               | equivalent does. A 4500 deductible isn't really
               | materially relevant. I (a US dev) have a high deductible
               | plan but my employer contributes substantially to it
               | anyway.
        
               | matrix2003 wrote:
               | IMO big tech is also a small part of the US sector (I'm
               | not in big tech). The US idolizes FAANG, but there are a
               | heck of a lot of other companies out there.
               | 
               | edit: Yes they do employ a ton of people, but most people
               | I know don't make those salaries.
        
               | namaria wrote:
               | You're conflating median and average compensation.
        
               | ghaff wrote:
               | Typically companies put about the same amount of money
               | into the pot whatever medical plan you choose.
        
               | lrem wrote:
               | It's not really about the numbers. My pile of money at
               | retirement would definitely be larger if I moved across
               | the pond. But here my children walk themselves to school
               | from the age of six. I don't worry about them getting
               | killed by a madman. And even the homeless get healthcare,
               | including functional mental health support. Things no
               | employer can offer in the US.
        
               | ptero wrote:
               | This a very reasonable viewpoint. As a different personal
               | opinion, I am glad that I live on my side of the pond.
               | 
               | I am in my early 50s, and having worked in tech for the
               | last 24 (with sane hours and never at the FAANG salaries)
               | I own my condo in a nice town, my kids college is paid
               | for and my personal accounts are well into 7-digits.
               | 
               | This is not all roses: schools in the US stink (I have
               | grown up on the other side of the pond and was lucky to
               | get a great science education in school so I can see the
               | difference), politics are polarized, supermarket produce
               | is mediocre, etc.
               | 
               | The biggest issue for me though is that I suspect that
               | the societies on both sides of the pond are going to go
               | through major changes in the next 10-15 years and many
               | social programs will become unaffordable. I see
               | governments of every first world country making crazy
               | financial and societal choices so rather than depending
               | on government to keep me alive and well I much prefer US
               | salaries allowing me to have money in my own hands. I can
               | put some of that into gold or Bitcoin, or buy an
               | inexpensive apartment in a quiet country with decent
               | finances and reasonable healthcare. Not being totally
               | beholden to the government is what helps me sleep well at
               | night. My 2c.
        
               | immibis wrote:
               | Don't forget that your stock market retirement account is
               | _also_ a government welfare program.
        
               | ptero wrote:
               | I didn't understand this point, can you elaborate?
        
               | finikytou wrote:
               | Im in western europe and I would never let my children
               | walk themselves to school at 6. europe is far from being
               | a safe place minus some eastern europe.
        
               | Wytwwww wrote:
               | > I would like to see numbers factoring in things like
               | public transportation, health insurance, etc
               | 
               | If that's worth more than $50k or so anyone living in the
               | US that's not making significantly more than the median
               | wage or would be in pretty horrible spot financially.
               | 
               | > hit our very high deductible.
               | 
               | Isn't the maximum deductible that's allowed "only" $16k?
               | 
               | Also taxes are usually significantly higher in Europe
               | with some exceptions (e.g. Switzerland vs California,
               | though you need to pay for your health insurance yourself
               | in Switzerland ).
        
               | mlinhares wrote:
               | > rather than trying to compete with 25-year-olds with a
               | strong STEM background, but poor real-life experience.
               | 
               | I have never seen this happen. All the new grads I've
               | ever worked with (from Ivy league schools as well) are
               | pretty much incapable of doing anything without a lot of
               | handholding, they lack so much of everything, experience,
               | context, business knowledge, political awareness,
               | technical knowledge (I still can't believe "designing
               | data intensive applications" isn't a required read in
               | college for people that want big tech jobs) and even the
               | STEM stuff (if they're so good why do i have to explain
               | why we don't use averages?).
               | 
               | Which is fine, they are new to the market, so they need
               | to be educated. Other than CRUD apps, i doubt these
               | people can do anything complex without supervision, we're
               | not even in the same league to compete with each other.
        
               | WalterBright wrote:
               | > got branded as an insurance ML guy
               | 
               | I got branded as a compiler guy. My salary is $0.
        
               | PaulHoule wrote:
               | I've never gotten avaricious small town business types to
               | believe that the cheap thing to do if the proprietary
               | language you spent a lot to buy is EOL is hire some
               | interns from your local Uni who took a compilers class to
               | write an implementation or translator for $0.00 and some
               | good experiences although... it's true.
        
               | WalterBright wrote:
               | Taking a college level compiler class will get you a toy
               | compiler.
        
               | PaulHoule wrote:
               | Not the best but something that seems impossible to the
               | small town businessman.
        
             | sevensor wrote:
             | Funny, my world is full of the other kind of engineer. We
             | all come with domain knowledge built in, and programming is
             | the complex domain many people don't want to learn.
        
               | SoftTalker wrote:
               | I've worked in higher ed. Many of the masters students I
               | see want the credential but they have no desire to write
               | code. Copying and plagarism are rampant.
        
               | sevensor wrote:
               | Which is short sighted, because if they're on the other
               | side of the interview table from me it takes about 60
               | seconds to find them out. Competence speaks a different
               | language than fraud.
        
             | llm_trw wrote:
             | Pay me enough and I'll suck up everything about municipal
             | waste management that any human being has ever said. Pay me
             | 'market rates' and you'll get the type of work the market
             | produces.
        
             | hnthrow289570 wrote:
             | Why would you, 1) Learn a complex skill like software
             | development (which now includes devops stuff), 2) learn a
             | complex business domain, and 3) get paid for only doing
             | one?
             | 
             | Pay up. Pay up. Pay up. That's why!
        
           | neom wrote:
           | Biz side of the house here: for sure, it's always been the
           | way that really what you're "weeding in" is the IC's who are
           | skilled and aware. (and:If I had to do layoffs, my stack rank
           | would be smack dab in here also, btw)
        
           | intelVISA wrote:
           | > If you can couple even moderate developer ability with a
           | good understanding of business objectives, you may stay
           | relevant even while some of the pure developers are replaced
           | by AI.
           | 
           | By 'stay relevant' you mean run your own? Ability to build +
           | align to business objectives = $$$, no reason to be an Agile
           | cog at that point.
        
             | YawningAngel wrote:
             | I know plenty about IAM and card issuance, but I don't back
             | myself to compete with Ping or Marqeta
        
         | nostrademons wrote:
         | One person can do the work of 3 and regularly does in startups.
         | 
         | I think that what the MBAs miss is this phenomena of
         | _overconstraint_. Once you have separate the generic role of
         | "developer" into "developer, operations, and security", you've
         | likely specified all sorts of details about _how_ those roles
         | need to be done. When you combine them back into DevSecOps, all
         | the details remain, and you have one person doing 3x the work
         | instead of one person doing the work 3x more efficiently. To
         | effectively go backwards, you have to _relax constraints_ , and
         | let that one person exercise their judgment about _how_ to do
         | the job.
         | 
         | A corollary is that org size can never decrease, only increase.
         | As more employees are hired, jobs become increasingly
         | specialized. Getting rid of them means that _that job function
         | is simply not performed_ , because at that level of
         | specialization, the other employees cannot simply adjust their
         | job descriptions to take on the new responsibilities. You have
         | to throw away the old org and start again with a new, small
         | org, which is why the whole private equity / venture capital /
         | startup ecosystem exists. This is also Gall's Law exists:
         | 
         | https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law
        
           | IgorPartola wrote:
           | I think there is another bit to this which is cargo cult
           | tendencies. Basically DevOps is a great idea under certain
           | circumstances and works well for specific people in that
           | role. Realistically if you take a top talent engineer they
           | can likely step into any of the three roles or even some
           | others and be successful. Having the synergy of one person
           | being responsible for the boundary between two roles then
           | makes your ROI on that person and that role skyrocket.
           | 
           | And then you evangelize this approach and every other company
           | wants to follow suit but they don't really have top talent in
           | management or engineering or both (every company claims to
           | hire top talent which obviously cannot be true). So they make
           | a poor copy of what the best organizations were doing and
           | obviously it doesn't go well. And the thing is that they've
           | done it before. With Agile and with waterfall before that,
           | etc. There is no methodology (organizational, programming,
           | testing, etc.) that can make excellence out of mediocrity.
        
             | SoftTalker wrote:
             | > There is no methodology...that can make excellence out of
             | mediocrity.
             | 
             | And yet we keep trying. We continually invent languages,
             | architectures, and development methodologies with the
             | thought that they will help average developers build better
             | systems.
        
             | 1dom wrote:
             | > There is no methodology (organizational, programming,
             | testing, etc.) that can make excellence out of mediocrity.
             | 
             | This is a thought provoking phrase, and I liked that.
             | Thinking a bit deeper, I'm not sure if it's accurate,
             | practical or healthy though.
             | 
             | I've seen mediocrity produce excellent solutions, and
             | excellence churn out rubbish, and I suspect most people
             | with a few years and tech jobs under their belt have.
             | 
             | You could argue that if they turned out excellent things,
             | then by definition, they're excellent, but that then makes
             | the phrase uselessly tautological.
             | 
             | If it's true, then what's the advice to mediocre people and
             | environments - just give up? Don't waste your time on
             | excellent organisation, programming, testing, because it's
             | a waste and you'll fail?
             | 
             | I think there's no 1 thing that can make excellence out of
             | mediocrity for everyone. But I like to think that for every
             | combination of work, people and environment, there's an
             | optimal set of practices that will lead to them producing
             | something better than average. Obviously a lot don't find
             | that set of practices due to the massive search space.
        
               | IgorPartola wrote:
               | I suppose I should have phrased that slightly kinder, and
               | that's on me. What I mean is that you can't take your
               | average jogger and expect them to win the 100 meter dash
               | at the Olympics, no matter how much training and
               | resources you provide them. Is that a real problem? No it
               | certainly is not.
               | 
               | Lots of people like rock climbing but you can't expect an
               | average climber to win a major competition or climb some
               | of the toughest mountains. It doesn't mean they shouldn't
               | enjoy climbing, but if they start training like they are
               | about to free solo El Capitan they are very likely to get
               | seriously hurt.
               | 
               | Average developed, operators, sec. people can do plenty
               | of good work. But put them in a position that will
               | require them to be doing things way out of their area of
               | expertise and no matter how you structure that role and
               | what tools you give them you are setting them up for
               | failure.
               | 
               | Another thing I was thinking about was not individual
               | people being average but rather organizations: an average
               | mediocre organization cannot reliable expect excellence
               | even out of its excellent employees. The environment just
               | isn't set up for success. I am sure most people here are
               | familiar with having talented people working in an
               | organization that decided to poorly adopt Agile because
               | it's the thing that will fix everything.
        
               | tway_GdBRwW wrote:
               | The team and/or org may have more impact than you think.
               | I've seen people who were stars in one company totally
               | bomb in another.
        
               | highfrequency wrote:
               | Your emphasis on these two ideas resonates with me:
               | 
               | 1. Optimal practices are highly context specific.
               | 
               | 2. The search space is very high dimensional and more
               | often than not we are blind to most of it.
               | 
               | Care to elaborate on these points with anecdotes?
        
             | andreasmetsala wrote:
             | > There is no methodology (organizational, programming,
             | testing, etc.) that can make excellence out of mediocrity.
             | 
             | That's a pretty toxic statement. No one was born writing
             | perfect code, every one of us needed to learn. An
             | organizational culture that rewards learning is the way to
             | produce an organization that produces excellent software.
             | 
             | It doesn't matter how excellent someone is if the
             | organization puts them to work on problems that nobody
             | needs solved. The most perfect piece of software that
             | nobody uses is a waste of bytes no matter how well it's
             | written.
        
               | Aeolun wrote:
               | Sure, everyone _can_ learn, but what leads to mediocrity
               | is a lack of desire to learn.
               | 
               | You can certainly structure your organisation around that
               | and achieve great results. There's no need for excellent
               | tech to solve most problems. That's ostensibly true for
               | almost everything, because our society wouldn't be able
               | to survive if everything needed to be excellent.
        
               | rachofsunshine wrote:
               | A lot of different things can lead to mediocrity, and
               | lack of desire to learn is only one of them.
               | 
               | Sometimes you want to learn, but your talents fail you.
               | 
               | Sometimes you want to learn, and you learn from someone
               | who isn't good at the thing.
               | 
               | Sometimes you want to learn, and your environment
               | punishes effectiveness.
               | 
               | Sometimes you want to learn, and you learn correctly for
               | the wrong context.
               | 
               | Yes, people who give a damn about doing their job well
               | are often good employees. But the converse is not true:
               | many people who are not good employees do in fact care a
               | great deal. There's no need to convert a descriptive
               | statement about results into a moral judgement of a
               | person's work ethic, and it's often just not factually
               | correct to do so.
        
               | Aeolun wrote:
               | > Sometimes you want to learn, but your talents fail you.
               | 
               | > Sometimes you want to learn, and you learn from someone
               | who isn't good at the thing.
               | 
               | > Sometimes you want to learn, and your environment
               | punishes effectiveness.
               | 
               | > Sometimes you want to learn, and you learn correctly
               | for the wrong context.
               | 
               | Should you just blame not having learned on the that and
               | call it a day?
               | 
               | Sure, some people learn without much effort, but I've
               | seen an equal amount of people that had to put it a
               | massive amount of effort to be considered 'smart'
               | (whatever that means).
               | 
               | I think I consider "well, I tried, it didn't work, so
               | it's forever impossible" to be the definition of
               | mediocre. That's actually still pretty good, as many
               | don't even try, they'll give something up as impossible
               | before even starting.
               | 
               | I know people have reasons for that, but I don't like it.
        
               | osigurdson wrote:
               | >> That's a pretty toxic statement
               | 
               | While we might not like it to be true, no amount of
               | process can turn the average person into a Michael
               | Jordan, a Jimmy Hendrix or a Leo Tolstoy. Assuming that
               | software engineering talent is somehow a uniform
               | distribution and not a normal one like every other human
               | skill is likely incorrect. Don't conflate "toxic" with
               | "true".
        
           | romanows wrote:
           | This is a great observation, thanks.
        
           | namaria wrote:
           | How does you explain the cyclical lay offs, if organizations
           | aren't able to decrease in size?
        
           | makeitdouble wrote:
           | > One person can do the work of 3 and regularly does in
           | startups.
           | 
           | Startup architecture and a 500+ engineer org's architecture
           | are fundamentally different. The job titles are the same, but
           | wont reflect the actual work.
           | 
           | Of course that's always been the case, and applies to the
           | other jobs as well. What a "head of marketing" does at a 5
           | person startup has nothing to do with what the same titled
           | person does at Amazon or Coca Cola.
           | 
           | I've also seen many orgs basically retitling their infra
           | teams members as "devops" and call it a day. Communication
           | between devs from different part of the stack has become
           | easier, and there will be more "bridge" roles in each teams
           | with an experienced dev also making sure it all works well,
           | but I don't see any company that cared about their stack and
           | performance fire half of their engineers because of a new
           | fancy trend in the operation community.
        
             | Aeolun wrote:
             | > Startup architecture and a 500+ engineer org's
             | architecture are fundamentally different
             | 
             | Certainly. The startup architecture is often better. I
             | don't know what exactly leads to those overcomplicated
             | enterprise things, but I suspect its a lack of limitations.
        
               | badpun wrote:
               | Large org architecture is, most importantly, just much
               | larger. The bank I worked in had 6000 _systems_. A lot of
               | that was redundancy due to a lot of mergers and
               | acquisitions that didn't get cleaned up (because it was
               | really hard to do). Compare that to your typical SaaS
               | startup, which typically has at most a couple systems.
        
               | ghaff wrote:
               | Right. You can't run a 100 or even 1,000 person
               | organization the same way you run a 25,000 person
               | organization and many of the people roles are different.
               | The 25,000 person organization can do more but it needs a
               | lot more process to function. For example, the person
               | just doing what they see as needing to be done in the
               | small organization becomes a random loose cannon in the
               | large one.
               | 
               | Someone mentioned DevSecOps upthread. The breaking down
               | of organizational barriers really was more of a smaller
               | company sort of thing. Platform Engineering and SREs are
               | a better model of how this has evolved at scale.
        
               | Aeolun wrote:
               | There's that, sure. But that's also because everyone is
               | _way_ too happy to add another new system to the pile.
               | Large enterprises generally have only so many business
               | functions. I can get to about 100 necessary systems
               | before feeling like they're redundant.
               | 
               | And all these people have been given fodder by the
               | microservices revolution.
        
               | serallak wrote:
               | Somebody said: "God was able to create the world in 6
               | days because he didn't have an installed base."
        
           | nox101 wrote:
           | I think it less to do with judgement and more to do with one
           | person can do the work of 3 in startups because there's
           | several orders of magnitude less coordination and
           | communication that needs to happen.
           | 
           | If you have 5 people in a startup you have 10 connections
           | between them, 20 people = 190 connections, 100 = 4950
           | connections, 1000 people = 499500 connections.
           | 
           | Sure you split then in groups with managers and managers
           | managers etc to break down the connections to less than the
           | max but it's still going to be orders of magnitude more
           | communication and coordination needed than in a startup.
        
           | renegade-otter wrote:
           | In a startup you get _significantly_ more focus time than in
           | a large company. Especially if there is no production yet -
           | there are no clients, no production bugs, no-call.
           | 
           | In a larger company, literally 80% of your job is meetings,
           | Slack, and distractions.
        
         | ipaddr wrote:
         | Developers of the past worked towards the title of webmaster. A
         | webmaster can manage a server, write the code and also be a
         | graphic artist. Developers want to do it all.
         | 
         | What has changed is micromanaging of daily standup which
         | reshapes work into neat packages for conversation but kills a
         | non linear flow and limits exploration making things exactly as
         | requested instead of what could be better.
        
           | SoftTalker wrote:
           | I never thought of a webmaster as meaning that. When I think
           | of webmaster I think of a person who updates the content on a
           | website using a CMS of some sort. Maybe they know a bit of
           | HTML and CSS, how to copy assets to the web server, that sort
           | of thing. But they are not sysadmins or programmers in the
           | conventional sense. Maybe it just varies by employer.
        
             | llIIllIIllIIl wrote:
             | That's just a more junior mastery of a true webmaster.
        
             | ehnto wrote:
             | They were talking about ye olden day I believe. Webmasters
             | used to do every aspect of web development, hosting and
             | all.
             | 
             | There are still people who do that at smaller companies,
             | but you wouldn't call them a webmaster anymore.
        
           | chrismarlow9 wrote:
           | What has also changed in my opinion is the vast landscape of
           | tooling and frameworks at every level of the stack.
           | 
           | We now have containers that run in VMs that run on physical
           | servers. And languages built on top of JavaScript and backed
           | by Shadow Dom and blah blah. Now sure I could easily skip all
           | that and stick a static page on a cdn that points to a lambda
           | and call it a day. But the layers are still there.
           | 
           | I'm afraid only more of this is coming with AI in full swing
           | and fully expect a larger scale internet outage to happen at
           | some point that will be the result of a subtle bug in all
           | this complexity that no single person can fix because AI
           | wrote it.
           | 
           | There's too much stuff in the stack. Can we stop adding and
           | remove some of it?
        
             | immibis wrote:
             | > a lambda
             | 
             | A CGI script, even, which Lambda is the cloudified version
             | of.
        
           | neom wrote:
           | This comment had me laughing pretty hard, and thanks for
           | making me feel old. Anyway, I guess I'm a "webmaster" in
           | theory even tho I've not worked on web since early 2000s,
           | lamp stack handy++ tho. made me laugh because: was a Supabase
           | meetup recently and some kid told me he was full stack, but
           | he can't ssh into a server? I'm supa confused what fullstack
           | means these days.
        
             | ehnto wrote:
             | I have stopped calling myself a full stack developer,
             | because the meaning and the role are kind of ambiguous now.
             | Clients don't know what they can talk to me about
             | (everything), and PMs seem to be unsure of what I can be
             | assigned to (anything).
             | 
             | In fairness as well, the frontend tooling landscape has
             | become so complex that while I'm capable of jumping in, I
             | am in no way an efficient fronted developer off the rip.
        
               | duggan wrote:
               | The tooling has become complex, sure, but so have
               | capabilities and expectations.
               | 
               | I used to "make websites" in the 2000s, then stopped for
               | about 15 years to focus on backend and infrastructure.
               | 
               | Have been getting back into front end the last few months
               | -- there was a good bit of learning and unlearning, but
               | the modern web stack is amazingly productive. Next.js,
               | Tailwind, and Supabase in particular.
               | 
               | Last time I checked in to frontend dev, CSS directives
               | fit on an A4 sheet, valid XHTML was a nerd flex and
               | rounded corners were painstakingly crafted from tables
               | and gifs.
               | 
               | Frontend is a dream now :)
        
         | TeMPOraL wrote:
         | This is happening across the board, not just to IT workers, and
         | I suspect it's the major factor as for why the expected
         | productivity improvements from technology didn't materialize.
         | 
         | Think of your "DevSecOps" people doing 3x the work they should.
         | Do you know _what else_ are they doing? Booking their own
         | business travels. Reconciling and reporting their own expenses.
         | Reporting their own hours, broken down by business categories.
         | Managing their own vacation days. Managing their own meetings.
         | Creating presentations on their own, with graphics they made on
         | their own. Possibly even doing 80% of work on lining up
         | purchases from third parties. And a bunch of other stuff like
         | that.
         | 
         | None of these are part of their job descriptions - in fact, all
         | of these are actively distracting and disproportionally
         | compromise the workers' ability to do their actual jobs. All of
         | these also used to have dedicated specialists, that could do it
         | 10x as efficiently, for fraction of the price.
         | 
         | My hypothesis is this: those specialists like secretaries,
         | internal graphics departments, financial staff, etc. they all
         | were _visible on the balance sheet_. Eliminating those roles
         | does not eliminate the need for their work to be done - just
         | distributes it to everyone in pieces (in big part thanks to
         | self-serve office software  "improving" productivity). That
         | slows everyone down across the board disproportionally, but the
         | beancounters only see the money saved on salaries of the
         | eliminated roles - the slowdown only manifests as a fuzzy,
         | generic sense of loss of productivity, a mysterious costs
         | disease that everyone seems to suffer from.
         | 
         | I say it's not mysterious; I say that there is no productivity
         | gain, but rather productivity loss - but because it turns the
         | costs from legible, overt, into diffuse and hard to count, it's
         | easy to get fooled that money is being saved.
        
           | sgt101 wrote:
           | And yet we are told that competition will determine that
           | capital and talent will flow towards that most efficient
           | organisations over time. Thus, surely organisations that
           | eschewed this practice would emerge and dominate?
           | 
           | So, either capitalism doesn't work, or your thesis isn't
           | quite right...
           | 
           | I have two other counters to offer, first we have seen GDP
           | per capita gradually increasing in major economies for the
           | last 50 years (while the IT revolution has played out). There
           | have been other technical innovations over this time, but I
           | believe that GDP per capita has more than quadrupled in G8
           | economies. The USA and Canada have, at the same time, enjoyed
           | a clear extra boost from fracking and shale extraction, and
           | the USA has arguably enjoyed an extra extra boost from world
           | dominance - but arguably.
           | 
           | The second one is simple anecdote. Hour for hour I now can do
           | far more in terms of development than I did when I was a hard
           | core techie in the 90's and 2000's. In addition I can manage
           | and administer systems that are far more complex than those
           | it took teams of people to run at that time (try running a
           | 10gb size db under load on oracle 7 sitting on top of
           | spinning rust and 64mb ram store for fun) I can also manage a
           | team of 30's expenses, timesheets, travel requests and so on
           | that again would have taken a person to do. I can just do
           | these things and my job as well and I do it mostly in about
           | 50 hrs a week. If I wasn't involved in my people's lives and
           | happy to argue with customers to get things better I could do
           | it in 40 hrs regularally, for sure. But I put some discretion
           | in.
           | 
           | My point is - we are just more productive. It is hard to
           | measure, and anecdote / "lived experience" is a bad type of
           | evidence, but I think it's clearly there. This is why then
           | accountants have been able to reorganise modern business
           | organisations to use fewer people to do more. Have they
           | destroyed value while doing this - totally - but they have
           | managed to get away with it because 7/10 they have been
           | right.
           | 
           | Personally I've suffered from the 3/10 errors. I know many of
           | us on here have, but we shouldn't shut our eyes because of
           | that.
        
             | Retric wrote:
             | > And yet we are told that competition will determine that
             | capital and talent will flow towards that most efficient
             | organisations over time. Thus, surely organisations that
             | eschewed this practice would emerge and dominate?
             | 
             | That's really not how competition works in practice.
             | Verizon and AT&T are a mess internally but their
             | competitors where worse.
             | 
             | GDP per capita has a lot more to do with automation than
             | individual worker productivity. Software ate the world, but
             | it didn't need to be great software to be better than no
             | software.
             | 
             | At large banks you often find thousands of largely
             | redundant systems from past mergers all chugging along at
             | the same time. Meanwhile economies of scale still favor the
             | larger bank because smaller banks have more systems per
             | customer.
             | 
             | So sure you're working with more complex systems, but how
             | much of that complexity is actually inherently beneficial
             | and how much is legacy of suboptimal solutions? HTML and
             | JavaScript are unbelievably terrible in just about every
             | way except ubiquity thus tools / familiarity. When we talk
             | about how efficient things are, it's not on some absolute
             | scale it's all about the tools built to cope with what's
             | going on.
             | 
             | AI may legitimately be the only way programmers in 2070
             | deal with ever more layers of crap.
        
               | Viliam1234 wrote:
               | As long as you have the economies of scale and huge
               | barriers to entry, companies can stay deeply
               | dysfunctional without getting outcompeted. Especially
               | when the same managers rotate between them all and
               | introduce the "best practices" everywhere.
        
           | Viliam1234 wrote:
           | > Think of your "DevSecOps" people doing 3x the work they
           | should. Do you know what else are they doing? Booking their
           | own business travels. Reconciling and reporting their own
           | expenses. Reporting their own hours, broken down by business
           | categories. Managing their own vacation days. Managing their
           | own meetings. Creating presentations on their own, with
           | graphics they made on their own. Possibly even doing 80% of
           | work on lining up purchases from third parties. And a bunch
           | of other stuff like that.
           | 
           | It feels like you are working at the same company as me.
           | 
           | Companies complain all the time about how difficult it is to
           | find competent developers, which is their excuse for keeping
           | most of the teams understaffed. Okay, then how about
           | increasing the developers' productivity by letting them focus
           | on, you know, development?
           | 
           | Why does the paperwork I need to do after visiting a dentist
           | during the lunch break take more time than the visit itself?
           | It's not enough just to bring the receipt to HR; I need to
           | scan the paper, print the scan, get it signed by a manager,
           | start a new process in a web application, ask the manager to
           | also sign it in the web application, etc. I need to check my
           | notes every time I am doing it, because the web application
           | asks me a lot of information that in theory it should already
           | know, and the attached scan needs to have a properly
           | formatted file name, and I need to figure out the name of the
           | person I should forward this process to, rather than the
           | application figuring it out itself. Why??? The business
           | travels were even worse, luckily my current company doesn't
           | do those frequently.
           | 
           | My work is defined by Jira tickets that mostly contain a
           | short description like "implement XY for Z", and it's my job
           | to figure out wtf is "Z", who is the person in our company
           | responsible for "Z", what exactly they meant by "XY", where
           | is any specification, when is the deadline, who am I supposed
           | to coordinate with, and who will test my work. I miss the
           | good old days when we had some kind of task description and
           | the definition of done, but those were the days when we had
           | multiple developers in a team, and now it's mostly just me.
           | 
           | I get invitations to meetings that do not concern me or any
           | of my projects, but it's my job to figure that out, not the
           | job of the person who sent the invitations. Don't get me
           | started on e-mails, because my inbox only became manageable
           | after I wrote dozen rules that put various junk in the spam
           | folder. No, I don't need a notification every time someone in
           | the company made an edit on any Confluence page. No, I don't
           | need notifications about people committing code to projects I
           | am not working on. The remaining notifications often come in
           | triplicate, because first I get a message in Teams, then an
           | e-mail saying that I got a message in Teams, and finally a
           | Windows notification saying that I got a new e-mail. When I
           | return from a vacation, I spend my first day or two just
           | sorting out the flood in my e-mails.
           | 
           | On some days, it is lunchtime before I had an opportunity to
           | write my first line of code. So it's the combination of being
           | Agile-Full-Stack-Dev-Sec-Ops-Cloud-Whatever and the fact that
           | everything around me seems designed to make my work harder
           | that is killing me. This is a system that slows down 10x
           | developers to 1x developers, and us lesser mortals to mere
           | 0.1x developers.
        
           | weweweoo wrote:
           | I agree with the hypothesis. My country has a significant
           | shortage of doctors, and guess what the few doctors spend a
           | large amount of their day on? Paperwork that used to be done
           | by secretaries, whose salary would be maybe 1/3 or the
           | doctor's. It's a massive waste of both money and doctor's
           | potential, but somehow that's what the free market prefers.
        
         | agumonkey wrote:
         | devops is a great idea but if the design/engineering part is
         | not actually easier, it ends up as additional mental effort
        
         | rgblambda wrote:
         | At my company, our sprint board is copy/pasted across teams, so
         | there's columns like "QA/Testing" that just get ignored because
         | our team has no testers.
         | 
         | There's also no platform engineers but IaC has gotten that good
         | that arguably they've become redundant. Architecture decisions
         | get made on the fly by team members rather than by the Software
         | Architect who only shows up now and again to point out
         | something trivial. No Product Owner so again the team work out
         | the requirements and write the tickets (ChatGPT can't help
         | there).
        
         | yieldcrv wrote:
         | Partially agree
         | 
         | It is so much easier to deploy now (and for the last 5-10
         | years) without managing an actual server and OS
         | 
         | It just gets easier, with new complexities added on top
         | 
         | In 2014 I was enamored that I didn't need to be a DBA because
         | platforms as a service were handling all of it in a NoSQL kind
         | of way. And exposed intuitive API endpoints for me.
         | 
         | This hasn't changed, at worst it was a gateway drug to being
         | more hands on
         | 
         | I do fullstack development because it's just one language, I do
         | devops because it's not a fulltime job and cloud formation
         | scripts and further abstraction is easyish, I can manage the
         | database and I haven't gotten vendor locked
         | 
         | You don't have to wait 72 hours for DNS and domain assignments
         | to propagate anymore it's like 5 minutes, SSL is free and takes
         | 30 minutes tops to be added to your domain, CDNs are included.
         | Over 10 years ago this was all so cumbersome
        
         | crystal_revenge wrote:
         | > whether the decline in IT worker quality
         | 
         | I think it entirely has to do with a generation of software
         | people getting into the field (understandably) because it makes
         | them a lot of money, rather than because they're passionate
         | about software. These, by-and-large, are mediocre technical
         | people and they tend to hire other mediocre technical people.
         | 
         | When I look around at many of the newer startups that are
         | popping up they're increasing filled with really talented
         | people. I chalk this up largely to the fact that people that
         | really know what they're doing are increasingly necessary to
         | get a company started in a more cash constrained environment
         | _and_ those people are making sure they hire really talented
         | people.
         | 
         | Tech right now reminds me so much more of tech around
         | 2004-2008, when almost everyone one that was interested in
         | startups was in it because they loved hacking on technical
         | problems.
         | 
         | My experience with Cursor is that it is excellent at doing
         | things mediocre engineers can do, and awful at anything more
         | advanced. It also requires the ability to very quickly
         | understand someone else's code.
         | 
         | I could be wrong, but my suspicion is this will allow a lot of
         | very technical engineers, that don't focus on things like
         | front-end or web app development, to forgo needing to hire as
         | many junior webdev people. Similar to how webmasters
         | disappeared once we have frameworks and tools for quickly
         | building the basic HTML/CSS required for a web page.
        
           | bluepizza wrote:
           | While you have a good point, I think the experts also
           | branched off with some unreasonable requirements. I remember
           | reading Yegge's blog post, years ago, saying that an engineer
           | needed to know bitwise operators, otherwise they were not
           | good enough.
           | 
           | I don't know. Curiosity, passion, focus, creative problem
           | solving seem to me much more important criteria for an
           | engineer to have, rather than bitwise operations. An engineer
           | that has these will learn everything needed to get the job
           | done.
           | 
           | So it seems like we all got off the main road, and started
           | looking for shibboleths.
        
             | crystal_revenge wrote:
             | I have a hard time imagining someone who has "curiosity,
             | passion, focus, creative problem solving" regarding
             | programming and yet hasn't stumbled upon bitwise operators
             | (and then immediately found them interesting). They're
             | pretty fundamental to the craft.
             | 
             | I can see having to refresh on various bit shifting
             | techniques for fast multiplication etc (though any serous
             | program _should_ at least be aware of this), but XOR is
             | fundamental to even knowing the basics of cryptography.
             | Bitwise AND, NOT, and OR are certainly something every
             | serious programmer should have a very solid understanding
             | of no?
        
               | bluepizza wrote:
               | It's probably a matter of domain, but most backend
               | engineers who are working in Java/Golang/Python/Ruby
               | systems have very little use of those, and they don't
               | come up easily. Frontend (web or mobile), it comes up
               | even less.
               | 
               | Can you tell me how this knowledge makes one a serious
               | programmer? In which moments of the development lifecycle
               | they are crucial?
        
               | tel wrote:
               | Without judgement, this feels like a switch up. It seems
               | to me that the prior author did not suggest they were
               | necessary, but instead ambient, available, and
               | interesting. Indeed for many they are not useful.
               | 
               | At the same time, that might be a good indication of
               | passion: a useless but foundational thing you learn
               | despite having zero economic pressure to do so.
               | 
               | In the domains you have worked on, what are examples of
               | such things?
        
               | bluepizza wrote:
               | It is not a switch up. The author said that an engineer
               | would find these during their journey, and I am asking
               | when. I don't have a strongly held opinion here, I
               | literally want to know when. I am curious about it.
        
               | valicord wrote:
               | Bitmasks, enumerating combinations (subsets), parsing
               | binary data, ...
        
               | jfyi wrote:
               | Cryptography, parity checking, sorting, image processing,
               | optimization...
        
               | krisoft wrote:
               | > I literally want to know when
               | 
               | When the curious engineer is reading a book about their
               | choosen programing language. Most likely in the part
               | which describes operators.
               | 
               | Or when they parse something stored in binary.
        
               | tel wrote:
               | Personally, I think it's possible to not encounter them.
               | I surely avoided them for a while in my own career,
               | finding them to be the tricks of a low-level optimization
               | expert of which I felt little draw.
               | 
               | But then I started investigating type systems and proof
               | languages and discovered them through Boolean algebras. I
               | didn't work in that space, it was just interesting. I
               | later learned more practically about bits through parsing
               | binary message fields and wonder what the deal with
               | endianness was.
               | 
               | I also recall that yarn that goes around from time to
               | time about Carmack's fast inverse square root algorithm.
               | Totally useless and yet I recall the first time I read
               | about it how fun a puzzle it was to work out the details.
               | 
               | I've encountered them many times since then despite
               | almost never actually using them. Most recently I was
               | investigating WASM and ran across Linear Memory and once
               | again had an opportunity to think about the specifics of
               | memory layout and how bytes and bits are the language of
               | that domain.
        
               | bluepizza wrote:
               | I've mostly done corporate Java stuff, so a lot of it
               | didn't come up, as Spring was already doing it for me.
               | 
               | I've first got to enjoy low level programming when
               | reading Fabien Sanglard breaking down Carmack's code.
               | Will look into WASM, sounds like it could be a fun read
               | too.
        
               | about3fitty wrote:
               | I found them in 2015 when I was maintaining a legacy app
               | for a university.
               | 
               | The developer that implemented them could have used a few
               | bools but decided to cram it all into one byte using
               | bitwise operators because they were trying to seem
               | smart/clever.
               | 
               | This was a web app, not a microcontroller or some other
               | tightly constrained environment.
               | 
               | One should not have to worry about solar flares! Heh.
        
               | jfyi wrote:
               | > trying to seem smart/clever
               | 
               | Nobody that uses bit flags do it because they think it
               | makes them look clever. If anything they believe it looks
               | like using the most basic of tools.
               | 
               | > One should not have to worry about solar flares!
               | 
               | Do you legitimately believe that a bool is immune to
               | this? Yeah, I get this a joke, but it's one told from a
               | conceit.
               | 
               | This whole post comes off as condescending to cover up a
               | failure to understand something basic.
               | 
               | I get it, someone called you out on it at some point in
               | your life and you have decided to strike back, but come
               | on... do you really think you benefit from this display?
        
               | Apfel wrote:
               | I've come across bitwise shift operators literally once
               | in enterprise webapp world, specifically on this precise
               | problem: https://stackoverflow.com/a/12900504/13238134.
               | 
               | I made a concerted effort to understand the code before I
               | made any effort to adapt it to the repo I was working on.
               | I'm glad I did (although honestly, it wasn't in the
               | remotest bit necessary to solve the task at hand!)
        
               | sroussey wrote:
               | > trying to seem smart/clever.
               | 
               | Maybe. Every time I write something I consider clever, I
               | often regret it later.
               | 
               | But young people in particular tend to write code using
               | things they don't need because they want experience in
               | those things. (Just look at people using kubernetes long
               | before there is any need as an example). Where and when
               | this is done can be good or bad, it depends.
               | 
               | Even in a web app, you might want to pack bools into
               | bytes depending on what you are doing. For example, I've
               | done stuff with deck.gl and moving massive amounts of
               | data between webworkers and the size of data is material.
               | 
               | It did take a beat to consider an example though, so I do
               | appreciate your point.
               | 
               | Coming from a double major including EE though, all I
               | have to say is that everyone's code everywhere is just a
               | bunch of NOR gates. Now if you want to increase your
               | salary, looking up why I say "everything is NOR" won't be
               | useful. But if you are curious, it is interesting to see
               | how one Boolean operand can implement everything.
        
               | mewpmewp2 wrote:
               | I can understand writing your own instance and deployment
               | "orchestrator", but I would not consider trying k8s for
               | fun, because it just seems like some arbitrary config you
               | have to learn for something someone else has built.
        
               | mewpmewp2 wrote:
               | It might be an indication for passion, but not knowing
               | them does not indicate lack of it.
               | 
               | The thing is there are unfathomable amount of such things
               | to learn, and if somebody doesn't stumble upon them or
               | won't spend time with them it doesn't indicate lack of
               | it.
        
               | usrnm wrote:
               | You're talking past one another. The whole point of being
               | interested and passionate about a topic is that you want
               | to learn stuff regardless of whether or not it's useful
        
               | BadHumans wrote:
               | I can be interested in front-end development and learn
               | everything there is to know about templating while never
               | knowing about bitwise operators. Point is domains are so
               | large that even if you go beyond what is required and
               | learn for the sake of curiosity, you can still not touch
               | what others may consider fundamental.
        
               | mewpmewp2 wrote:
               | What if I am passionate about stuff that is useful and
               | helps me build more?
        
               | Viliam1234 wrote:
               | Yeah, that sounds like someone claiming to be passionate
               | about math, but who never heard of prime numbers. It's
               | not that prime numbers are important for literally
               | _everything_ in math (although coincidentally they also
               | happen to be important for cryptography), it 's just that
               | it's practically impossible to have high-school knowledge
               | of math without hearing about them.
               | 
               | What other elementary topics are considered too nerdy by
               | the cool people in IT today? Binary numbers, pixels...?
               | What are the cool kids passionate about these days?
               | Buzzwords, networking, social networks...?
        
               | ozim wrote:
               | There is a world of difference between stumbling upon,
               | knowing about in general and being proficient with
               | -because of using on regular basis- some tech piece.
               | 
               | I do know how bitwise AND, NOT, OR, XOR work but I don't
               | solve problems on day to day basis that use those.
               | 
               | If you give me two bytes to do the operations manually it
               | is going to be a piece of cake for me.
               | 
               | If you give me a problem where most optimal solution is
               | using combination of those operations I most likely will
               | use other solution that won't be optimal because on my
               | day to day work I use totally different things.
               | 
               | A bit of a tangent is that is also why we have "loads of
               | applicants willing to do tech jobs" and at the same time
               | "skilled workers shortage" - if company needs someone who
               | can solve optimally problems with bitwise operations
               | "right here right now", I am not the candidate, given
               | couple of months working on those problems I would get
               | proficient rather fast - but no one wants to wait couple
               | of months ;)
        
               | mgkimsal wrote:
               | > given couple of months working on those problems I
               | would get proficient rather fast - but no one wants to
               | wait couple of months ;)
               | 
               | yet they'll take a couple of months interviewing folks,
               | and generally not find the unicorn they're after.
        
             | krosaen wrote:
             | Yegge no longer thinks knowing these kinds of details
             | matter so much, can't find the exact timestamp but it
             | relates to the skills shifting to being really good at
             | prompting and quickly learning what is relevant
             | 
             | https://youtu.be/dTVXTo6Umfg?si=bBBwSutb6ned7o-X
        
             | rachofsunshine wrote:
             | This is something I have some expertise in (I run a
             | recruiting company that uses a standardized interview, and
             | I used to run assessments for another). It's also something
             | I've thought a lot about.
             | 
             | There is absolutely truth to what you're saying. But like
             | most obvious observations that aren't playing themselves
             | out, there's more to it than that.
             | 
             | -----
             | 
             | One: curiosity, passion, and focus matter a lot. Every
             | company that hires through us is looking for them in one
             | form or another. But they still have to figure out a means
             | by which to measure them.
             | 
             | One company thinks "passion" takes the form of "wanting to
             | start a company someday", and worries that someone who
             | isn't that ambitious won't be dedicated enough to push past
             | the problems they run into. But another thinks that
             | "passion" is someone who wants to tinker with optimizing
             | some FPGA all night long because the platonic ideal of
             | making a 15% more efficient circuit for a crypto node is
             | what Real Technical Engineers do.
             | 
             | These companies are not just looking for passion in
             | practice, but for "passion _for_ ".
             | 
             | And so you might say okay, screen for that. But the problem
             | is that passion-for is easily faked - and is something you
             | can easily fail to display if your personality skews the
             | wrong way.
             | 
             | When I interviewed at my previous company many years ago,
             | they asked me why I wanted to work there. I answered
             | honestly: it seemed like a good job and that I'd be able to
             | go home and sleep at night. This was a TERRIBLE answer
             | that, had I done less well on other components of the
             | interview or had they been interviewing me for more than a
             | low-level job, would likely have disqualified me. It
             | certainly would not have convinced them I had the passion
             | to make something happen. But a few years later I was in
             | the leadership of that company, and today I run a successor
             | to it trying to carry the torch when they could not.
             | 
             | If you asked me the same question today about why I started
             | a company, an honest answer would be similar: I do this
             | business because I know it and because I enjoy its
             | challenges, not because it's the Most Important Thing In
             | The World To Me. I'm literally a startup founder, and I
             | would not pass 90% of "see if someone's passionate enough
             | to work at a startup" interview questions if I answered
             | them honestly.
             | 
             | On the flip side, a socially-astute candidate who
             | understands the culture of the company and the person
             | they're interviewing with can easily fake these signals.
             | There is a reason that energetic extraverts tend to do well
             | in business - or rather, there are hundreds of reasons, and
             | this is one of them. Social skills let you manipulate
             | behavioral interviews to your advantage, and if you're an
             | interviewer, you don't want candidates doing that.
             | 
             | So in effect, what you're doing here is replacing one
             | shibboleth that has something to do with technical skill,
             | with another that is more about your ability to read an
             | interviewer and "play the game". Which do you think
             | correlates better with technical excellence?
             | 
             | -----
             | 
             | And two: lots of people are curious, passionate, energetic,
             | and _not skilled_.
             | 
             | You say that a person with those traits "will learn"
             | everything needed. That might even be true. But "will
             | learn" can be three years, five years, down the line.
             | 
             | One of the things we ask on our interview is a sort of
             | "fizzbuzz-plus" style coding problem (you can see a similar
             | problem - the one we send candidates to prep them - at
             | https://www.otherbranch.com/practice-coding-problem if you
             | want to calibrate yourself on what I'm about to say). It is
             | not a difficult problem by any normal standard. It requires
             | nothing more than some simple conditional logic, a class or
             | two, and the basic syntax of the language you're using.
             | 
             | Many apparently-passionate, energetic, and curious
             | engineers simply cannot do it. The example problem I linked
             | is a bit easier than our real one, but I have reliable data
             | on the real one, which tells me that sixty-two percent of
             | candidates who take it do not complete even the second
             | step.
             | 
             | Now, is this artificial? Yeah, but it's artificially
             | _easy_. It involves little of the subtlety and complexity
             | of real systems, by design. And yet very often we get code
             | that (translated into the example problem I linked) is the
             | rough equivalent of:                 print("--*-")
             | 
             | with no underlying data structure, or                 if
             | (row == 1 && col == 3)
             | 
             | where the entire board becomes an immutable n^2 case
             | statement that would have to be wholly rewritten if the
             | candidate were to ever get to later steps of the problem.
             | 
             | Would _you_ recommend someone who wrote that kind of code,
             | no matter how apparently curious, passionate, or energetic
             | they were?
        
               | bluepizza wrote:
               | This has been one of the most interesting and insightful
               | replies I've ever got in a discussion. Thank you for
               | taking the time and explaining your points. It really
               | resonates with what I've seen in real life.
        
               | tway_GdBRwW wrote:
               | I have failed simple coding interviews because of stress.
               | Been coding for 2 decades or more, know I'm good at it,
               | and have had multiple other people confirm this. But
               | sometimes under interview stress, I can lock up.
               | Especially if something goes fubar like their on-line
               | editor.
               | 
               | If I was at work, that wouldn't be a problem, take 3
               | minutes and come back to it. You don't have that in an
               | interview.
               | 
               | I'm thinking of the observation from the speed climbing
               | event at the Olympics. They had set up the course wrong,
               | and one of the holds in one of the lanes was like 2cm out
               | of position-- and it wasn't even a hold that was used by
               | the climbers. But that was enough that people in that
               | lane consistently lost.
        
             | MrDarcy wrote:
             | > I remember reading Yegge's blog post, years ago, saying
             | that an engineer needed to know bitwise operators,
             | otherwise they were not good enough.
             | 
             | I think he's right, nearly every engineer needs a basic
             | understanding IP routing more today than in the 2000's with
             | how connected the cloud is. Few engineers do, however.
             | 
             | Every time you need to ask yourself, "Where is this packet
             | going?" you're using bitwise operators.
        
         | badpun wrote:
         | In every team I've worked with, DevOps didn't do any of the
         | development, while being called DevOps. The only thing they
         | were developing were automation for build, tests and
         | deployment. Other than that, they're still a separate role from
         | development. The main difference between pre-devops days and
         | now, is that operations people used to work in dedicated
         | operations teams (that's still the case in some highly
         | regulated places, e.g. banks), and now they work alongside
         | developers.
        
         | ThinkBeat wrote:
         | I think this is a valid and important point.
         | 
         | You can categorize get people who are average at several things
         | devOps. But you will not get someone with a deep background and
         | understanding in all the fields at the same time.
         | 
         | I come from a back end background. and I appalled at how little
         | the devOps I have worked with know about even SQL.
         | 
         | Having teams with people who are experts at different things
         | will give a lot better output. It will be more expensive.
         | 
         | Most devOps I have met, with a couple of exceptions, are front
         | end devs who knows a couple of Javascript, knows Javascript and
         | Typescript. When it comes to the back-end it is getting
         | everything possible form npm and stringing it together.
        
         | moi2388 wrote:
         | From my experience it's agile/scrum being poorly implemented.
         | 
         | So many companies no longer think about quality or design.
         | "Just build this now and ship it, we can modify it later", not
         | thinking about the ramifications.
         | 
         | No thinking about design at all anymore, then having tech debt
         | but not allocating any sprints to mitigate it.
        
           | Viliam1234 wrote:
           | Sometimes it feels like there is no planning... and as a
           | consequence also no documentation. Or maybe there are tons of
           | outdated documentation because the project is so agile that
           | it was redesigned a few dozen times, but instead of updating
           | the original documents and diagrams, the architects always
           | only produced a diff "change this to this", and those diffs
           | are randomly placed in Confluence, most of them as attached
           | Word or PowerPoint documents.
           | 
           | "But developers hate to write documentation" they say. Okay
           | genius, so why don't you hire someone who is not a developer,
           | someone who doesn't spend their entire time sprinting from
           | one Jira task to another, someone who could focus on
           | understanding how the systems work and keeping the documents
           | up to date. It would be enough to have one such person for
           | the entire company; just don't also give them dozen extra
           | roles that would distract them from their main purpose. "Once
           | we hired a person like this, but they were not competent for
           | their job and everyone complained about docs, so we gave up."
           | Yeah, I suspect you hired the cheapest person available, and
           | you probably kept giving them extra tasks that were always
           | higher priority than this. But nice excuse. Okay, back to
           | having no idea how anything works, which is not a problem
           | because our agile developers can still somehow handle it,
           | until they burn out and quit.
        
             | mike_hearn wrote:
             | What you're asking for is not for the company to hire
             | technical writers but reverse engineers. That's a much
             | harder role to hire as the people who have the skills to do
             | it are the same developers who don't want to do it.
             | 
             | Ultimately, mature developers just have to write docs.
             | There's no alternative or lifestyle hack managers can come
             | up with.
        
         | skinney6 wrote:
         | Remember 10x? "Are you a 10x developer?!" lol
        
         | ozim wrote:
         | For me DevOps/DevSecOps is reaction movement against toxic turf
         | wars and silos of functions from ambitious people - not some
         | business people scheme to reduce headcount and push more
         | responsibilities.
         | 
         | I have received e-mails "hey thats DB don't touch that stuff
         | you are not a DBA" or "hey developers shouldn't do QA" while
         | the premise might be right, lots of things could be done much
         | quicker.
         | 
         | I have seen throwing stuff over the wall "hey I am a developer,
         | I don't care about some server stuff", "hey my DB is working
         | fine it must be you application" or months of fixing an issue
         | because no one would take the responsibility across the chain.
        
           | elric wrote:
           | > For me DevOps/DevSecOps is reaction movement against toxic
           | turf wars and silos of functions from ambitious people
           | 
           | Well the DevOps grandfathers (sorry, Patrick & Kris, but
           | you're both grey now) certainly wanted to tear down the walls
           | that had been put up between Devs & Ops. Merging Dev & Ops
           | practices has been a fundamentally good change. Many tasks
           | that used to be dedicated Ops/Infra work are now so automated
           | that a Dev can do them as part of their daily work (e.g.
           | spinning up a test environment or deploying to production).
           | This has been, in a sense, about empowerement.
           | 
           | The current "platform engineering"-buzz builds on top of
           | that.
           | 
           | > - not some business people scheme to reduce headcount and
           | push more responsibilities
           | 
           | I imagine that many business people don't understand tech
           | work well enough to deliberately start such schemes. Reducing
           | toil could probably result in lower headcount (no one likes
           | being part of a silo that does the same manual things over
           | and over again just to deploy to production), but by the same
           | count the automations don't come free. They have to be set up
           | and maintained. Once one piece of drudgery has been
           | automated, something else will rear its ugly head. Automating
           | the heck out of boring shit is not only more rewarding work,
           | it's also a force multiplier for a team. I hope business
           | people see those benefits and aim for them, instead of the
           | aforementioned scheming.
        
         | spacecadet wrote:
         | This is happening across most industries. My friends in
         | creative fields are experiencing the same "optimizations". I
         | call this the great lie of productivity. The worker
         | (particularly tech workers) have dreamed of reducing their time
         | spent doing "shit jobs" while amplifying their productivity, so
         | that we can spend more time doing what is meaningful to us...
         | In reality businesses sell out to disconnected private equity
         | and chase "growth" just to boost the wealth of the top.
         | Ultimately this has played out as optimizing work force by
         | reducing head count and spreading workers over more roles.
        
         | KronisLV wrote:
         | > Now you have new devs coming into insanely complex
         | n-microservice environments, being asked to learn the existing
         | codebase, being asked to learn their 5-tool CI/CD pipelines
         | (and that ain't being taught in school), being asked to learn
         | to be DBAs, and also to keep up a steady code release cycle.
         | 
         | If fewer people need to undertake more roles, I think the
         | simplest things you can get away with should be chosen, yet for
         | whatever reason that's not what's happening.
         | 
         | Need a front end app? Go for the modern equivalent of
         | jQuery/Bootstrap, e.g. something like Vue, Pinia and PrimeVue
         | (you get components out of the box, you can use them, you don't
         | have to build a whole design system, if needed can still do
         | theming). Also simpler than similar setups with Vuex or Redux
         | in React world.
         | 
         | Need a back end app? A simple API only project in your stack of
         | choice, whether that's Java with Dropwizard (even simpler than
         | Spring Boot), C# with ASP.NET (reasonably simple out of the
         | box), PHP with Laravel, Ruby with Rails, Python with
         | Flask/Django, Node with Express etc. And not necessarily
         | microservices but monoliths that can still horizontally scale.
         | A boring RESTful API that shuffles JSON over the wire, most of
         | the time you won't need GraphQL or gRPC.
         | 
         | Need a database? PostgreSQL is pretty foolproof, MariaDB or
         | even SQLite can also work in select situations. Maybe something
         | like Redis/Valkey or MinIO/SeaweedFS, or RabbitMQ for specific
         | use cases. The kinds of systems that can both scale, as well as
         | start out as a single container running on a VPS somewhere.
         | 
         | Need a web server? Nginx exists, Caddy exists, as does Apache2.
         | 
         | Need to orchestrate containers? Docker Compose (or even Swarm)
         | still exist, Nomad is pretty good for multi node deployments
         | too, maybe some relatively lightweight Kubernetes clusters like
         | K3s with Portainer/Rancher as long as you don't go wild.
         | 
         | CI/CD? Feed a Dockerfile to your pipeline, put the container in
         | Nexus/Artifactory/Harbor/Hub, call a webhook to redeploy, let
         | your monitoring (e.g. Uptime Kuma) make sure things remain
         | available.
         | 
         | Architectures that can fit in one person's head. Environments
         | where you can take every part of the system and run it locally
         | in Docker/Podman containers on a single dev workstation. This
         | won't work for huge projects, but very few actually have
         | projects that reach the scale where this no longer works.
         | 
         | Yet, this is clearly not what's happening, that puzzles me. If
         | we don't have 20 different job titles involved in a project,
         | then the complexity covered under the "GlassFish app server
         | configuration manager" position shouldn't be there in the first
         | place (once had a project like that, there was supposed to be a
         | person involved who'd configure the app server for the
         | deployments, until people just went with embedded Tomcat inside
         | of deployable containers, that complexity suddenly dissipated).
        
       | godelski wrote:
       | B(i)ased as fuck.
       | 
       | I think this post from the other day adds some important
       | context[0]. In that study kids with access to GPT did way more
       | practice problems but worse on the test. But the most important
       | part was that they found that while GPT usually got the final
       | answer right that the logic was wrong, meaning that the answer is
       | wrong. This is true for math and code.
       | 
       | There's the joke: there's two types of 10x devs, those that do
       | 10x work and those who finish 10x jira tickets. The problem with
       | this study is the assumptions that it makes, which is quite
       | common and naive in our industry. They assume that PRs and
       | commits are measures of productivity and they assume passing
       | review is a good quality metric. These are so variable between
       | teams. Plenty are just "lgtm" reviews.
       | 
       | The issue here is that there's no real solid metric for things
       | like good code. Meeting the goals of a ticket doesn't mean you
       | haven't solved the problem so poorly you are the reason 10 new
       | tickets will be created. This is the real issue here and the only
       | real way to measure it is using Justice Potter's test (I know it
       | when I see it), and requires an expert evaluator. In other words,
       | tech debt. Which is something we're seeing a growing rise in, all
       | the fucking enshitification.
       | 
       | So I don't think that study here contradicts [0], in fact I think
       | they're aligned. But I suspect people who are poor programmers
       | (or non programmers) will use this at evidence for what they want
       | to see. Believing naive things like lines of code, number of
       | commits/PRs, etc are measures of productivity rather than hints
       | of measure. I'm all for "move fast and break things" as long as
       | there's time set aside to clean up the fucking mess you left
       | behind. But there never is. It's like we have businesses ADHD.
       | There's so much lost productivity because so much focus is placed
       | on short term measurements and thinking. I know medium and long
       | term thinking are hard, but humans do hard shit every day. We can
       | do a lot better than a shoddy study like this.
       | 
       | [0] https://news.ycombinator.com/item?id=41453300
        
       | Delk wrote:
       | It's probably worth going a bit deeper into the paper before
       | picking up conclusions. And I think the study could really do a
       | bit of a better job of summarizing its results.
       | 
       | The abstract and the conclusion only give a single percentage
       | figure (26.08% increase in productivity, which probably has too
       | many decimals) as the result. If you go a bit further, they give
       | figures of 27 to 39 percent for juniors and 8 to 13 percent for
       | seniors.
       | 
       | But if you go deeper, it looks like there's a lot of variation
       | not only by seniority, but also by the company. Beside pull
       | requests, results on the other outcome measures (commits, builds,
       | build success rate) don't seem to be statistically significant at
       | Microsoft, from what I can tell. And the PR increases only seem
       | to be statistically significant for Microsoft, not for Accenture.
       | And even then possibly only for juniors, but I'm not sure I can
       | quite figure out if I've understood that correctly.
       | 
       | Of course the abstract and the conclusion have to summarize. But
       | it really looks like the outcomes vary so much depending on the
       | variables that I'm not sure it makes sense to give a single
       | overall number even as a summary. Especially since statistical
       | significance seems a bit hit-and-miss.
       | 
       | edit: better readability
        
         | baxtr wrote:
         | Re 26.08%: I immediately question any study (outside of physics
         | etc) that provides two decimal places.
        
           | kkyr wrote:
           | Why?
        
             | jayd16 wrote:
             | The assumption is that they almost certainly did not have
             | the sample size to justify two decimal places. If they want
             | two decimals for aesthetics over properly honoring
             | significant figures then it calls the scientific rigor into
             | question.
        
               | energy123 wrote:
               | But they say "26.08% increase (SE: 10.3%)", so they make
               | it clear that there's a lot of uncertainty around that
               | number.
               | 
               | They could have said "26% (rounded to 0 dp)" or
               | something, but that conveys even less information about
               | the amount of uncertainty than just saying what the
               | standard error is.
        
               | Delk wrote:
               | They could still have gone for one decimal. Or possibly
               | even none, considering the magnitude of the SE, but I get
               | that they might not want to say "SE: 10%".
               | 
               | The second decimal point doesn't essentially add any
               | information because the data can't provide information at
               | that precision. It's noise but being included in the
               | summary result makes it implicitly look like information.
               | Which is exactly why including it seems a bit
               | questionable.
               | 
               | That's not the major issue with the study, though, it's
               | just one of the things that caught my eye originally.
        
         | svnt wrote:
         | To get a better picture of how this comes about: Microsoft has
         | a study for their own internal product use, and wants to show
         | its efficacy. The results aren't as broadly successful as one
         | would hope.
         | 
         | Accenture is the kind of company that cooperates and co-markets
         | with large orgs like Microsoft. With ~300 devs in the pool they
         | hardly move the population at all, and they cannot be assumed
         | to be objective since they are building a marketing/consulting
         | division around AI workflows.
         | 
         | The third anonymous company didn't actually have a randomized
         | controlled trial, so it is difficult to say how one should
         | combine their results with the RCTs. Additionally, I am sure
         | that more than one large technology company went through
         | similar trials and were interested in knowing the efficacy of
         | them. That is to say, we can assume other data exist than just
         | those included in the results.
         | 
         | Why did they select these companies, from a larger sample set?
         | Probably because Microsoft and Accenture are incentivized by
         | adoption, and this third company was picked through p-hacking.
         | 
         | In particular, this statement in the abstract is a very bad
         | sign:
         | 
         | > Though each separate experiment is noisy, combined across all
         | three experiments
         | 
         | It is essentially an admission that individually, the companies
         | don't have statistically significant results, but when we
         | combine these three (and probably only these three) populations
         | we get significant results. This is not science.
        
           | Delk wrote:
           | Yeah, it does seem fishy.
           | 
           | The third company seems a bit weird to include in other ways
           | as well. In raw numbers in table 1, there seem to be exactly
           | zero effects from the use of CoPilot. Through the use of
           | their regression model -- which introduces other predictors
           | such as developer-fixed and week-fixed effects -- they
           | somehow get an estimated effect of +54%(!) from CoPilot in
           | the number of PRs. But the standard deviations are so far
           | through the roof that the +54% is statistically insignificant
           | within the population of 3000 devs.
           | 
           | Also, they explain the introduction of the week fixed effect
           | as a means of controlling for holidays etc., but to me it
           | sounds like it could also introduce a lot of unwarranted
           | flexibility into the model. But this is a part where I don't
           | understand their methodology well enough to tell whether
           | that's a problem or not.
           | 
           | I generally err towards the benefit of the doubt when I don't
           | fully understand or know something, which is why I focused
           | more on the presentation of the results than on criticizing
           | the study and its methodology in general. I'd have been okay
           | with the summary saying "we got an increase of 27.3% for
           | Microsoft and no statistically significant results for other
           | participants".
           | 
           | But perhaps I should have been more critical.
        
         | throwthrowuknow wrote:
         | Personally, my feeling is that some of the difference is
         | accounted for by senior devs who are applying their experience
         | in code review and testing to the generated code and are
         | therefore spending more time pushing back asking for changes,
         | rejecting bad generations and taking time to implement tests to
         | ensure the new code or refactor works as expected. The junior
         | devs are seeing more throughput because they are working on
         | tasks that are easier for the LLM to do right or making the
         | mistake of accepting the first draft because it LGTM.
         | 
         | There is skill involved in using generative code models and
         | it's the same skill you need for delegating work to others and
         | integrating solutions from multiple authors into a cohesive
         | system.
        
       | zone411 wrote:
       | This was likely Copilot based on GPT 3.5.
       | 
       | Microsoft: September 2022 to May 3rd, 2023
       | 
       | Accenture: July 2023 to December 2023
       | 
       | Anonymous Company: October 2023 to ?
       | 
       | Copilot _Chat_ update to GPT-4 was Nov 30, 2023:
       | https://github.blog/changelog/label/copilot/
        
         | jjcm wrote:
         | Great call out. I'd be extremely curious what the results
         | looked like with something like cursor or just using claude out
         | of the box. I'm amazed at just how easy it is to get simple
         | small scripts up and going now with claude.
        
       | agentultra wrote:
       | Empirical studies like this are hard to conduct... I'm curious
       | though. This study was authored by at least two folks _from
       | Microsoft_ and one of the sample groups in the study was also
       | _from Microsoft_. The reason this seems to stand out to me as odd
       | is that Microsoft also owns the AI tool being used in the study
       | and would definitely want a favourable conclusion in this paper.
       | 
       | Is that a flag we should be watching out for?
        
         | anonymousDan wrote:
         | It sure is.
        
       | gibsonf1 wrote:
       | Yes, but what about all the bugs created and time to debug?
        
       | croes wrote:
       | >Notably, less experienced developers showed higher adoption
       | rates and greater productivity gains.
       | 
       | If you start low it's easier to get greater growth rates.
       | 
       | The biggest is the first step, 0% to 1% is infinite growth.
        
       | zombiwoof wrote:
       | I sometimes wonder if LeetCode killed the Software Star
        
       | MBCook wrote:
       | It lets people make more PRs. Woohoo. Who cares?
       | 
       | Does it increase the number of things that pass QA?
       | 
       | Do the things done with AI assistance have fewer bugs caught
       | after QA?
       | 
       | Are they easier to extend or modify later? Or do they have rigid
       | and inflexible designs?
       | 
       | A tool that can help turn developers into unknown quality code
       | monkeys is not something I'm looking for. I'm looking for a tool
       | that helps developers find bugs or design flaws in what they're
       | doing. Or maybe write well designed tests.
       | 
       | Just counting PRs doesn't tell me anything useful. But it
       | triggers my gut feeling that more code per unit time = lower
       | average quality.
        
         | anthomtb wrote:
         | Dev - "Hey copilot, please split this commit into 5 separate
         | commits"
         | 
         | Copilot - "okay I can do that for you! Here are your new
         | commits!"
         | 
         | Senior Dev - "why? Your change is atomic. I'll tell management
         | to f-off, in a kind way, if they bring up those silly change-
         | per-month metrics again"
        
       | makk wrote:
       | > Notably, less experienced developers showed higher adoption
       | rates and greater productivity gains.
       | 
       | And that is why demand for senior developers is going to go
       | through the roof. Who is going to unfuck the giant balls of mud
       | those inexperienced devs are slinging together? Who's going to
       | keep the lights on?
        
       | charlie0 wrote:
       | On the surface, this appears to be great news.
       | 
       | However, there's a big question as to whether these are short
       | productivity gains vs longer lasting gains. There's a hypothesis
       | that the AI generate code will slowly spaghetti-fy a codebase.
       | 
       | Is 1-2 years sufficiently long enough to take this into
       | consideration? Or disprove the spaghettification?
        
       | dheerkt wrote:
       | Study funded by Microsoft, conducted by Microsoft engineers, says
       | Microsoft product makes engineers +X% more productive.
        
       | PaulHoule wrote:
       | It beats StackOverflow, but that might be saying more about SO.
        
       | andai wrote:
       | Didn't Microsoft find way higher gains in a previous study? I
       | wonder where the differences (also between companies) come from.
        
       | michaelteter wrote:
       | ChatGPT and to a lesser degree Copilot have been very valuable to
       | me this year.
       | 
       | Copilot often saves me a lot of typing on a 1-3 line scope,
       | occasionally surprising me with exactly what I was about to write
       | on a 5-10 line scope. It's really good during rearrangement and
       | early refactoring (as you are building a new thing and changing
       | your mind as you go about code organization).
       | 
       | ChatGPT, or "Jimmy" - as I like to call him - has been great for
       | answering syntax questions, idiom questions, etc. when applying
       | my general skills based on other languages to ones I'm less
       | familiar with.
       | 
       | It has also been good for "discussing" architecture approaches to
       | a problem with respect to a particular toolset.
       | 
       | With proper guidance and very clear prompting, I usually get
       | highly value responses.
       | 
       | I would rough guess that these two tools have saved me 2-3 months
       | of solo time this year - nay, since April.
       | 
       | One I get down in the deep details, I use Jimmy much less often.
       | But when I hit something new, or something I long since forgot,
       | he's ready to be relative expert / knowledge base.
        
         | iLoveOncall wrote:
         | It saved you 2-3 months over a 5 months period?
         | 
         | Unless one is an absolutely terrible developer working on
         | incredibly simple problems, this is simply impossible.
        
       | clbrmbr wrote:
       | I used to be super productive at the raw keyboard. Then RSI got
       | to me. But with CoPilot, I'm back to my normal productivity. For
       | me it's a life-saver as it allows fast typing with minimal hand
       | strain.
        
       | throwaway_2494 wrote:
       | I think that over time, AI will tend to make all programmers into
       | average programmers.
       | 
       | For those who are beginners, it can bring their skills up and
       | make them look like better developers than they are.
       | 
       | More insidiously, expert programmers who overuse of AI might also
       | regress to the mean as their skills deteriorate.
        
       | dimal wrote:
       | It matters what you measure. The studies only looked at Copilot
       | usage.
       | 
       | I'm an experienced engineer. Copilot is worse than useless for
       | me. I spend most of my time understanding the problem space,
       | understanding the constraints and affordances of the environment
       | I'm in and thinking about the code I'm going to write app. When I
       | start typing code, I know what I'm going to write, and so a
       | "helpful" Copilot autocomplete is just distraction for me. It
       | makes my workflow much much worse.
       | 
       | On the other hand, AI is incredibly useful for all of those steps
       | I do before actually coding. And sometimes getting the first
       | draft of something is as simple as a well crafted prompt
       | (informed by all the thinking I've done prior to starting. After
       | that, pairing with an LLM to get quick answers for all the little
       | unexpected things that come up is extremely helpful.
       | 
       | So, contrary to this report, I think that if experienced
       | developers use AI well, they could benefit MORE than
       | inexperienced developers.
        
         | dclowd9901 wrote:
         | I think my experience mirrors your own. We have access at my
         | job but I've turned it off recently as it was becoming too
         | noisy for my focus.
         | 
         | I found the tool to be extremely valuable when working in
         | unfamiliar languages, or when doing rote tasks (where it was
         | easy for me to identify if the generated code was up to snuff
         | or not).
         | 
         | Where I think it falters for me is when I have a very clear
         | idea of what I want to do, and its _similar_ to a bog standard
         | implementation, but I'm doing something a bit more novel. This
         | tends to happen in "reduce"s or other more nebulous procedures.
         | 
         | As I'm a platform engineer though, I'm in a lot of different
         | spaces: Bash, Python, browser, vanilla JS, TS, Node, GitHub
         | actions, Jenkins Java workflows, Docker, and probably a few
         | more. It gives my brain a break while I'm context switching and
         | lets me warm up a bit when I move from area to area.
        
           | mlinhares wrote:
           | the fact that Copilot hallucinates methods/variables/classes
           | that do not exist in compiled languages where it could know
           | they do not exist is just unbelievable to me.
           | 
           | it really feels like people building the product do not care
           | about the UX.
        
           | memorylane wrote:
           | > (where it was easy for me to identify if the generated code
           | was up to snuff or not).
           | 
           | I think you have nailed it with this comment. I find copilot
           | very useful for boilerplate - stuff that I can quickly
           | validate.
           | 
           | For stuff that is even slightly complicated, like simple if-
           | then-else, I have wasted hours tracking down a subtle bug
           | introduced by copilot (and me not checking it properly)
           | 
           | For hard stuff it is faster and more reliable for me to write
           | the code than to validate copilots code.
        
         | maxrecursion wrote:
         | For me, AI is like a documentation/Googlefu accelerant. There
         | are so many little things that I know exactly what I want to
         | do, but can't remember the syntax or usage.
         | 
         | For example, writing IaC especially for AWS, I have to look up
         | tons of stuff. Asking AI gets me answers and examples extremely
         | fast. If I'm learning the IaC for a new service I'll look over
         | the AWS docs, but if I just need a quick answer/refresher, AI
         | is much faster than going and looking it up.
        
           | foobarian wrote:
           | I find that for AWS IaC specifically with a high pace of
           | releases and a ton of versions dating back more than a decade
           | the AI answers are a great spring board but require a bit of
           | care to avoid mixing APIs.
        
           | jiiam wrote:
           | My experience with IaC output is that it's so broken to not
           | only be unhelpful but actively harmful.
        
           | cyrialize wrote:
           | This is exactly how I think of it as well.
           | 
           | Search is awful when you can't remember the exact term with
           | your language/framework/technology - but highlighting code
           | and asking AI helps out a ton.
           | 
           | Before, I'd search over and over fine-tuning my search until
           | I get what I want. Tools like copilot make that fine-tuning
           | process much shorter.
        
         | huijzer wrote:
         | > So, contrary to this report, I think that if experienced
         | developers use AI well, they could benefit MORE than
         | inexperienced developers.
         | 
         | A psychology professor I know says this holds in general. For
         | any new tool, who will be able to get the most benefits out of
         | it? Someone with a lot of skill already or someone with fewer
         | skill? With less skill, there is even a chance that the tool
         | has a negative effect.
        
         | heed wrote:
         | I like to use copilot when writing tests. It's not always
         | perfect but makes things less tedious for me.
        
           | eric_h wrote:
           | I recently switched to cursor, and am in the process of
           | wrangling an inherited codebase that had effectively no tests
           | and cursor has saved me _hours_ it's generally terrible at
           | any actual code refactoring, but it has saved me a great deal
           | of typing while adding the missing test coverage.
        
           | lagrange77 wrote:
           | Excuse my ignorance, i have avoided copilot until now..
           | 
           | Does it have (some of) the other files of the project in it's
           | context, when you use it in a test file?
        
             | acchow wrote:
             | Copilot has your open tabs in context.
             | 
             | Cursor has that plus whatever files you want to
             | specifically add. Or it has a mode where you can feed it
             | the entire project and it searches to decide which files to
             | add
        
               | lagrange77 wrote:
               | Thanks!
        
         | brandall10 wrote:
         | Copilot isn't particular useful. At best it comes up with small
         | snippets that may or may not be correct, and rarely can I get
         | larger chunks of code that would be working out of the gate.
         | 
         | But Claude Sonnet 3.5 w/ Cursor or Continue.dev is a dramatic
         | improvement. When you have discrete control over the context
         | (ie. being able to select 6-7 files to inject), and with the
         | superior ability of Claude, it is an absolute game changer.
         | 
         | Easy 2-5x speedup depending on what you're doing. In an hour
         | you can craft a production ready 100 loc solution, with a full
         | complement of tests, to something that might otherwise take a
         | half day.
         | 
         | I say this as someone with 26 yoe, having worked in
         | principal/staff/lead roles since 2012. I wouldn't expect nearly
         | the same boost coming at less than senior exp. though, as you
         | have to be quite detailed at what you actually want, and often
         | take the initial solution - which is usually working code - and
         | refine it a half dozen times into something that you feel is
         | ideal and well factored.
        
           | throwup238 wrote:
           | _> I wouldn 't expect nearly the same boost coming at less
           | than senior exp. though, as you have to be quite detailed at
           | what you actually want, and often take the initial solution -
           | which is usually working code - and refine it a half dozen
           | times into something that you feel is ideal and well
           | factored._
           | 
           | Agreed. I feel like coding with AI is distilling the process
           | back to the CS fundamentals of data structures and
           | algorithms. Even though most of those DS&As are very simple
           | it takes experience to know how to express the solution using
           | the language of CS.
           | 
           | I've been using Cursor Composer to implement code after
           | writing some function signatures and types, which has been a
           | dream. If you give it some guardrails in the context, it
           | performs a lot better.
        
             | brandall10 wrote:
             | The great thing as well, IMO, is it brings back to focus
             | concepts you may have forgotten or are hazy on, and to test
             | assumptions that you may have blinds spots to as you go
             | along.
        
           | snissn wrote:
           | Human + ai writing tests >> human writing tests
        
         | kbaker wrote:
         | Yeah, Copilot is meh. Aider-chat for things with GPT-4 earlier
         | this year was a huge step up.
         | 
         | But recently using Claude Sonnet + Haiku through OpenRouter
         | also with aider, and it is like a new dimension of programming.
         | 
         | Working on new projects in Rust and a separate SPA frontend, it
         | just ... implements whatever you ask like magic. Gets it about
         | 90-95% right at the first prompt. Since I am pretty new to
         | Rust, there are a lot of idiomatic things to learn, and lots of
         | std convenience functions I don't yet know about, but the AI
         | does. Figuring out the best prompt and context for it to be
         | effective is now the biggest task.
         | 
         | It will be crazy to see where things go over the next few
         | years... do all junior programmers just disappear? Do all
         | programmers become prompt engineers first?
        
           | risyachka wrote:
           | Thats the point. The less experienced you are the more gains
           | you see, and vice versa.
           | 
           | The issue in the first case is that you have no idea if it
           | tells you good stuff or garbage.
           | 
           | Also in simple projects it shines, when the project is more
           | complex - it becomes mostly useless.
        
             | mewpmewp2 wrote:
             | Isn't that the opposite? The more experienced you are the
             | higher the gains since you are able to see what it outputs
             | and immediately tell if it is what you expected. You also
             | know how to put on the best input for it to auto complete
             | rest of it while you are already planning next steps in
             | your head. I feel like a superhuman with it, honestly.
        
         | dfee wrote:
         | Contrarian take: I feel that copilot rewards me for writing
         | patterns that it can then use to write an entire function given
         | a method signature.
         | 
         | The more you lean into functional patterns: design some monads,
         | don't do I/O except at the boundaries, use fluent programming,
         | then it's highly effective.
         | 
         | This is all in Java, for what it's worth. Though, I'll admit,
         | I'm 3.5y into Java, and rely heavily on Java 8+ features. Also,
         | heavy generic usage in my library code gives a lot of leash to
         | the LLM to consistently make the right choice.
         | 
         | I don't see these gains as much when using quicker/sloppier
         | designs.
         | 
         | Would love to hear more from true FP users (Haskell, OCaml, F#,
         | Scala).
        
         | scruple wrote:
         | I used the Copilot trial. I found myself waiting to see what it
         | would come up with, analyzing it, and most often time throwing
         | it away for my own implementation. I quickly realized how much
         | of a waste of time it was. I did find use for it in writing
         | unit tests and especially table-driven testing boilerplate but
         | that's not enough to maintain a paid subscription.
        
         | Sakos wrote:
         | I only use Copilot and Claude to do all the boilerplate and
         | honestly just the mechanical part of writing code. But I don't
         | use it to come up with solutions. I'll do my thing
         | understanding the problem, figuring out a solution, etc. and
         | once I've done everything to ensure I know what needs to be
         | written, I use to AI to do most of that. It saves a hell of a
         | lot of time and typing.
        
         | KaoruAoiShiho wrote:
         | Canceled copilot, using cursor now
        
         | ugh123 wrote:
         | One thing i've been doing more of lately with Copilot is using
         | prompts directly in a //comment. Although I distinguish this
         | from writing a detailed comment doc about a function and then
         | let Copilot write the function. Theres "inline prompting" and
         | "function prompting".
        
         | danielmarkbruce wrote:
         | Just for clarity - are you saying that going back and forth
         | with ChatGPT is more useful than Co-pilot? The reason I ask is
         | I have both and 95% of the benefit is ChatGPT.
        
       | robodale wrote:
       | I've used Copilot and chatGPT to help with algorithms where I'm
       | unsure where to start. Actual case: "Write a performant algorithm
       | to find the number of work days given a future date". It's
       | trickier than you think and makes a great interview question.
       | 
       | Both AI tools came back with...garbage. Loops within loops within
       | loops as they iterated through each day to check if the day is a
       | weekend or not, is a leap year and to account for the extra day,
       | is it a holiday or not, etc.
       | 
       | However, chatGPT provided a clever division to cut the dataset
       | down to weeks, then process the result. I ended up using that
       | portion in my final algorithm creation.
       | 
       | So, my take on AI coding tools are: "Buyer beware. Your results
       | may vary".
        
         | zzleeper wrote:
         | I was never able to use them well, but cursor.ai together with
         | Claude is starting to feel actually useful
        
       | matthewtovbin wrote:
       | You can easily evaluate the impact of GitHub Copilot on your org
       | using Faros AI - https://github.com/marketplace/faros-ai
       | (disclamer - I work there)
        
       | knallfrosch wrote:
       | An interesting topic that will, given this site's community,
       | attract a lot of strong opinions.
       | 
       | I, for one, only decide whether CoPilot's productivity increase
       | is worth the $10 it costs per month.
       | 
       | It doesn't really matter whether you're an employer getting a
       | 3-30% increase in productivity or whether you pay for it
       | personally and finish 2 hours faster every week and log off
       | illegaly. It's easily worth its money. What more to consider?
        
         | ThalesX wrote:
         | > What more to consider?
         | 
         | Potentially sharing company IP with a 3rd party?
        
       | throwaway918299 wrote:
       | The effect it's had on my company: firing all of the over
       | employed retail devs because all they submit is GPT slop that
       | doesn't even work.
        
       ___________________________________________________________________
       (page generated 2024-09-07 23:01 UTC)