The Making And Maintenance Of Open Source Software (book) by Eghbal

book tier2 software



goodreads, wiki, amazon

openarchive, gutenberg


authors:


pdf links:


Baris' notes

Part 2, how people maintain

  • the work required by software

    • code as artifact, code as organism

    • observation 1

      • “most computer programmers begin their careers doing software maintenance, and many never do anything but” -Nathan Ensmenger

      • large open-source projects tend to become modular as they grow, because of cost of maintenance coupled with lack of motivation to maintain

    • observation 2

      • software never dies after finding its set of users

        • because someone will continue using it no matter how much time passed

        • COBOL is still out there. Banks don't want to change it due to technical risks

        • lots of issues with having to maintain out-of-date software

        • Javascript

          • ECMAscript

          • browser compatibility headaches, frequent breakages

        • Neal Stephenson:

          • “(Unix is) not so much a product as it is a painstakingly compiled oral history of the hacker subculture. It is our Gilgamesh epic . . . Unix is known, loved, and understood by so many hackers that it can be re-created from scratch whenever someone needs it”

          • Code is not a product to be bought so much as a living form of knowledge

      • reminds me Marc Andreessen's remark about software's economic moat. It starts developing, and with each bug fix it becomes more stable and collects a wisdom. It has wonderful economic properties that can be copied infinitely with zero cost. Hence software eating the world.

    • open-source is "free as in speech, not free as in beer" –Richard Stallmann

    • open-source is "free as in puppy" –Jacob Thornton of Bootstrap


  • The hidden cost of software

    • 3 types of cost

      • creation

      • distribution

      • maintenance

    • My idea: Current LLM coding helps with creation and maintenance cost somehow. But as developer might not understand creation part too well, it makes maintenance harder too. Complicated relationship.

    -








Receive my updates

Barış Özmen © 2025