Introduction
Most software development projects should go through the discovery phase one way or another. It allows you to comprehensively cover the entire project, answer some questions in advance, and identify possible pitfalls. In other words, it helps avoid unnecessary frustrations with the final product.
But what exactly does it entail? How do you know you need it? This article will dispel all your questions about the software development discovery phase.
What It Is and Why You Need It
What Is a Discovery Phase?
The project discovery phase is the process describing and writing documentation on what should be done during project development, how it will be done, and for what purpose. This documentation does not contain programming code, but collects all information about the project, its target market, and its audience.
In a more poetic sense, the discovery phase can be compared to planning for a long journey. It’s always better to build a roadmap marking all the places you want to visit, especially on a limited budget. Sure, you can stumble upon an unexpected beautiful place during your trip, but you are just as likely to run into danger. That’s why preliminary research and consultations are highly important.
When Do You Need a Discovery Phase?
Short answer: always. Long answer: always, but some cases require special attention.
You will often see the discovery phase listed as part of the development cycle. This is only half-true. It’s the first step to it, but it’s also a completely separate process. You can even do discovery with one company and product development with another (though, it’s preferable to do everything with one team).
“But do I really need a discovery phase?” is what you’re probably thinking. If you’re a startup, yes. Startups have a 90% failure rate, with 42% of failures being the results of misreading market demand. Discovery phase helps you avoid exactly that, as well as iron out some inconsistencies you may have otherwise.
Here’s how you know you need a discovery phase.
Unvalidated Ideas
A lot of startups dive headfirst into projects that they assume will be successful, only to be hit with the harsh reality of low consumer demand and little to no investor interest. But you don’t have to assume, do you?
The discovery phase is exactly what you need to see whether your ideas are really viable and can stand up to competition. Market and user research will help you understand your target demographic’s pains and needs, which will result in a more refined project concept. It will also allow you to collect early feedback and identify potential flaws and limitations you may have to work with.
Conflicting Vision
It’s not uncommon for startup owners to have conflicting ideas of what the project should be and look like. The discovery phase can help resolve those contradictions. From requirements prioritisation to visual prototyping, a lot of compromises will have to be made.
This is also the phase where relevant stakeholders, users, business representatives, and developers will be engaged in active discussions. This creates an environment for open communication where all sorts of perspectives get to shine, allowing you to come to more informed decisions.
Complex or Long-Term Project
Big projects mean big risks. Complex ones even moreso. In general, the more variables involved in a project’s making and success, the more you need to invest into research and planning.
It’s also dangerous to embark on long-term ventures without being backed up by market insights. Even though some strategies will work great in the short term, things may not be as simple in the long run. Going into a project like that without a discovery phase is nothing short of madness.
High-risk Project
High-risk projects are endeavours that have extremely high development, marketing, and/or maintenance costs. You put a lot of money on the line, sometimes even the fate of the whole company. So lest you have a death wish, don’t dive in uninformed.
The discovery phase will not only help you understand whether the idea is feasible or not. It may also help you cut costs and thus soften the blow if the project doesn’t perform as well as expected.
Are There Projects That Don’t Need a Discovery Phase?
The Discovery Phase is important for any project. You can’t just set up a team and start the development without any preparation. Unless you do similar projects on a production line, like for example, e-Commerce sites with more or less standardised requirements. But even then, it’s important to be prepared for the development and clarify all the necessary requirements and nuances beforehand.
— Sergey Zubovich, the CEO of Bamboo Agile
However, Sergey does note that there are two types of discovery phase, which can work better for different types of projects. Let’s have a quick look at each of them.
Discovery Phase Types
Extended Discovery
If you are doing a big budget project that involves a lot of moving parts and is likely to be long-term, you need a clear plan of action. If that’s the case, extended discovery is a must.
“Some types of projects need a complete elaboration of the technical specifications, architecture, and design before the development starts,” says Sergey. “The advantage of this approach is that the results can be interpreted and used in many different ways. Some clients can even back out of development completely after the precise requirements become apparent. The downside is that this takes a lot of time and money.”
Technical Discovery
Not all projects have the resources for a large discovery phase. But that doesn’t mean you have to go in unprepared. Instead, you can go for a simplified approach in which you build requirements based on the needs of the development process.
“With this method, you’ll usually need to create a small Proof of Concept prototype,” tells Sergey. “It’s supposed to be as simple as can be, just so that it implements the most basic non-branching user flow. But it needs to prove the feasibility and viability of the idea. The massive advantage here is that you won’t develop requirements that will be impossible or very difficult to meet later on. It’s also very fast and cheap. And there are little to no downsides.”
Project Discovery Phase Deliverables
Going through the discovery phase will help you get the following:
Deliverable | Description |
Solution vision document | Describes how the development team sees the future solution: its language, technologies, third-party systems, and so on. |
System requirements specification | Describes the project itself, its goals, architecture, and the technologies used. |
Risk assessment and mitigation plan | Describes all possible risks, as well as ways to estimate and mitigate them. |
Wireframes & prototype | An early-stage prototype looks like a set of sketches or simple images that display the future app’s appearance, as well as the general plan of component interactions. |
Project estimation & MVP development plan | An estimation of the budget, skills, and time required to complete a minimum viable product. |
Benefits Of The Software Development Discovery Phase
Running a project discovery phase before starting product development has undoubtful benefits.
Building Trust
The discovery phase is a reliable tool to build trusting relationships between the client and the development team. Communication during this stage will help you better understand the development company as a partner and build a relationship that is likely to flow into a long-term partnership.
Reducing Risks
The plan developed during the opening phase will allow you to avoid wasting resources on fixing preventable mistakes. You’ll also minimise the risk of missing deadlines or creating budget overheads.
Having a Roadmap
A roadmap is a project timeline with all the intermediate goals and deadlines laid out. If you have concrete project requirements set during the discovery phase, you can build one for the entire project before the development even starts.
This will allow you to clearly lead the project from idea to launch without sudden last-minute changes. The roadmap can also be shown to investors and potential users to help them get a clearer picture of the future product.
Who is Involved in the Discovery Phase?
The more specialists are involved in the discovery phase, the better. Ideally, the entire team should participate, as well as someone representing your end users (that’s who you’re making the app for, after all).
Each team member will bring something different to the table.
- Product Owner. Product owner helps develop the product vision, defines its goals, and approves or declines offered solutions.
- Business Analyst. The BA is responsible for research, data analysis, finding possible problems, and the solutions to those problems.
- Project Manager. The PM establishes smooth communications within the team, as well as plans how their work will be planned, tracked, evaluated, and reported.
- UX/UI Designer. Designers ideate the first sketches for what the software may look like and draft its user interface.
- Software Architect. The architect approximates the software’s future structure and selects the optimal tech stack for the project. They may also participate in estimation.
- Backend Developer. Backend developers analyse the requested functionality and estimate how long it will take to develop.
- Frontend Developer. Fronted developers estimate the time required to develop the app’s web interface.
- QA Engineer. The QA specialist decides which quality assurance tasks will be necessary and how long they will take.
Software Development Discovery Phase Stages
So, let’s take a closer look at the steps involved in the project discovery phase.
Stakeholder Identification and Communication
Draw up a list of stakeholders, such as the product owner, investors, developers, end-users, and everyone else who will somehow interact with the product. Establish a mutual communication channel between the development team and the client to understand each other’s vision of the final product. Try to do the same for all the other stakeholders.
Documentation & Market Research
Market research allows you to analyse existing solutions, find their weak points, and identify a free market niche. If you still haven’t done it by this point, now is the time. Once all the relevant information is gathered, the team’s business analyst will conduct a review and analysis of it. As a result, you will be able to devise a feature list and a more informed market strategy.
Collecting System Requirements
You need to gather all the software requirements in one place, usually a document. This can be done based on the client’s product vision, market data, and user stories. You’ll also create use case diagrams, which showcase possible user interactions with the system.
This stage involves close interaction with product owners and designers. The latter will create wireframes of the interface, as well as the prototype of the UX design.
Defining Project Architecture & Tech Stack
Here you’ll define the project architecture and the tech necessary to make it work. This is done by the development team. This is also when you need to consider possible third-party integrations and non-technical requirements, such as data protection protocols.
Budget and Time Estimation
After all the necessary project information has been aggregated in one place, the development team can start estimating it. This means defining the amount of time and money required to bring the idea to life, to create an MVP, or to deploy a full-fledged product.
Want to learn more about Agile project estimation? Read this.
Project Discovery Phase Tools
Discovery can be made easier with the help of some tried-and-true tools.
Mind Map
A mind map is an interaction diagram showing the various roles, features, modules, and integrations your project has. It also showcases the project’s boundaries, the links within it, as well as all the requirements it needs to meet.
User Stories
User stories show how potential users will interact with your application. To create a user story, you first make up a hypothetical user profile (with a specified age, gender, hobbies, goals) and imagine how they might interact with your product. That way you can identify possible problems users may encounter and target their needs more precisely.
BPMN Chart
A BPMN diagram visualises all possible interactions with your application. For example, what actions the user performs to reach their goal, what the most frequent ways of interacting with the system are, how information enters the application, etc. It’s extremely helpful for understanding and planning user flow.
Request-Response Model
A request-response model is an essential part of technical documentation. It lists the conditions for interacting with third-party systems: what data the system will request, and what data it will receive in response.
Non-Functional Requirements Diagram
The non-functional requirements diagram concerns such requirements as performance, scalability, compatibility, security, localisation, usability, etc. It gives you a clear overview of these factors, helps you prioritise between them, and lets you determine their impact on the overall budget.
Design Concept
Communication between the team and the client is very important when drawing up a project design concept. As the client, you need to describe your wishes as clearly as possible, and the team will assess their usefulness and feasibility. It is also important to have a designer who is up to date with the current UX/UI trends, as visual appeal and usability are important factors of the project’s success.
Learn more about current e-Commerce app design trends in this article.
Dangers Of Skipping The Project Discovery Phase
Having talked about the advantages of the software development discovery phase, one must mention the dangers of skipping it.
Needs Discrepancy
Lack of a clear plan, lack of communication, and misunderstandings can lead to a huge discrepancy between the expected product and the one you actually get. It can also lead to wasted time and budget.
Bloated Budget
Misdirection, unclear business goals, or lack thereof can lead to requirements being changed too often. Because of this, additional funding will be required, which may lead to you overspending or running out of budget long before the product – or even the MVP – is finished.
Missed Deadlines
It is almost impossible to set deadlines when your action plan is vague. Therefore, it is also impossible to finish development phases on time. All this leads to the postponement of deadlines and the loss of finances.
In the end, you may have to resort to software project rescue. During this process, specialists analyse your existing solution and propose a plan to fix all the detected issues. So it’s not a hopeless situation, but one you’d rather avoid.
Product Development Discovery Phase Checklist
To make sure that the project is covered as fully as possible during the project discovery phase, make a list of the points that need to be addressed. We’ve put them together for you in a kind of general checklist.
- Client discussion: project (development from scratch or upgrading an existing one), goals, users, research;
- Market analysis: existing solutions, buying habits, comprehensive market research;
- Competition research: direct and indirect, failure analysis, USP;
- User research: drawing up a complete user portrait (geography, demographic), user scenarios;
- Technical requirements: specifications, list of features, technology stack;
- If a solution already exists: analysis of the solution, reasons for failure, test results, technical analysis, user reviews.
Of course, these are far from all the points that are necessary for a comprehensive study of the project discovery phase. However, you can use these steps as a guide to draw up a basic picture of the project, which can then be worked out and supplemented with more information.
Project Discovery Phase Duration And Price
As a rule, the software development life cycle consists of five stages: initiation, planning, execution, control, and closure. The software development discovery phase here is kind of a bridge between the initiation and planning phases.
Usually, if the Agile methodology is applied in the development company, the project discovery phase is carried out during the first sprint. It helps to clarify how well a development team and client understand each other from the beginning.
According to project size, the development phase can last from a few days to even a month.
Small projects | Medium-size projects | Large projects |
1-3 days | 1-2 weeks | 3-4 weeks or more |
The price of the product development discovery phase closely depends on the people involved in the process and the time spent on it. On average, the cost varies from $2000 to $4000.
Conclusion
The project discovery phase can significantly help you avoid not only unnecessary disappointments but also temporal and monetary losses. As a rule of thumb, you should entrust the process to industry professionals that are well familiar with the market.
Bamboo Agile is no stranger to software development, having completed hundreds of projects and their respective discovery phases. Contact us to get a free consultation with our specialists!