Content Driven Development
When developing components for Adobe Experience Manager, it is very common to develop your functionality first and figure out the content later. The html and styling is crafted and sling models developed. These factors drive decisions about content, such as what dialog fields are needed, what the structure of the content is, and what the limitations of the data are. One problem with this approach is that it assumes that content should be created in order to meet the needs of the functionality. This "functionality primacy" mentality is common when developing components because businesses needs and functional requirements rarely go beyond describing the end user experience. However, content is here to stay, and can only be changed with costly content migrations, and that is assuming that the content was structured well enough in the first place. Functionality changes over time, adapting to fit the needs of the customer. The content that supports that functionality is being care