5 comments

  • richardbarosky 15 minutes ago
    Insightful. Agree with this take.

    Unfortunately, maintainability is simply bucketed as a "non-functional" requirement.

    That and similar NFRs should be considered as what preserves and enables the delivery of future functional requirements -- in contrast to framing non-functional requirements as simply "how" the software must do what it does vs. the "what"/functional requirements that "actually matter".

    From that standpoint, if a steady flow of features/improvements is important for a project, maintainability isn't really a non-functional requirement at all, and amounts to being a functional requirement, in practice, over anything except the shortest of time horizons.

  • keithnz 21 minutes ago
    In my experience AI reduces maintenance costs. Though, context might matter here, I'm working on a multi decade set of projects, while there is a lot of greenfield feature development, the old code / older projects have suddenly become a lot easier to work with, modernize, and in a bunch of cases, eliminated. Dependency on old libraries, build tools, in some cases updated, in other cases just eliminated, builds are faster, easier for developers, etc. End to end testing has become a lot easier to setup and automate. DevOps have been improved a lot, diagnosing production issues drastically improved, we have a ton of logs and information, and while we have various consolidated dashboards / monitoring to capture critical things, now we can do a lot more analysis on our deployed system (~50 ish projects)
  • m463 1 hour ago
    Same with code reviews.

    I wonder if AI could make code reviews more presentable.

    for example, with human code reviews, developers learn quickly not to visually change code like reflowing code or comments, changing indent (where the tools can't suppress it), moving functions around or removing lines or other spurious changes.

    And don't refactor code needlessly.

    also, could break reviews up into two reviews - functional changes and cosmetic changes.

  • stevepotter 1 hour ago
    For me, if I can make a kickass testing system that people love so much that they actually build features with it and it’s not an afterthought, then maintenance becomes much easier. It’s often called test driven development but I’ve rarely seen it done in such a way that the dev ex is good enough for it to work.

    But say you have that. Then you have great profiling. At that point you can measure correctness and performance. Then implementation becomes less of a focal point. And that makes it a lot easier to concede coding to ai

    • NotGMan 1 hour ago
      This will probably be how things will work in future: devs will shift to specifying features which will be validate through tests.

      The AI will then be middle layer that will iterate until tests pass.

      Layer 1: Specs (Humans)

      Layer 2: Code (AI mostly)

      Layer 3: Tests (AI + human checks).