Livable and Disposable Code

  • 3 basic principles make good software:
    1. Reusability
    2. Composability
    3. Disposability
  • Building truly disposable software makes it comfortable for engineers to work on the project overtime.
    • Building softwares isn't just about making sure that your code base passes some unit or integration test but it is also about how comfortable engineers would feel while working on the same software overtime.

-- from Rethinking - Disposability ยท Kunyora

This idea of disposable code reminded me of

  1. The idea of livable code:

    • Our software is a place for us to live -> it needs to be livable
      • Livable
        • We can do what we want easily
        • Livable means differently to different people
        • Livable is an on-going process
      • Things (House/codebase) get messy one small decision at a time
      • Hoarder
        • Hoarders whose house got refurnished got back to a hoarded house every time
        • It's the habits that decide if we can get to a clean codebase -> everyone should do every day cleanup

    -- from RailsConf 2018: Keynote - Livable Code by Sarah Mei - YouTube

  2. The Boy Scout Rule

    Leave the campground cleaner than you found it.

    -- from The Boy Scout Rule - What Is Clean Code? - InformIT

I think the idea of disposable code and livable code is the perfect explanation of the boy scout rule. If we can make our code base cleaner everyday (like what The 30-Day Code Quality Challenge did), our code base will definitely become a place everyone feels comfortable to work on.