71% of software projects are never released or are disastrous, according to The Standish Group Chaos Report.
So, if you invest a ton of your money and effort in the development of a software project, it's better to make sure you'll do well.
A project discovery phase is a key to the success of your future product.
In this article we'll talk about:
- What a discovery phase in a project is, who should participate in it, and for how long the discovery phase lasts;
- What the purpose of a discovery phase in Agile is;
- The main benefits of the project discovery;
- What are the downsides of skipping the discovery phase of a project;
- In what cases you may absolutely skip the discovery phase;
- A step-by-step plan on how to complete product discovery in software development;
- Key deliverables of the discovery phase.
What is a discovery phase in Agile development?
The discovery phase in software development is the first and mandatory stage of project development, intense research during which a team determines the end-users needs, identifies the technical requirements and analyzes the business goals of the project to propose its technical implementation, give an idea of the project timelines, and estimate the development cost.
Ideally, two teams participate in the discovery phase of the project - the customers’ (Product Owner) team and the contractors’ team. However, often enough, only the contractors team is in charge of the discovery stage. This is a downside as the more actively the customer is involved, the more properly the software will be built and the higher the chances for the successful implementation of the product are.
From the vendor's side, the team usually includes the following members:
A project manager organizes teamwork, communication with the client and weekly reporting, resource booking, and delivery of created products to the client on time and with exceptional quality.
A technical expert is an experienced developer or a software architect. This person analyzes the artifacts of the discovery phase to ensure that the projected business logic is technically feasible and suggests the optimal architectural solution.
A business analyst is responsible for identifying, analyzing, and capturing requirements, designing the system logic, and building interdependent logical connections. The analyst translates business goals into functional and non-functional parameters
When it comes to very complex projects, the business analysts’ role is essential. However, to decrease the budget of some not so demanding projects, his responsibilities can be divided between being a PM and a UX/UI expert.
A designer or UX/UI expert draws a Mind Map that includes the general users’ flow and all the required functionality. After a mindmap is approved, he or she creates a clickable prototype to show how the future project will look like.
A prototype creation is critical to assess the project cost and the Mind Map that has been drawn previously saves time for the team and reduces the customers’ expenses.
The contractors’ team should be skilled and capable. If people who have not worked before are sent together to the discovery phase, the result may be pretty disappointing. That’s why it’s recommended to define a Product Owner - a responsible person who makes the final decisions.
The project discovery phase usually lasts up to 1 month. But its’ exact duration depends on the complexity of the product being developed. It is crucial that communication is convenient and response from the product owner is quick at the beginning of the discovery phase to make it as fruitful as possible.
Discovery is a step-by-step process. You move from global business goals and objectives to specific user actions within the system.
What is the purpose of the project discovery phase?
Suppose you're a startup founder with a great idea and capital that you've raised in an investment round. Or you're a CEO/CTO of a product company that needs to develop a new internal product. Or you're a departmental manager in an enterprise company that needs to develop a software solution to increase the efficiency of the work being done.
Sure, you want to create awesome software, achieve a high ROI, and please your clients and end-users.
If this is about you, to make your software successful and in-demand, then before starting to develop it, you should focus on the discovery phase.
At this stage, you have to properly line up the things that are always difficult to do:
- A serious problem, a deep need or desire of end-users...
- That you can solve with your software...
- You have to realistically assess and allow for the budget, time frame, and the talent that’s on your team.
So the basic idea is what makes discovery fruitful is the extent to which you align these pieces of the puzzle.
Benefits of the discovery phase in Agile development
1. You reduce risks
The vendors’ team will be able to evaluate both the projects’ requirements and their opportunities and to make sure that they’re able to do what is needed. Or to understand quickly that they won’t be able to develop the needed software within the given timeframe or budget.
In this case, you will be able either to find another vendor or to adjust the requirements/conditions to make your project fit for the particular conditions.
2. You can more accurately gauge the project budget
If you don’t pay enough attention to the assessment, then you can go wrong with the final cost of development. If you carry out a detailed analysis at the beginning of the discovery phase, you will have to allocate the budget for the work of the specialists who will be involved. But it will save you money during further development and also help to avoid multiple gaps and mistakes.
The discovery stage allows you to analyze all the important points together with the contractors’ team even before the development starts and enables you to avoid surprises in the future when it turns out that the project costs become significantly higher than it was originally projected.
3. It is easier for you to integrate a new project into your current infrastructure
The discovery phase of the project allows both you and the vendor to communicate all the requirements and important points and to document them.
In this case, if you want the project to be developed with a particular programming language like Node.js, PHP, or Ruby on Rails, the contractors’ team will know that in the beginning, and won't make the common mistake of using another programming language to develop the software.
4. You can quickly test a prototype on the end-users and receive valuable feedback
When a team creates a prototype quickly, you have an opportunity to approve the future project or to adjust your requirements to receive the product you want to be developed at the end of the day.
Besides, you can conduct beta testing and allow end-users to check out your prototype using such software as Figma or InVisionApp. Maybe their feedback will give you some valuable insights and allow you to make the final project even better. This practice is very useful because it usually helps to avoid doing unnecessary things during the development phase and as a result saves you a significant amount of money in the budget.
5. You and your contractor come to a common understanding of the project and increase chances for the projects’ success
Besides, when a team has created a prototype fairly quickly, you will avoid a situation in which the final project is not what you’ve meant to create or can’t be integrated with the other software you use, and the vendor's team has to redo the development work from scratch substantially increasing the project budget and the risk of its failure.
In a nutshell, the discovery phase in a project is invaluable for all the stakeholders.
If you own a software company, you will have more successful software projects under your belt.
If you are an individual software developer, you will have greater work satisfaction and success rate.
If you own a business getting the software developed, you will have a more efficient and economical product on your hand.
When can you skip the discovery phase?
Though the software discovery stage is extremely important for almost every project, there are still some cases when you can skip the intense 1-month research phase and make a brief initial preparation.
Of course in such cases, you will have a very rough time and budget estimate that can hugely deviate from the real numbers. Especially if the product idea changes to a high extent during the development process.
But if you're OK with it and don't need a detailed project roadmap, you can easily skip the discovery stage in the following cases:
- The vendors’ team already has all they need for the successful development (i.e. required documents). Sometimes you already have the necessary documentation, as it can have been prepared by another vendor or your company's in-house specialist. In this case, you can just share it with the development team.
- The team doesn’t create a product from scratch but makes minor adjustments to it.
For instance, at DOIT Software, if we start a project development with skipping the discovery stage, we expect that the client:
- is ready for close cooperation with the development team and is familiar with the SCRUM methodology;
- has clear goals and realistic expectations;
- can adjust budgeting based on real-time progress.
How to make product discovery.
To make the discovery phase a foundation for your projects’ future success, you have to clearly understand what steps the development team should take and in what order. Here is what we do at DOIT Software during the product discovery stage:
- First, our sales reps or project manager, together with a UI/UX expert, gather all the client's requirements concerning the main functionality of the future product, and their thoughts on a good interface based on their favorite apps. After this information is gathered, we approve it with the client.
- Based on this information, PM/BA together with the UX designer creates the main functionality list, conducts the market and competitor research to determine the needs and gaps that we can close with the future software product.
- After that, the UX designer discusses the user flow with the project manager and the team and creates a detailed user flow Mind Map as a result of this discussion.
- The created Mind Map serves the UX designer as a foundation for a clickable prototype creation. After it is created, the team discusses it and makes suggestions for improvements if there are any.
- Then the prototype is tested and the results of the tests are presented to the discovery stage team. A discussion takes place again.
- When a general agreement on the prototype is reached inside the team, the PM creates the user documentation which covers all the requirements for the interfaces and functionality.
- It can be extremely useful if the QA Engineer creates the software requirements specification and test cases based on user documentation. It can help to avoid development mistakes from the very beginning.
- A full-stack developer/architect creates a solution architecture diagram with the proof-of-concept (if needed).
- To take stock of all the previous operations, the PM creates a development plan that includes the project development process steps and an accurate estimation of a timeline for its creation.
Key deliverables of the discovery phase
So, what will you get after the discovery stage? Well, it depends on the vendors’ company. Here are our key deliverables that we prepare for our clients having analyzed their business challenges and product requirements:
- The UX designer prepares a user flow Mind Map and clickable prototype which can be tested among end-users.
- The project manager creates a feature map with use cases for every feature, estimation of the approximate budget, and timeline of the project and the project resource plan. After the product discovery is completed, the development plan for the project is also created.
- The QA Engineer conducts UX testing and creates software requirement specifications as a good practice.
- Developers are usually contacted by the PM for project discussions and estimations. Their key deliverables are the software architecture diagram and the technology stack. On the client's request, developers can also provide a proof-of-concept.
Frequently Asked Questions
What risks can occur if the discovery phase is skipped?
If you decide to skip the discovery phase, you may encounter communication problems with the development team and a poor requirements definition. As a result of this, the team might develop something different than what you planned to release. In addition to this you can overlook defining the main risks and/or opportunities, which will result in serious underestimations.
When can you skip the discovery phase?
There are two cases in which you can skip the long discovery phase and make do with a brief initial preparation:
- The development team has all the required documents for successful development. It can be when the necessary documentation has been prepared by another vendor or your companys’ in-house specialist and you just share it with the development team.
- The team doesn’t create a product from scratch but makes minor adjustments to it.
Who will take part in the discovery phase?
The development team usually includes the following members:
- Project manager.
- UX/UI expert or, simply put, a designer.
- Business analyst (in less complex projects his responsibilities can be divided between PM and designer).
- Technical expert.
In a perfect world, a similar team from the customer's side should also participate in the discovery phase.
What are examples of discovery stage results?
The key deliverables of the discovery phase usually include:
- A Mind Map of the user flow
- A clickable prototype of the future software.
- A feature map with use cases for every feature
- An approximate estimation of the needed budget, and a timeline of the project.
- A project resource plan.
- The development plan for the project
- Software requirement specifications (optional)
- A software architecture diagram
- Technology stack
- A proof-of-concept (optional)
A good agency should not only just build what the client asks for. A good agency should do its best to integrate the project into the client’s current infrastructure and operational processes. Also, it is necessary to recommend what interdependent items need to be improved/updated to support the new product.
The discovery phase helps any development team thoroughly research the clients' actual needs and exceed their expectations.
In this article, we explained why almost every project needs the project discovery phase, the benefits of it for the project, and how to make the discovery step-by-step. If you are looking for help with your software development, or with the discovery phase in particular, feel free to get in touch with us to discuss your needs and how we can help you.