I am looking for an answer (in the style of kathy sierra & bert bates) for "what is a framework ?" (eg Rails, Hibernate, Spring etc). That is, imagine if you have to explain this to a layperson or a beginner with elementary knowledge of computers and programming.
A framework is usually a library or some other piece of software that provides a skeleton for your application. It provides generic things that almost all applications need. To make an application with a framework, you write the parts that contain specific functionality for the application, and connect those parts together by using the framework.
It's like building a house. First you put up a wooden frame that outlines the structure of the house. That's the framework. Then you build the house on the framework: you add walls, windows, doors, etc.