Rushing straight into building a new solution without accurately defining the project’s goal and scope is a bad idea. Skipping this preliminary step may result in developing a product that doesn’t meet all of your client’s needs and expectations.
To eliminate this risk, software companies add a discovery phase to a software development project. This phase allows you to identify unobvious pitfalls and challenges at the very beginning and use these insights to optimize the development process.
Mostly handled by business analysts (BAs), the discovery phase helps to establish trust and communication between the client and the development team, optimize budget and time resources, and set realistic deadlines.
In this article, we describe what a discovery phase in software development is and why it matters. We also explore its benefits, key processes, and results to expect. This article will be helpful for anyone who is planning to use software development services but doesn’t fully understand the necessity of the discovery phase and a BA’s role in it.
The project discovery phase is the first phase in software development. Its goal is to collect all necessary information about the project to have a full picture of the product before development begins.
As a result of this phase, the client receives an accurate estimate of the resources, time, and money needed for software development. Also, the project discovery phase allows clients to get to know the outsourcing team they’ll be working with. Regular communication and in-depth discussions of a project with the development team help to clarify essential details and establish trust.
The discovery phase lasts from a couple of days to a couple of weeks or even months depending on the project’s complexity and the chosen methodology.
This phase provides the basis for further development and brings lots of benefits to a project.
Establish communication and trust between stakeholders and developers. Regular communication at this phase allows clients to evaluate how the team works, their expertise, and their approach to the project. And in-depth discussions help the development team better understand the client’s needs and choose the most relevant technological solutions.
Form a deep understanding of the product’s purpose. During the discovery phase of a project, the development team and the client discuss the main objectives and project goals in detail. This helps them define the required functionality, find flaws in the current vision of the product, and come up with fresh and relevant ideas for the project.
Conduct in-depth market and competitor research. A BA conducts all required research to identify both business and user needs, analyze competitors, and assess the market. This means the client doesn’t need to conduct any research beforehand. All they need to do is provide existing information on the project.
Reduce the risk of missed deadlines and unexpected expenses. Thorough research along with consultations from business analysts and developers during the discovery phase provide customers with a solid basis for further solution development. Research and consultations significantly minimize risks such as:
- Releasing the product after the agreed deadline
- Going over the budget
- Creating a product that doesn’t meet the client’s needs
- Choosing incompatible technologies
- Discovering significant issues at late stages of development
- Spending extra time and money fixing those issues
In a nutshell, the discovery phase allows you to eliminate all of these potential risks at the outset so you’ll get exactly the solution you need.
What team members participate in the project discovery phase?
The project discovery phase in software development is mostly handled by a business analyst. However, other team members also contribute their experience and knowledge.
Stakeholders may also be considered participants, as they can:
- Provide essential details about the project
- Participate in interviews and requirements elicitation
- Review and confirm the final documentation
The list of participants may vary depending on the project, but most commonly they include:
A business analyst is a key participant in the project discovery phase. The major tasks of a business analyst are to:
- Analyze business needs
- Analyze stakeholders and competitors
- Research the current state of the project
- Define the desired state of the project
- Determine product users
- Prepare project documentation
The project manager’s role is to:
- Organize the development team’s work
- Create a project plan and statement of work
- Prepare time and cost estimates
- Keep stakeholders informed on the project status
During the discovery phase, developers help to:
- Research the current project architecture
- Create a new architecture design
- Prepare a solution architecture document
BAs and developers can often work simultaneously to save time and cover more research areas. On one of our recent projects, we needed to integrate an interactive voice response (IVR) system into an existing project and build new APIs. While a BA was working on the IVR flow, our software architect researched possible technical solutions. After the work was done, they prepared a technical prototype to share with the stakeholders and make sure that the team was moving in the right direction.
It’s also a good idea to engage a quality assurance (QA) specialist in the discovery phase, especially if the project isn’t being started from scratch and some functionality already exists. The main tasks of a QA are to:
- Evaluate risks
- Assist with research
Another participant in the discovery phase is a designer, who usually:
- Prepares mockups or prototypes
- Makes sure that mockups or prototypes match the elicited requirements
The value of the activities performed during the project discovery phase might be not so obvious, but this phase has a great influence on the project’s outcome. Let’s look at the key activities during this phase and why they’re important
The processes and stages of a project discovery phase may vary depending on the product. However, there are six essential activities conducted by BAs that are necessary for all projects. Let’s take a closer look at each of them and find out how they can impact a project.
1. Determine the business need
During the project discovery phase in custom software development, BAs help the client accurately define the business need behind the solution.
They dig into the client’s change request and thoroughly prepare for interviews to find out the purpose of each requirement. Thus, BAs make sure the project to be developed is realistic and practical and meets the client’s needs.
With their vast experience in analyzing the software environment, BAs explain which features will contribute to the client’s business needs and which may harm them or be useless.
Identifying business needs is essential for further product development because it:
- Gives the entire development team a full and realistic understanding of what solution the client wants to get
- Helps connect the client’s vision of the product with relevant technical solutions that are possible and reasonable to develop
- Helps developers create software according to all of the client’s expectations
For example, one of our clients wanted to create sensors and software to monitor vacant places in a workhub to properly direct internet traffic. However, business analysis showed that the solution would be so expensive and complicated that it wouldn’t meet all the requirements of hub owners.
2. Identify end user roles and needs
Without a deep understanding of what tasks end users need to complete with the product, it’s impossible to know which functionality will make a solution valuable. That’s why BAs at Apriorit always ask about end users when interviewing stakeholders.
If the client’s employees will also be users of the solution, BAs may create a job description document that defines the jobs that exist in the client’s company and their responsibilities. This helps BAs identify user roles and what level of permissions they should have in the system.
When working on a web service for property management, our BA noticed there were a lot of people within an organization who could access that service. After preparing a job description document, we were able to strictly separate users’ access rights. For instance, a supervisor was able to delete property profiles from the system while a manager could only view the profiles of a certain group of properties.
3. Analyze stakeholders
Business analysts conduct stakeholder analysis to find out their roles in the project. This information helps BAs know whom to approach with what questions.
Stakeholders are not always people and can be represented in the form of:
- Sets of rules
For instance, when our BAs worked with a healthcare-related project, they treated HIPAA as a stakeholder because this act had a big impact on the solution and its design.
The major benefit of stakeholder analysis is that it simplifies and accelerates communication between the development team and project stakeholders. Also, there are several additional reasons why stakeholder analysis matters for further development:
- If any regulatory organs check a solution’s compliance with the requirements, a team will take that into account right away.
- If there are a lot of stakeholders at the same level, a BA will immediately evaluate the risk of contradicting requirements and optimize the requirements elicitation process.
Stakeholder analysis can be performed with various methods. At Apriorit, we usually use the stakeholder onion diagram and the RACI technique, described in our article on the requirements elicitation process.
The stakeholder onion diagram clearly shows the level of engagement of stakeholders and how close they are to the solution. This diagram looks similar to a cut onion, with the solution placed in the center of the circle.
The results of stakeholder analysis may be subject to revision during project development if new stakeholders come into play and existing stakeholders change their attitudes.
4. Analyze competitors
Once BAs analyze their client’s needs, they can move on to study the client’s competitors to examine solutions and features that are already on the market.
For example, if a client wants a marketplace, BAs will find similar marketplaces, place orders on them if possible, and find out competitors’ pros and cons. Using this analysis, BAs can suggest the best competitive advantage for the client’s project.
Competitor analysis usually has three levels:
- Level 1. BAs analyze the most common solutions and their features in the domain. This gives them an understanding of what to expect on the market and helps them find out which tools end users consider the most valuable.
- Level 2. BAs compare existing systems and highlight features that are worth the client’s attention.
- Level 3. BAs evaluate the size of competitors, the frequency of releases, and the share of the market occupied by competitors. This usually requires access to paid reports and tight collaboration between the BA and the client.
Competitor analysis doesn’t always include analysis of direct product competitors. Solutions that partially perform the required functionality can fall under this analysis as well. For example, an online toy shop may not be a competitor to Amazon, but it may aim to have some of the same functionality as Amazon.
5. Conduct a gap analysis
A gap analysis is an investigation of the gap between the project’s current state and its planned future state. It consists of three key steps:
- Gather data on the current and desired project states
- Compare these states and identify gaps between the current state and the desired state
- Define areas for improvement
The results can be provided in a table that shows and describes the current challenge, its root cause, and steps to address it (e.g. add new functionality, conduct training, create new reports).
Let’s show a simple example of a gap analysis for a healthcare company:
Current state: Employees need to manually open patients’ profiles in the system and download PDF files attached to them one by one.
Desired state: Employees can download files in bulk.
Root cause (the gap): A manual process limits overall efficiency.
Steps to fix: Automate the process of downloading files.
6. Prepare documentation
Detailed and clear project documentation is essential for any software development project, and especially for large projects. Preparing documentation starts right off the bat during the project discovery phase.
Thoughtfully prepared documentation helps both the client and the development team to:
- Validate all essential project details
- Work out the final requirements
- Achieve a mutual agreement on the project specifics
- Make sure everyone is on the same page
The scope of documents may vary depending on the project’s type, size, and industry. The most common documents to start working on during the discovery phase of a software project are:
1. A vision and scope document defines the client’s vision, the goal of the project, and the steps necessary to reach that vision. Apart from basic details like the project’s name, overview, and users, this document also contains:
- Business requirements: objectives, success metrics, vision statement, risks, assumptions, and dependencies
- Scope and limitations: main product features, the scope of initial and subsequent releases, limitations, and exclusions
- Business context: stakeholder profiles, project priorities, and deployment considerations
Other participants in the discovery phase also contribute to the development of the vision and scope document. For instance, PMs estimate the project duration and budget and architects provide information on technical solutions.
2. A use case diagram is a graphical representation of the relationships between users and the system. A use case diagram helps to define the project’s scope.
For example, if a user is a medical transportation provider working in a CRM system, they may participate in the following use cases:
- See a list of rides
- Accept rides
- Decline rides
- Build routes online
3. A user persona is a portrait of a typical user who interacts with the system. A user persona helps the development team better understand the needs of actual end users and focus on features that are actually wanted and needed.
User personas may contain various details like age, family status, location, occupation and main responsibilities, background, and character traits.
4. A user journey map describes the steps end users take in the system, obstacles they face, and their feelings about the solution.
A user journey map usually includes user steps, actions, touch points and pain points, and the developer’s solution to mitigate those pain points.
5. Developing backlog documentation is a necessary step in building a project’s knowledge base. This stage is important since it helps to:
- Elicit and define requirements
- Define the scope of the project
- Provide time and cost estimates
- Start preparing essential project documentation
The four most important steps during work on backlog documentation are:
1. Preparing a software requirements specification (SRS)
This document contains the project requirements that BAs elicit from stakeholders. BAs usually start working on the SRS at the discovery phase and add new information to it as they communicate with stakeholders and developers.
2. Working on epics and user stories
Epics represent the entire functionality or a big part of it, and user stories are parts of epics.
3. Making a list of product features
Business analysts prepare a list of features (with minimal detail that will be discussed and augmented later.
4. Developing mockups
A BA cooperates with a designer to prepare mockups and descriptions for them. Prototypes or mockups that depict the proposed solution complement the SRS.
Preparing all the documentation mentioned above (in particular) and the entire project discovery phase (in general) help the development team fully grasp the business needs behind the project. This enables them to accurately plan their work and introduce a solution that perfectly meets all of the client’s needs.
All information gathered during the project discovery phase allows developers and stakeholders to work on a clear set of requirements, create a step-by-step development plan, and lay out a full project timeline with interim goals, deliverables, and deadlines.
Once the project discovery phase is over, a client can expect to get the following:
- A structured plan of work for developing or improving the solution
- Accurate time estimates and deadlines
- Total project cost
- Project scope with a technical specification
- A mockup or a prototype of the requested solution
At this stage, the client knows how the development team works and has a better understanding of how their future solution will work. They can be sure that their development partner totally gets the idea of the project and will build the required product in the specified timeframe.
If a client is satisfied with the results of the discovery phase, our dedicated team moves on to finalizing requirements, discussing changes to mockups, and developing the final product.
Learn more about:
Apriorit Dedicated Teams
The importance of the project discovery phase in software development can't be overestimated. It aims to identify potential challenges to product development and prevent them at the early stages. This phase helps us establish relationships between our dedicated team and project stakeholders, identify the project goal and scope, and get a common understanding of the project vision within the whole team.
At Apriorit, we take every project seriously and strive to conduct thorough initial research to identify possible pitfalls and find ways to overcome them. This is why business analysts are essential parts of our managed teams.
Feel free to contact us if you need to improve your solution or build a brand-new product!