Software Architecture in the Presales Process
Software Engineering Institute
QuarkSoft is a Mexican software-development company at Capability Maturity Model Integration Level 5 and develops custom software for government and private sectors in diverse domains using the Personal Software Process and Team Software Process. Although QuarkSoft uses architecture practices during the development of software systems, we have found another moment in the life cycle of a project when these practices provide great value—the presales process.
The presales process occurs when a customer requests a technical and economic proposal for developing a software system. The customer’s acceptance of the proposal results in building the software system. The technical proposal is developed in a short time, so usually only high-level requirements can be gathered. A software architect uses these high-level requirements to produce an initial architecture that, along with historical data, is used to estimate the project.
Developing this initial architecture involves important decisions, such as selecting reference architecture, technologies, and the method of deploying the application. Furthermore, the estimate provided to the customer is typically fixed, so there is great interest in producing a good solution in a short time. In the last year, we worked to adapt architectural practices that are currently used in a development project to produce the initial architecture for the presales process. In this talk, we discuss these practices and our encouraging results.