• Lembot_0004@discuss.online
    link
    fedilink
    arrow-up
    5
    ·
    2 days ago

    Yes, the concept “release early, release often” is the most practical, especially if you’re doing something new and therefore cannot fully predict how the things should be.

    • HaraldvonBlauzahn@feddit.orgOP
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      2 days ago

      Yes, the concept “release early, release often” is the most practical, especially if you’re doing something new and therefore cannot fully predict how the things should be.

      That is not the same. The Linux kernel project. releases early and often, but it is high quality.

      Iterating in small steps is a consequence of that you usually can’t lay out all requirements beforehand. But you still need to plan architecture, determine requirements, write down design, document APIs and pre-conditions, run tests and so on. And change and adapt all that, again and again , when requirements change. (Which means that, in larger or long-running projects, requirements which are missing merely due to laziness do have a high cost.)

      John Ousterhout talks about this at length in his book “A Philosophy of Software Design” (right now discussed here)… He calls that “strategic” vs. “tactical” programming.