No matter how incredible and unique the initial idea of the project is, the customer doesn’t always receive the exact product they wanted in one go. Even if the customer formulates their idea in lay terms and developers manage to fully understand the concept, there can be many small details that are not immediately apparent but will have a huge impact on the project development later. Revealing a number of problems in the process of development leads to spontaneous changes in the already written code, unplanned budget spending, and, as a result, missed deadlines, project freezing, or even its failure. Such an outcome for the project can be avoided by conducting a discovery phase. What a discovery phase is and what steps it consists of The discovery phase is a stage, the result of which is the defined approximate (planned) terms of the project implementation (within the frameworks that are stipulated during the discovery phase). These terms will be as realistic and accurate as possible when working according to the Agile methodologies. Also, in the process of this stage, a plan of the actions necessary to obtain a successful product is outlined. The duration of the discovery phase may vary. As a rule, it takes from several weeks to a month, or even more - it depends on the project complexity. There are cases when a discovery phase finishes within a week, but this happens mainly on small projects. Accordingly, some steps of the discovery phase may be omitted or, conversly, will be given more attention. In general, a plan for the project discovery phase is as follows: Identifying specialists who will be involved in the project: the customer or their representatives, Business Analysts, designers, architects, the end user, and so on. Contact between all participants should be established in order to get the most complete picture of the project and make it possible to quickly eliminate shortcomings that may arise during the development process. Setting clear objectives. At this step, answers to the following questions are formulated: What is the goal of the product? What problems of the user can it solve? What should it look like? What requirements should it meet? This will help to get a general idea of the interface and functions of the future product. Checking the already existing studies and documentation. At this step, a Business Analyst collects information that can considerably simplify and speed up the development process. The Analyst also knows how to present this information better and more clearly - for example, by supplementing it with charts and other visual tools. In the end, the SWOT/AsIsToBe analysis can be formed. Studying the targeted audience and the end user. The Analyst can both consider the existing studies and conduct new ones in various formats. If a service or a product is being developed for use within one particular company, its employees can be surveyed as future users. Analyzing competitors. At this step, a specialist not only carries out market research but also finds out what is unique about this particular product and what new features it can offer. By comparing the ideas proposed by the customer with those already implemented by their competitors, the Analyst determines what gap in functionality a new product can fill. Investigating the data obtained and drawing up a list of requirements for the future product, which will be sent to the development team. Formulating a Software Architecture Document containing 40-60 pages of important architectural views. Estimating the budget and development time. This is perhaps the most important step of the discovery phase, where the main role is played by an architect. By identifying all functional and non-functional requirements for the product, the number of necessary development participants, and all development-related factors, the architect can more accurately calculate the project completion time and its cost. It is worth noting that the architect doesn’t do the estimation alone - other experts, for example, Cloud engineers, can be involved. Next, at a meeting with the architect, PM, and the rest of the team, the Analyst explains in detail and lay terms all the functional features of the product. This will allow the team to estimate its approximate (planned) labor costs, according to which approximate terms are defined. Based on this data, a Gantt chart can be made. Drawing up the final package of documents with the research results. The package can be of various formats and content. From the BA’s part, the results are mostly presented in the form of a Vision & Scope document or SRS. Sometimes Mind Maps or presentations can be added. The customer receives documents containing the following information: project objectives; non-functional requirements and duration of the project; recommendations on system properties or constraints, which are not related to system behavior: optimal technology stack, infrastructure architecture, and expected load; product requirements and characteristics. The architect provides the client with a Software Architecture Document (SAD), the designer provides UI/UX prototypes. This data reflects the vision of all development process participants and is adjusted by the Business Analyst based on competitor and end-user research. All this creates an excellent base for timely project completion and the success of the finished product. What are the benefits of conducting a discovery phase? A clear plan containing all the necessary requirements for the product is laid out It is often difficult for a customer to communicate their idea to tech specialists correctly. In such a case, the Business Analyst can act as an intermediary and communicator between the customer and the team, releasing the customer from wasting time on technical issues that arise during the work. The architect, in turn, completely sets up the processes in the team, monitors strict compliance with the requirements, and conveys knowledge to the tech lead, preparing them for independent project management. On small projects, this process can be completed in a few months; on large projects, the architect may be needed permanently. The larger the project is, the more important the role of the architect becomes, including at the discovery stage. However, the participation of the architect is necessary even on small projects, at least at its initial stage. We wrote a separate article where we analyzed in detail what architecture is, what the types of it are, and why it is necessary, especially when developing business applications. The documents prepared in the course of the discovery phase give the team a clear plan of action so that the finished product satisfies the customer. Each team member has a clear idea of why the product being developed is needed, what its purpose is, and whom it will be used by. Along with that, communication between the participants is built: the documents describe who is responsible for what, so each of the team members knows whom to contact on a particular issue. The duration of work and its cost are determined Clear deadlines and a pre-planned list of functionality with prioritization help the team follow the set path, without deviating or being distracted by additional changes that are not really significant but can delay the development and eat part of the budget. Otherwise, the money allocated for the project may not even be enough to implement basic functions. In addition, when having a specific plan with clear deadlines, investments are usually easier to obtain. A team of specialists required for the successful development and release of the product is formed The discovery phase of a software project helps to determine in advance how many people and for what task should be involved, as well as how this will affect the budget. Each participant has their role and scope of tasks. Thanks to this, there won’t be a situation when the project has to be paused in order to find new specialists who were not considered in advance. The Business Analyst can speed up the development process A potential benefit of the discovery phase is new suggestions and ideas offered by the Business Analyst. Since the Analyst monitors the latest market changes and customer requests, they can assess the relevance of the customer's idea and convert it into a concept, sometimes even suggesting ways to simplify the development or modernize it. This also helps to save you money and time. What if the discovery phase is not included in the process? First and foremost, the finished product may not meet the requirements or the original intention of the customer. The team will only have a vague idea of what exactly the product should be - its goals, functions, appearance, and end user will not be clear. This will lead to a mismatch between expectation and result and hence to customer disappointment. Secondly, when a clear plan is absent, the necessary changes will have to be implemented during the development process, as it’s easy to forget to take into account something important or not objectively evaluate the conditions. For example, it might turn out that the team needs more people to be involved - this will freeze the project for a while until the necessary specialists are found. In addition, spontaneous changes may be added to the project, the practicability and relevance of which have not been studied. Because of this, the release date can be delayed, and the project will go beyond the budget. One should understand that changes in Agile methodologies are normal. However, having a well-developed list of the project vision and boundaries makes it much easier and less painful to add new functionality, if necessary. Conclusion Including the discovery phase in the process can prevent many problems while significantly saving money and time. In addition, conducting preliminary analysis and drawing up a well-thought plan will surely provide the most comfortable and efficient development process.