Conceptual Compression

The more effectively we compress the concepts of yesterday, the lower the barriers to entry become.

-- from Conceptual compression means beginners don’t need to know SQL — hallelujah!

DHH raised this "new" idea of conceptual compression on this year's RailsConf1.

I quoted "new" because, to me, conceptual compression is just a fancy name for abstractions.

I always believe that extracting abstractions is what we do as software developers.2 Like DHH said, abstractions help us compress things we ought to know, so that we can have more free mind asset to think about things that's more important for us now. This is exactly how we build large projects:

  • We've always known how to do big projects.
    • You do big projects by breaking them up into a bunch of small projects.
    • Agile solved the small part of that.
    • Agile really has nothing to do with the big part.

-- from (Agile) In The Large - Clean Coder Blog