Discovery Phase in Software Development: Do You Really Need It?
The discovery phase helps reduce risks associated with outsourcing a software development project. But is it always necessary?
A software discovery phase is an in-depth analysis of all project details, from idea to technical implementation. The discovery phase protects the client from unplanned expenditure and clearly defines the development workflow. During the discovery phase, the development team studies the client’s business environment, available resources, and desired goals. Upon completion, they draw up a detailed project estimate, based on which the client decides on further cooperation.
When do you need a discovery phase?
The software discovery stage is needed to reveal all the project details and wrap them into well-developed documentation. It is crucial for novice products, or those that require significant change because it translates a vague project idea into a clearly defined action plan. During the discovery phase, the development team conducts an in-depth analysis of the client’s business, target market, and competitors. After that, they describe how they are going to implement the product and what tech stack they are going to use.
The project discovery stage is essential for those who want to outsource the development and cooperate with a remote team. It determines the competence of potential partners and their overall attitude to work. Besides, the discovery stage in software development is advantageous to the client, since it provides:
- Understandable workflow. The client is provided with a step-by-step implementation plan including a list of project roles and technologies to use.
- Clear deadlines. The client knows the development stages and final date of project implementation with minimal deviation.
- Formed budget. The project implementation plan is developed within the agreed budget with no hidden costs or overpays.
- Common product vision. Being in agreement about what the product is, and who it is made for, enables a productive dialogue between the client and the team.
- Trust-based relations. During the discovery phase, the client and the development team work closely together and establish trust.
SWOT, SWOC, or SOAR?
The discovery stage in outsourcing doesn’t have a standardized approach. It is always customized individually for each client using a unique set of methods and techniques. However, it is common practice to identify business strengths, weaknesses, opportunities, and other characteristics that affect the development process. For this, various strategic planning methods are used, the most common of which are SWOT, SWOC, and SOAR.
While these abbreviations may sound similar, they have different meanings and analyze the business from different angles. Evaluating them, you can grasp a complete picture of the state of the business and determine the right vector for project development.
At Erbis, we usually run a complex project analysis using all three methods described above. In addition, we apply techniques such as the RACI matrix, scope modeling, root cause analysis, feasibility analysis, and personas creation. By selecting appropriate analysis methods, we study all the business requirements and offer the most relevant solution to our clients.
Discovery phase checklist
The discovery phase development aims to draw up a technical specification for software development and define the scope of the work to be undertaken. This includes:
- UI/UX concept
- team members list
- features breakdown
- technology stack
- third-party integrations
- server system infrastructure
- security integration
It usually takes from two weeks to a month to provide the client with the above artifacts. To conduct in-depth research during this time, the team should follow an established plan of activities.
At Erbis, we have developed a comprehensive discovery stage checklist consisting of eight to-do’s which you can see below:
1. Research the industry. Do you want to develop a smart lock or social media app? Regardless of your answer, we need to explore the industry trends, study regional characteristics, and identify key competitors. Upon completion, we can suggest the market niche your product may occupy.
2. Determine the client’s expectations. What goal do you want to achieve after the product launch? What customer problems will your product solve? What is your definition of success? What budget and development timeline do you count on? By asking the client such questions, we gain a better understanding of their intended outcome.
3. Analyse the current project state. This step is suitable for projects that have progressed a little beyond idea generation. Here we study the available documentation, analyze the tools used, and review code. Further, we conclude how the available base can be used for project implementation.
4. Identify stakeholders. Stakeholders are all influencers on the project. These can be both people (owners, developers, customers, competitors) and, for example, laws, trends, technologies, fashion, etc. Take, for example, medical software. During its development, it is essential to follow HIPAA standards. Another example is financial apps. To implement them, you should adhere to PCI-DSS regulations.
5. Form a solution to the problem. Say you want to develop a healthy eating app. What problem will it solve? Overweight, medical concerns, or lack of time? Depending on the answers, you can focus on the fitness direction, add a consult with doctor feature, or enable a food delivery service. Understanding the key user problem helps to choose the right path and maximizes the likelihood of the product succeeding.
6. Create a product backlog. A backlog is a prioritized list of works to be done based on knowledge and tools that are currently available. At Erbis, we often suggest clients start with MVP and proceed to a more advanced product when it proves its validity on the market. This approach reduces development time and saves clients from overpays.
7. Develop a product roadmap. A roadmap describes a sequence of tasks in a project. It shows which tasks need to be undertaken sequentially and which can be implemented concurrently. The roadmap is built based on the product backlog and tasks dependencies. It informs the client about the planned workflow.
8. Provide a detailed estimate. The discovery stage in software development ends with creating a project estimate. If the client accepts the estimate and decides to proceed, then both parties sign a contract, and work begins.
Discovery Phase as a Service
The discovery phase is an important procedure that helps form a unified vision of the product, set priorities, and approve the price. Nevertheless, it is not an obligatory stage, and the client can decide whether they need the discovery phase service or not.
In some cases, customers skip this step and go straight to development. So let’s clarify when, and under what models of cooperation, the discovery phase is optional and when it is essential.
Most long-term projects with an assigned dedicated team do not go through the discovery phase because it is impossible to determine the entire scope of work for several years ahead. Such projects usually focus on developing B2B software, which requires deploying complex IT infrastructure and using advanced development tools. Besides, the dedicated team in outsourcing slightly differs from in-house staff. That is, it works under a contract that defines a fixed monthly compensation for each team member. Thus, the final project price notion does not exist because you can stop your project whenever you like.
Time and material
Clients who choose the time and material cooperation model may skip the discovery step because the final calculation is provided according to the hours actually worked. However, opting for discovery phase service, clients are advantaged because they can see the boundaries of future expenses and plan their budgets accordingly.
To understand project flow and costs, you can ask the remote team to show how much time each piece of functionality will take. Note, it is pretty hard to provide an hourly breakdown because additional issues may arise during the development process. For this reason, companies mostly create an assessment in the min-max range.
The discovery stage in software development is obligatory when you choose a fixed price model. In this case, the final project cost is agreed upon in advance and doesn’t change during the course of development. Therefore, even if the team needs to deploy additional features to finish the project, this will not affect the final project price since it is initially mentioned in the contract. The fixed price model is most suitable for small to mid-sized projects with a small amount of work. Such projects usually do not require a lot of time and resources, so it is not difficult to calculate an overall cost.
The discovery phase is highly beneficial for both the client and the team. It facilitates a unified product vision, clearly outlines business goals, and shows all details of the development process. During this phase, the client and the team get to know each other better and can further decide on the possibility of productive cooperation.
If you have any doubts about whether you need the discovery phase or not, please tell us more about your project. After the initial consultation, we will advise you of the discovery phase price and whether it is required for your project.