Usually software development projects are implemented in two global phases: Discovery phase (research on the subject area, stakeholders and technological capabilities) and Delivery phase (direct iterative and incremental product development).
Very often, a customer comes to a development team with a great idea, but without a detailed understanding of how this idea should be implemented. In this situation, the best way is to conduct a discovery phase at the beginning of the project. During the discovery phase in software development a business analyst will study the target audience of the future product, research expectations of a customer, make competitor’s analysis, collect, analyze and accurately document the initial requirements for the product.
Requirements management is an integral part of a software development process. The advantages of having a business analyst and making discovery phase in software development are not always obvious, but they are invaluable. If a customer sometimes has to redo functionality, the requirements are partially described, no one has a clear idea of the final product and where he can get an up-to-date description of the requirements, it’s time to think about involving a business analyst.
Read our previous article about the importance of Business Analysis:
This will help a client to get a better understanding of the expected functionality, and the project team to more carefully evaluate the time and cost of custom software development. The documentation obtained during the discovery phase will save the team time on the requirements clarification during the development process.
So, to summarize, the discovery phase in software development is needed in order to:
- Find out business goals
- Define the problems the product should solve;
- Understand the context of a product use
- Understand what expectations and user attitudes towards the product
- Find new ideas for better development
Who is involved in Discovery Phase in Software Development
The team usually consists of a project manager, business analyst, designer, technical specialist and, of course, a customer.
Business analyst is responsible for identifying, analyzing and fixing requirements, designing system logic and building relationships. Translates business goals into a format of functional and non-functional requirements.
Designer researches what design decisions are applicable to a particular product. During this phase designer is given time to explore specifically explore ‘who are we designing for?’ and ‘how should we design things?’ in order to provide a better user experience.
Project manager is the main person responsible for the project and organization of the team work, communication with the client and weekly reporting, booking resources and delivering artifacts to the client on time and with due quality. Sometimes, he might integrate communication methods such as Slack, IVRs, email, etc.
Technical specialist analyzes artifacts of the discovery phase to make sure that the designed business logic is technically feasible, and offers the best architectural solution.
What do we do in Discovery Phase?
Explore the subject area
At this stage, we strive to understand who our users are, what they need, and what is the context for using the product. If there is already a working version of the product, we conduct usability testing to find out how efficiently and productively users can interact with it, and how satisfied they are with the process. If our customer doesn’t yet have a software solution, we analyze similar products on the market. While testing competitors’ solutions, we avoid mistakes in the development process for our customers.
We strive to fully understand the problem that we have to solve before we directly begin the process of developing and creating a prototype.
Studying business processes of customer
Carrying out a preliminary analysis, we find out all the business processes of the customer, and try to determine what they should be. It is very important to thoroughly understand all business operations that need to be implemented in the final product.
Finding out user’s expectations from product
We take the time to separately study the target audience. First of all, we find out what a customer wants to see in the product we develop, who uses such solutions and what problems these users have.
It is very important to identify and eliminate bottlenecks at the stage of product development or optimization, since in the future they may cause many issues and lead to unwanted and costly results, such as a poor-quality product or service, dissatisfied customers, lost time and even income.
Prioritizing and forming backlog
At this stage, we determine the main functions that need to be developed, errors that need to be fixed, non-functional requirements that are important to consider, that is, everything that needs to be done to provide the client with a competitive product. The requirements for the software being developed are prioritized on the basis of such criteria as business value, risks, interdependence, volume and deadline.
Making project roadmap
The result of a correctly conducted discovery phase in software development is a strategic plan that defines the goals or desired results of the project, which also includes the main steps and stages of its implementation. It can also be called a communication tool, a document that helps to explain the development strategy, answer all the “why” and “why” on the way to achieving the goal at each stage of the plan.
Here, the initial task and requirements acquire the final formulation, and the interconnection of various systems determines the development of the final product.
What are Benefits of Discovery Phase in Software Development?
As we have already mentioned, quite often, many software development projects especially startups have a great idea, but there is no vision how technically it should be implemented, and what it should contain without fail, and what is not so significant in the first stage. It is difficult for a customer to evaluate what is really claimed by users, what the project should ultimately be like. All these issues can be clarified during the discovery phase in software development. Such an approach allows to minimize number of changes in the development process, since the scope of the project is determined along with other key factors, such as a type of solutions required, functions and functionality, the optimal platforms to use, deadlines and budget.
Having completed the discovery phase in software development, the customer receives a number of undeniable advantages:
- A clear technical specification with deadlines and project budget.
- Expert assessment of the project and alternative solutions, technologies that may be applicable.
- Business analysis of the project idea and revealing hidden aspects that were not taken into consideration initially.
- Analysis of the expectations and problems of final users based on a study of potential users and competitors.
- Balance between business goals of the client and interests of the end users of the product.
- Minimization and optimization of production costs.
- Minimizing the need to make costly additional corrections and changes during the development phase.
- The opportunity to understand how the technical partner meets the expectations of the customer, how comfortable the partnership is and make the final decision on further cooperation.
At first glance, Discovery Phase in software development may seem to increase the complexity and cost of the entire project. But in fact, at this stage, we are saving the development team from some of the work on analytics and transferring it to Discovery Phase. Each team member knows their roles in the project, understands the objectives of the project, its contents and deadlines.
What is also important is that the customer and the contractor come to a common understanding of the entire project and establish contact, which is so important in the next stages of work.
We at SumatoSoft have deep understanding of modern technology and strong expertise in multiple business domains and are ready to help in developing your product and conducting a high-quality, comprehensive Discovery Phase. Contact us to get a free quote!