Discovery is a phase of the software development process where a company gets acquainted with the ideas, goals, needs and requirements of a potential client. Having analyzed the client's business and studied their competitors. Based on the received data, the software development company drafts a proposal with rough estimates, budget, and necessary resources, as well as a model of cooperation and development strategy.