title: Things to be considered while building a framework
body: <p>We are planning to build a framework: a cost-estimation framework that will be used across the domains in our organization.</p>
  
  <p>The high-level requirement is something like this : 
  If I develop a certain product, how much will it costs me? This generated cost will be used to compare with the cost the vendors have quoted and to come-up with a decision as to which vendor to choose.</p>
  
  <p>Now, my question is: 
  <strong>What things to considered while developing a framework?</strong></p>
  
  <p>Few of my thoughts:</p>
  
  <ol>
  <li>Implement the high-level requirements through Abstract classes and Interfaces</li>
  <li>Provide utility classes that might be useful for Framework users.</li>
  <li>Consider what should be internal - kind of metadata - that shouldn't be shown to   framework users.</li>
  <li>The design patters to use like template.</li>
  <li>the properties and the methods of the input classes.</li>
  </ol>