Mythical Man Month

(martinfowler.com)

54 points | by ingve 1 day ago

7 comments

  • nvader 18 minutes ago
    Fortunate to be reminded of this right now, especially the pull-quote about conceptual integrity.

    This is the reason why AI-assisted programming has not turned out to be the silver bullet we have been hoping for, at least yet. Muddled prompting by humans gets you the Homer Simpson car you wished for, that will eventually collapse under its own weight.

    I've been thinking a lot about Programming as Theory Building [0] as the missing piece in AI-assisted engineering. Perhaps there are approaches which naturally focus on the essence while ignoring the accidents, but I'm still looking for them. Right now the state of the art I see ignores both accident and essence alike, and degrades the ability to make progress.

    Please inform me if there are any approaches you know that work! And lest this sound pessimistic, far from it. This state of affairs is actually intoxicatingly motivating. Feels like we have found silver, and just need to start learning to mould bullets.

    [0] Another classic required reading of the industry https://pages.cs.wisc.edu/~remzi/Naur.pdf

  • alasdair_ 50 minutes ago
    Notably, his essay “no silver bullet” states that there has never been a new technology or way of thinking or working that has led to a 10X increase in the speed of software development.

    That was true for almost seventy years until roughly last year.

    AI is the silver bullet - my output is genuinely 10X what it was before claude code existed.

    • whateveracct 7 minutes ago
      This was true as programming languages evolved too. It was so much easier to write scripting languages than C. You could crap our scripts like crazy - no cc refusing to give you a binary to get in your way.

      Clearly..it still wasn't a silver bullet. Because output as a metric is a bad one. I thought it was only one managers valued..but apparently Anthropic has convinced devs to value it finally? i guess it def hits that dopamine receptor hard.

    • lp4v4n 7 minutes ago
      I'm curious to check how faster AAA games will hit the market in the next years compared to the pre-LLM era. Or how much of the aging COBOL code base out there will disappear in the next decade.

      When concrete things like that start to happen, then I will start to believe in the 10x claim.

    • batshit_beaver 38 minutes ago
      10x the amount of code or features =/= 10x the speed of software development.
      • MattDamonSpace 19 minutes ago
        Doesn’t necessarily but does sometimes unless you have a concrete alternative
      • esafak 9 minutes ago
        How are you defining speed of software development?
      • bogdanoff_2 33 minutes ago
        How is that not the same thing?
        • ben_w 0 minutes ago
          Code is always easy to multiply fruitlessly, always has been.

          Features are harder to show the limits of, but have you ever had a client or boss who didn't know what they wanted, they just kept asking for stuff? Or experienced bike-shedding* from coworkers in meetings? Or, as a user, had a mandatory update that either didn't seem to do anything at all, or worse moved things in the UX around so you couldn't find features you actually did use?

          You can add a lot of features and close a lot of tickets while adding zero-to-negative business value. When code was expensive, that cost could be used directly as a reason to say "let's delay this"; now you have to explain more directly to the boss or the client why they're asking for an actively bad thing instead of it being a replacement of an expensive gamble with a cheap gamble. This is not something most of us are trained to do well, I think. Worse, even those of us who are skilled at that kind of client interactions, the fact of code suddenly being cheap means that many of us have mis-trained instincts on what's actually important, in exactly the way that those customers and bosses should be suspicious of.

          * https://en.wikipedia.org/wiki/Law_of_triviality

        • CreepGin 21 minutes ago
          "nine women can't have a baby in a month". Speed of software development is not pure output.
          • whateveracct 11 minutes ago
            for certain monkeys, they think it is tho

            there are entire C corps of monkeys out there

        • jen20 25 minutes ago
          Writing code is a part (sometimes a big part, sometimes not) of delivering software to production. The overall system throughput is the interesting thing to look at.
    • jdw64 41 minutes ago
      If AI is the silver bullet, I do not understand why so many shot-up projects are still wandering around the freelance market.
      • altcognito 24 minutes ago
        Horses weren't replaced overnight.

        Also, I know that there will be a lot of boilerplate applications that just don't look good or seem to have been well thought out early on.

        Folks will use that as a cope mechanism, but huge changes are coming.

    • gensym 25 minutes ago
      I've been thinking about this and have wanted to discuss it with people. I think the 10x thing has been broken, but I don't think it's because the premise of "No Silver Bullet" was false - I think it's because LLMs have the ability to navigate some of the _essential_ complexity of problems.

      I don't think anyone has really wrestled with the implications of that yet - we've started talking about "deskilling" and "congnitive debt" but mostly in the context of "programmers are going to forget how to structure code - how to use the syntax of their languages, etc et etc)." I'm not worried about that as it's the same sort of thing we've seen for decades - compilers, higher-order languages, better abstracts, etc etc etc.

      The fact that LLMs are able to wrestle with essential complexity means that using them is going to push us further and further from the actual problems we're trying to solve. Right now, it's the wrestling with problems that helps us understand what those problems are. As our organizations adopt LLMs that are able to take on _those_ problems - that is, customer problems, not problems of data, scaling, and so forth - will we hit a brick wall where we lose that understanding? Where we keep shipping stuff but it gets further and further from what our customers need? How do we avoid that?

    • raincole 36 minutes ago
      The premise of "no silver bullet" is wrong (LLM just made it clear, but it has always been wrong).

      The premise is that the software development had been mostly "essential complexity" rather than "accidental complexity." But I think anyone who worked as SE in the past decade would have found the opposite is true.

    • teddyh 47 minutes ago
      For your sake I hope that your pay is determined by your “output”, and not your long-term usefulness.
    • skydhash 31 minutes ago
      > that has led to a 10X increase in the speed of software development.

      > AI is the silver bullet - my output is genuinely 10X what it was before claude code existed.

      Those are not the same.

      You can add 5 different features to a project and still provide less value that the 5 lines diff that resolves a performance bottleneck.

      • winrid 6 minutes ago
        "claude, connect to a k8s pod in prod and grab a 30s cpu profile, analyze and create a performance test locally for the top outlier, verify your fix and create a PR"
    • deadbabe 34 minutes ago
      Just because code has been put out does not mean the software is “developed”.
    • slopinthebag 48 minutes ago
      10x would only be possible if your output was low before Claude Code
      • hatsix 37 minutes ago
        I've found that I can have 10x output, so long as I don't expect anyone to review your code...
        • slopinthebag 35 minutes ago
          I can get 100x output, if we're counting lines of code!
  • jh00ker 41 minutes ago
    As a software engineering manager, I always look to staff up a project at the beginning as much as possible, looking for doing as much in parallel up-front as we can. If some things take longer than expected, then I already have a team of engineers with all the context since the project kicked off that can help each other with any longer running tasks. An engineer that has completed a smaller chunk of work can help out with the items on the critical path, for example.
    • datadrivenangel 22 minutes ago
      Fred brooks would not necessarily endorse this.
  • jdw64 51 minutes ago
    The bearing of a child takes nine months, no matter how many women are assigned.

    For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation.

    Conceptual integrity is the most important consideration in system design.

    There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement in productivity.

    ---

    These ideas still apply very well to modern society. but, Personally, I hope science advances to the point where nine women really can have a baby in parallel.

    We may need that to prevent demographic collapse and keep the pension system from running out of money.

    • janalsncm 34 minutes ago
      It would probably be more practical to make old age less expensive than to inject more people into the bottom of the demographic pyramid. Those young people eventually get old too. I am looking forward to my sentient robot caretaker:

      “Open the refrigerator door, HAL”

      “I can’t do that right now”

      • jdw64 28 minutes ago
        If he had saved enough money to subscribe to the Pro tier, HAL might have opened it.
    • slopinthebag 47 minutes ago
      Once we ditch our centrally controlled economies perhaps life can be affordable enough to not prevent willing parents from having children.
      • jdw64 45 minutes ago
        I think Brooks would call that an optimistic schedule estimate.
  • sutro 37 minutes ago
    "The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination." -FB
  • manoDev 22 minutes ago
    It’s easy to see the conceptual integrity in good software, architecture, design and movies — or the lack of this quality in the bad ones.

    Vibe coded software is the Marvel green screen movie equivalent.

  • wewewedxfgdf 1 hour ago
    Look, I read it and loved it 25 hyears ago.

    Fred Brooks wrote that book when they were programming IBM operating systems in assembly language.

    Times have really, really changed - do not pay attention to the messages of this book unless for historical fun.

    • yellowapple 1 hour ago
      The lessons in that book have broadly held true for nearly every single one of my employers throughout the entirety of my career.
    • freetime2 47 minutes ago
      Indeed a lot of things have changed. A worthwhile exercise is to read the book, contemplate how things have changed, and try to map lessons from the book onto modern technology and organizational practices. A LOT of the core principles are still relevant IMO, even if many of the implementation details are not.
    • janalsncm 43 minutes ago
      Your comment and the OP both mention some things that are outdated about the book. What are those things?
    • gaigalas 1 hour ago
      Our field is full of vague, terrible opinions and useless advice. Arrogant people that think they're better than others.

      That book isn't, it's built from humility and a rare bright light in this god forsaken field.

      • zephen 40 minutes ago
        The book is good. As you say, the author, Fred Brooks, is not at all arrogant.

        Martin Fowler, the author of the blog, may be a bit different than that.

    • CreepGin 53 minutes ago
      IMHO, Brooks's Law applies more today than ever.
      • linsomniac 50 minutes ago
        I was half expecting Fowler to tie it in to right-sizing agent teams.