One of the value propositions of shifting away from Salesforce Classic and Visualforce to Lightning Experience and Lightning Components is the ability to develop components that can be exposed and reused declaratively many times by an administrator.
Administrators can declaratively assemble standard and custom components into Lightning Pages using the canvas-based design tool called Lightning App Builder.
The Lightning Component Framework provides developers with the ability to make their custom Lightning Components more configurable declaratively, and Josh Birk, a developer evangelist from Chicago, gives us a number of options for bridging the divide between developers and administrators.
In this article you will learn how to make your custom Lightning Components easily customizable by administrators by leveraging the Design resource in the component bundle, and how to use the VisualEditor.DynamicPicklist class in Apex to create dynamic, contextually aware picklists to Lightning App Builder to aid in the configuration of custom Lightning components.
Josh also uses an example from the Dreamhouse Reference App to demonstrate a framework for how to think about designing Lightning Components in a granular and reusable manner