You have an innovative idea. Technology enthusiasts ourselves, we get the itch of wanting to turn it into a functional app right away. But diving into development without the so-called discovery phase might be fatal, especially when it comes to implementing complex or innovative solutions.
Various studies suggest that out of all software development projects implemented globally, only 10% to 30% succeed.
And the sad given is: the more innovative the idea, the more likely the project is to fail.
The reasons for failures vary, but they are often bound to poor project planning:
Our experience delivering software engineering services proves: a larger share of issues that cause software development projects to go awry can be prevented — and that’s where the discovery phase comes into play.
If you’re about to start an IT initiative and don’t want it to spin out of control, keep on reading. Below, we share how the discovery phase helps enterprises and startups roll out software solutions successfully, explain what types of projects benefit from discovery activities, and share approximate costs of a discovery phase drawing on examples from ITRex’s portfolio.
What is the discovery phase of a project exactly?
A project discovery phase is the first stage in a software development pipeline. During this phase, you test the idea against business context, dismiss doubts, and prove assumptions about the future app.
When handled properly, the discovery phase helps you understand how exactly you can turn your business idea into a fully functional solution, while providing the basis for accurate time and cost estimates.
Ultimately, introducing a discovery phase to your project helps you implement a product that matches user expectations and has a competitive edge.
Depending on the scope of work, a discovery phase may take two to four weeks for Agile projects and anything between four to eight weeks or even more for Waterfall projects. It is usually billed according to the Time and Material (T&M) pricing model.
What stages does a project discovery phase incorporate?
A discovery phase of a project usually includes four stages:
At this stage, you establish a clear product vision. You also think over the strategic aspects of bringing this vision to life. For that, you do the following steps:
Identify key stakeholders and business context
Start the discovery phase of a project with interviews, questionnaires, discussions, focus groups, and observations to dive into the environment the future solution will be used in and record the needs and expectations of key stakeholders. The latter should include product owners, administrators, end users, developers, investors, and other people involved in crafting and using the future solution.
Also, don’t forget to look back at the existing documentation. If you already have market surveys, user interviews, or any other useful docs, you may shorten the project discovery phase by saving some time on extra research.
Define a product vision
Based on stakeholder feedback, define product vision. Think: a high-level document that outlines the purpose of developing the product and communicates its key value for users.
Identify success metrics
As the next step of a project discovery phase, think over the criteria for measuring product performance. These could include monthly revenue, daily active users, customer lifetime value, and other factors. Product managers will rely on these criteria to monitor if the product meets the set business goals.
Identify target users
Continue with researching your target audience and creating user personas.
Identify their needs, expectations, and pain points, and think over the ways to address those in the app’s user journey.
Nail down technical requirements
Morph all of the data aggregated during previous stages of a project discovery phase into a software requirements specification (SRS), documenting both functional and non-functional (performance, usability, security, etc.) requirements to the future solution. Refer to our guide to writing an SRS for more details on how to craft a compelling document.
Craft a risk management strategy
Map out a risk prevention and mitigation strategy. These will help you identify and respond to potential risks, uncertainties, and roadblocks before they become issues.
Define project scope and timeline
At this point in the project discovery phase, you can provide a detailed estimate of the resources, costs, and time needed to complete the project. Finish the stage by crafting a full project timeline with defined milestones, deliverables, and deadlines.
After finishing the requirements elicitation stage, you’ll have the following deliverables on hand:
Product vision statement
Project scope document and, optionally, scope diagrams
Use cases, user stories, and user journey maps
Product requirements document (PRD), functional requirements document (FRD), or software requirements specification (SRS)
Risk management strategy
The goal of the solution design stage, quite self-explanatorily, is to design the product’s user experience and come up with its look and feel. At the design stage, you commonly do the following activities:
Craft user journey maps
Building on the target audience research and user personas, craft a high-level visual representation of a user’s experience with the product. Typically, you would need a separate user journey map for each user segment.
Continue the project discovery phase by thinking over the points of interaction between the users and the future product. Use the data you collected during the research to populate the journey map.
Design-wise, your map can be as simple as a timeline and as complex as a storyboard depicting what exactly happens at each stage.
Create wireframes and mockups
Visualize your concept by creating blueprints communicating the solution structure and design.
Finish the stage by building a solution prototype. Think: an early version of the future solution that reflects both its basic functionality and design. A prototype is a great means of giving your stakeholders a taste of what the future solution will behave, look, and feel like.
To validate user flows and UX and UI decisions, you’ll likely go through several rounds of testing. And it’s perfectly okay. Collect stakeholder feedback at each iteration and rely on it to perfect your design.
Once the solution design stage is finished, you’ll have the following deliverables:
User journey maps
UI wireframes and UI design mockups
Low-fidelity solution prototype
Architecting the solution
At this stage of a project discovery phase, you think over how the designed vision will be realized technology-wise. To get it all done, carry out the following:
Craft a technical vision
Building on technical best practices, business context, and feedback from the development team, design a technical solution of how to turn the product vision to life. Make sure your technical vision is flexible, future-proof, and aligned with the overall business strategy.
Carry out a technical feasibility analysis
As the next step in a project discovery phase, assess the details of how you’re going to deliver the solution. Consider the technology landscape, available infrastructure, resources, and budget. The end goal is to determine the viability of the proposed technical solution and ensure the project is legally and technically feasible, as well as economically justifiable.
Design solution architecture
Relying on industry best practices and building on technical requirements, design the architecture of the future solution. Built-in scalability, flexibility, and security are the features to hunt for — these help ensure you can further evolve your solution later on.
Select the optimum tech stack
The next step is to choose the optimum programming languages, frameworks, and libraries. When doing so, keep in mind that the technology choices you make will influence the future solution’s performance and scalability, the time to market, the maintainability of your software, and support costs. Make sure to carefully weigh your tech options against these factors.
Break the project scope down into deliverables and create a backlog structure
With the project scope being clear and technology choices made, you can break the workload down into specific deliverables and design a project backlog. There are different approaches to structuring your backlog; we find one relying on a user story as the beacon of what should be delivered to be the most convenient.
Design a QA and testing strategy
To ensure your solution runs without a glitch, invest effort in designing a thorough QA strategy early on. Remember that well-rounded quality assurance is not limited to testing — although it is an essential part of QA. So, make sure to incorporate QA activities as early as at the planning stage and follow with the needed functional and nonfunctional testing activities.
Having finished the solution design phase, you’ll have the following deliverables:
Solution feasibility record
Solution architecture diagrams
QA and testing strategy
The goal of the project planning stage of the project discovery phase is to define how you’ll complete the project in a set timeframe, with the available resources, and with the constraints in mind. To do so, carry out the following activities:
Draw resources, time to market, and budget estimates
Kick the stage off with drafting a resource plan, where you identify, organize, and list all resources needed to complete the project. Later, you’ll use the plan as a blueprint to ensure project work is done on time and within budget.
Outline a project roadmap
Craft a strategic overview of the project’s major elements, including objectives, milestones, deliverables, resources, and the planned timeline. At the later stages of development, you’ll rely on the roadmap as a reference guide to keep the project team on track.
Set up a project team
Based on the type and complexity of your product, the time to market, the allocated budget, and other project constraints, assemble a project team to bring your vision to life. To make sure you’ve got an optimal team composition, feel free to study our in-depth project team structure guide.
Define project KPIs
Set up the metrics to track to measure your project success. These can span budget, quality, effectiveness, and timeline KPIs. Make sure every metric you introduce is SMART (specific, measurable, achievable, relevant, and time-bound.)
Set up progress-tracking tools
You don’t have to manage project data manually. Instead, go for a project management tool that will allow you to navigate data from various sources conveniently. The most popular progress tracking tools on the market span: Trello, JIRA, Hive, Asana, Nifty, and others.
Set up a project infrastructure
Once core discovery activities are completed, it’s time to finish the discovery phase of a project by bringing in operations and/or DevOps teams. They’ll set up the environments for development and testing activities to take place and create a pipeline for automatic deployments.
Once the project planning stage is over, you’ll have the following deliverables on hand:
Project infrastructure plan
Optionally, a pitch deck for startups to present to investors.
Who’s responsible for conducting and coordinating discoveries?
With the information above, you can venture into your project’s discovery phase on your own. Another way is to turn to an experienced provider of project discovery services who will support you with the right and skilled talent. Usually, a project discovery team includes a business analyst and a representative of an engineering team, be it a solution architect, an ML consultant, or any other role relevant to the project. An extended discovery team may consist of the following roles:
A product owner is the one who has the initial product idea and is responsible for developing the product vision. As a product owner, you will be involved in product development, but your tasks will be more strategic, while the major part of analysis, design, and development will usually be handed over to other team members.
A project manager is the one responsible for smooth communication between stakeholders, planning the scope of work, and tracking project progress.
A business analyst is the one who comes up with a specific plan of how to turn the initial vision into a real, functional solution. As a business analyst, you interview stakeholders, dive into their needs, and weigh those against the business context to craft a detailed SRS.
A solution architect analyzes the requirements and designs the solution logic and architecture. They also propose tools, technologies, and methodologies to ensure you get competitive, future-proof software.
A UX/UI designer is the one designing an uninterrupted and smooth user experience. They study user needs and preferences to make the future product as convenient and appealing as possible.
Additionally, your discovery team may include a DevOps engineer, a QA engineer, and a security engineer.
A DevOps engineer will be responsible for setting up the infrastructure for project activities and designing a pipeline for automated builds, if you choose to implement one.
Involve a QA engineer in discovery activities if your product is subject to stringent quality requirements. Let them evaluate the feasibility of requirements and incorporate the necessary QA activities into all stages of development.
A security engineer in turn will make sure your product complies with the necessary safety standards and boasts built-in protective mechanisms.
How does discovery differ in Agile and Waterfall projects?
Whether you opt for a linear project management approach, such as Waterfall, or one of the management methodologies from the Agile family will impact how the discovery phase is handled, too.
In Waterfall, all discovery activities are completed upfront, before development starts. A discovery phase usually takes up to eight weeks and 10% to 15% of the project budget. Upon completion, the team gets all the necessary deliverables.
In Agile, on the other hand, a discovery phase usually runs one or two iterations ahead of the development track. It usually takes a couple of weeks or less.
If you want a more in-depth look into the differences, read our article on the discovery phase in waterfall vs. agile projects.
What types of projects could benefit from a discovery phase?
We’ve sat down with Vladimir Sechko, lead BA at ITRex, to ask him about the types of projects that could benefit from introducing a discovery phase. Spoiler: any. And we’ll explain the reason for such a response later on. For now, we’ll draw on three examples from ITRex’s portfolio to illustrate when discovery activities come in handy.
Project 1. A software platform for market research and forecasting
A startup looking to create a market research and forecasting platform for retailers approached ITRex to test out the feasibility of their idea and further develop the solution concept.
Targeted at a fashion retail market, the ML-based platform would help manufacturers and retailers adjust the volume of produced and sold items to the demand in a particular place of sales interest. The prediction would be based on open-source data, including social media information.
The scope of delivery included researching data sources for the predictive model, thinking out the logic behind the predictive model, describing the future solution’s functionality, as well as laying down compliance requirements related to data collection and data storage.
A business analyst and an ML engineer were involved in carrying out discovery activities.
At the end of the discovery phase, the customer validated the feasibility of their idea, got a low-level functional solution with all the functional blocks thoroughly described and visualized, as well as learned the compliance requirements for the future solution.
The concept of the solution is now being pitched to investors, with a high likelihood of attracting the needed resources for further development.
So, we recommend carrying out a project discovery phase if:
Your solution has anything to do with AI, ML, and other innovative techs
Your solution relies on public data, and you are not familiar with data collection requirements in the segment
You haven’t honed the initial vision yet and don’t know which core features to concentrate on during the first development iteration
Project 2. A back office for orchestrating B2B flows
An owner of four lines of business, including a music streaming service, an online printing and embroidery service, and an online store allowing music bands to design and sell their merchandise, wanted to develop a convenient back office to orchestrate all lines of business. The back office would allow for improving the B2B management process that used to be partially offline.
During discovery, ITRex’s business analyst studied the client’s needs and designed a functional map of the future solution. The proposed solution would help both the client’s partners and staff communicate seamlessly within a partner module.
Thus, after carrying out the discovery activities, the client got an exhaustive functional map of the future solution that is to be realized using the PHP Symfony framework.
So, go for discovery activities if the solution in question is complex and features many integrations. The discovery phase will help you single out core features to concentrate on during the first development iteration in order to start getting value upfront.
Project 3. An unconventional mobile advertising platform
A startup turned to ITRex to validate and further develop the product vision that they wanted to bring to the market fast. They came up with a novel approach to advertising that had a gambling element to it. The mobile platform would allow advertisers to upload video ads for users to view in a TikTok-like way. The advertisers would also be required to set a sum they’re willing to spend for the campaign. While watching video content, random users would be shown a claim reward button that would only appear for a short time, where the reward would equal the sum set by the advertiser.
During the discovery phase of a project, we honed the client’s business idea, documented compliance requirements, selected the platform for the solution to be developed on, designed user experience, thought over the peculiarities of the rewarding algorithm, and put together anti-fraud mechanisms.
The client carried on developing the solution with the ITRex’s team.
So, opt for a discovery phase if:
The solution you’re developing lies in the intersection of domains, like advertising and gambling
The solution has to be rolled out quickly. In this case, the deliverables gained during discovery would guide the development process and help avoid development mistakes
You are unsure about the appropriate technology and platforms
You are unsure about compliance and security requirements
Drawing the line, a discovery phase can be valuable for any project that is aiming at successful delivery. Think of discovery activities as of another sanity check for your business idea.
A project discovery phase, too, helps navigate development in changing or unstable environments. With a honed vision, exhaustive requirements, and a thought out timeline on hand, it is easier to adjust the course of development without losing sight of the end goal.
Discovery deliverables help lower the dependency on product owners/product managers, too. In Agile, a product manager’s mistake can be fatal. In a project preceded by the discovery phase, where strategic decisions are thought out and verified collectively, the likelihood of a strategic failure is much lower.
How much does it cost to conduct a discovery phase of a project?
The total cost of a discovery phase depends on the complexity of your project and the scope of activities to be performed.
For example, for a project with a thought-out vision, the core of the discovery phase would revolve around coming up with an optimal approach to its realization and drawing all the needed estimates. That totals approximately $10,000-$15,000.
Discovery activities for projects with an unclear vision are usually billed according to the Time & Material pricing model. The cost of discovery for such projects starts at $20,000 and more depending on the required deliverables.
To sum it all up
So, if you are a startup working on the next break-through application, kicking off the development process with a discovery phase can help you:
Nail the value proposition, user needs, and business goals
Define the scope of work and get detailed time and budget estimates
Get a working prototype to pitch to investors
Get a detailed architectural solution and start looking for the right partners and vendors
Get a thought-out product vision allowing you to avoid costly modifications in the later stages of development
Get a higher return on investment as a result
For enterprises operating in non-IT fields, in turn, introducing a project discovery phase can bring about the following benefits:
Well-documented project vision and scope
Real stakeholder feedback to base decisions on
Maximized impact of in-house talent
Thorough understanding of time and money investments
Higher return on investment