Because software development follows a repeatable pattern of activities, software engineering theorists have been working on the development of frameworks that represents sets of best practices for the performance of these activities. Those frameworks can be divided into two major groups: formal and agile methodologies. We present some of the most important features of these development frameworks, emphasizing the most important contributions provided by the research community for the activities concerning software acquisition and supply.
Currently, one of the most important formal software development methodologies is the Capability Maturity Model Integration (CMMI), an evolution of prior capability maturity models developed at the Software Engineering Institute (SEI). The model prescribes good practices for developing and maintaining software products and services during their complete lifecycle, since inception until delivery [3]. The practices, sub-practices and examples that flesh out the model guide software professionals in making decisions about the adequacy of a range of process implementations; however, there are no practices in the CMMI concerning specifically software acquisition and supply activities.