The Slow Formation of Durable Software

(newsletter.dancohen.org)

45 points | by benbreen 1 day ago

9 comments

  • nickledave 12 minutes ago
    For folks who are wondering:

    This post is about Zotero. https://www.zotero.org/

    If you are not an academic, you might not know Zotero.

    It is such a pleasure to use. Every app should be like this.

    I read everything in it, including books I'm going through right now from https://teachyourselfcs.com/

    It also does an amazing job of taking snapshots of posts. I use it all the time to grab posts from HackerNews so I can mark them up.

    And it automagically syncs everywhere across devices and lets me store way too many files on the web like the ADD packrat I am, without breaking a sweat.

    In short, this software just works, and it works well. So when somebody behind Zotero talks about how to develop software, I listen.

    And it's a fun post with some history. You should save this post to Zotero, and then read it.

  • kstenerud 9 minutes ago
    > If AI had existed in the early aughts, we could not have accelerated Zotero’s conception, because we did not know exactly what we wanted, and so could not have written coherent prompts for an LLM. Instead, it took a great deal of time and collaboration to develop a clear vision for what Zotero should be.

    AI doesn't preclude this. In fact, it can help accelerate parts of it.

    He's describing the typical big project lifecycle:

    - Examine the landscape

    - User research (how they use existing software, what their frustrations are, etc)

    - Brainstorming

    - Early ideas and prototypes

    - Refinement, user feedback

    - Solidify the vision and high level process design

    - Choose technologies

    - Design & architecture

    - Plan out phases

    - Build phases, then test them with users

    LLMs are great at research, and great at prototypes. Once you have your design, they're good at coding as well. They're also good at distilling user feedback.

  • adamddev1 58 minutes ago
    > But that slow formation led to software that was durable rather than ephemeral, with a strong foundation that could be built upon.

    People say that agentic development is great because you can churn out so much so fast. But that doesn't mean that any of it will be truly good and reliable.

    The things that are truly insightful and solid end up being used exponentially more, which makes the linear cost of extra development time (asymptotically) insignificant in the cost/benefit equation.

  • piker 8 minutes ago
    So pleasant to remember a world where this photo:

    https://assets.buttondown.email/images/93382906-4996-445c-81...

    is just of some passionate academics working on a project with no real economic or social media incentives driving it.

  • ORDINAND_PIZZA 31 minutes ago
    good things take time because they grow from something like seed. as that seed grows, it figures out its local and global context. a curious and patient caretaker of this seed will spend a lot of time looking at it, understanding it, trying to figure out the right way to give the small plant a steady foundation. with care and attention, it could grow into a tree and attract all sorts of other insects, animals, and all sorts of life.

    speed kills quality. it’s literally impossible to make anything good fast.

    we know this, and it still applies to software. while we may be able to make things faster, they will never become good (or great) without an incredible amount of care, patience, and joy from its maker.

    there are no shortcuts to quality. it will always take a lot of time to make anything good.

  • olafmol 38 minutes ago
    In the Netherlands we have this saying: “Without friction, no shine”
  • jeanpah 56 minutes ago
    I don't think this is possible in this day and age, everyone expects the development to be instant.
    • cseleborg 21 minutes ago
      I guess we'll only be able to verify this 10-15 years after coding agents arrived. Personally, I think there will always be a market for apps created with care and great attention to detail.
  • ghoshbishakh 1 hour ago
    A very very strong point. I have personally detailed entire projects because adding a feature seemed easy with AI. It is very difficult to vibe code and not add a bunch of useless crap features.
    • huijzer 48 minutes ago
      You can also remove features with AI faster than before. During the initial development phase, that's the most important part IMO
      • josephg 28 minutes ago
        Really? I find LLMs quite bad at deleting code. If you ask them to add a feature, then later take it out again, the codebase almost always increases in size. Every time I've tried it, llms have failed to simplify code via refactoring.

        LLMs are excellent at making prototypes though. And prototypes can be an excellent way to stop yourself from implementing the wrong features.

    • adamddev1 57 minutes ago
      Do you mean "derailed?"
  • draw_down 39 minutes ago
    [dead]