A design document has three major sections; each is outlined below. While the you can assume that the reader is familiar with pre-existing design and implementation of the code, this is not an email or wiki post - the document itself should be self-contained and able to "make sense" on its own. This is part of the reason we require a separate =.doc= file. A developer five years from now, who was not involved in a recent string of email discussions or have access to pages of ticket remarks, should be able to read the document on its own and gain insight and understanding. {subsubsection: Section One - Overview } - Detail the motivation - what problem is the problem, why is it + Start out by providing information about the motivation - what is the problem, why is it important to solve the problem, what is the general approach? What insights led us to the problem, what new understanding is characterized -in how we will solve it? What are the requirements of the new enhancement, and how were these requirements gathered/identified? If the problem is related to a specific usage scenario or environment, include as salient details about the motivating scenario/environment. Try to keep the implementation details to a -minimum here. Instead, think about what the reader will have learned +in how we will solve it? Try to identify the requirements of the new enhancement, and how were these requirements gathered/identified? If the problem is related to a specific usage scenario or environment, include as salient details about the motivating scenario/environment. Try to keep the implementation details to a bare +minimum when answering these questions. Instead, think about what the reader will have learned after reading your overview about the problem itself and the tradeoffs involved in finding a solution.