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:
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.
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:
So the basic idea is what makes discovery fruitful is the extent to which you align these pieces of the puzzle.
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.
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.
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.
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.
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.
Check out our article “Why a discovery phase is a must-have for your project?”
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:
For instance, at DOIT Software, if we start a project development with skipping the discovery stage, we expect that the client:
The UX designer prepares a user flow Mind Map and clickable prototype which can be tested among end-users.
The QA Engineer conducts UX testing and creates software requirement specifications as a good practice.
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.
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.
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.
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.
There are two cases in which you can skip the long discovery phase and make do with a brief initial preparation:
The development team usually includes the following members:
In a perfect world, a similar team from the customer’s side should also participate in the discovery phase.
The key deliverables of the discovery phase usually include: