According to Deloitte, about 64% of most software failures are due to errors in requirements and design phases. The discovery phase in software development ensures that the project is able to seize the high ground without draining the budget and delaying time to market.
The discovery phase can be described in these five words: DANGER FORESEEN IS HALF AVOIDED.
It is at this stage you align your business visions and user demands, communicate them with your tech partner to create a simplified roadmap leading to a technical solution.
I interviewed Codup’s sales team and business analysts to gather more information about the importance of the discovery phase and how it really influences a project’s success.
Why Does Project Discovery Matter?
Ahsan Fazal Qureshi, an experienced business analyst at Codup, describes the discovery phase as a “make or break” situation for a project. He says,
“The discovery phase is like a needle of a compass guiding the project to its success. The discovery-to-execution ratio for project success is 60 to 40, where discovery is 60% and execution is 40%, as successful execution is based on complete discovery of the project. A clearly defined product structure leaves no room for errors.”
Here’s why project discovery matters:
- With the discovery of the project, you have a clear scope and identified goals
- You have a clear track of work, so no missed deadlines
- A clear scope of work means an accurate project estimate in terms of budget and time.
- Discovery helps in reduced risks and costly reworks.
- You are able to make decisions based concrete on data and analysis rather than assumptions
- The discovery phase processes user information converting it into a developer digestible form.
- It is important to uncover all hidden costs of the project which in turn helps in identifying the time and budget of the project.
Ahsan emphasizes that the discovery phase is crucial in maintaining clear communication within the team as well as the client. It effectively prevents conflicts down the line.
“As a business analyst, I have found that discovery is instrumental in identifying and managing risks and challenges. It enables us to handle the project in a manner that mitigates those risks and overcomes potential obstacles.”
Ahsan Fazal Qureshi
How Codup does Project Discovery
Asim Raza, business development manager, Codup, says,
“The Discovery process helps us in identifying potential clients and sort them into different categories. Doing this has helped us align our processes, leading us to a position where we stand today and potentially understand our client’s requirements and deliver what they need.”
Ahsan gave us a little insight into Codup’s take on Project discovery. Let’s get into it.
- Defining Project Goals
Business comes before getting into the technology aspect of the project. We start by identifying the client’s objectives and the specific problems they need to address. This is the major aspect that determines the success of any project that comes our way. We have multiple discussions with the client which we document for later evaluation and research.
We note aspects of the project to later understand and explore it further. We hand over a Business Requirement Document (BRD) document to the client containing all the different aspects of the project discussion. It is a top-level architecture containing the functional and non-functional requirements of the project.
- Stakeholder Analysis
Any software created is streamlining the interactions between two parties. These parties are the stakeholders of that project. We identify those stakeholders to understand how the product will affect them. Once the problem is identified, it is easier to understand how the stakeholders will be affected by that.
- Gathering Requirements
In this step, we identify the actions we need to take to solve the problem we identified in the first step. Again, with multiple discussions with the client, we create a road map to reach the goal. These are actionable items that guide every step of the product development process.
Once we have the major aspects of the project, we dive into the nitty gritty of the project. We thoroughly research the business requirements and convert the information into developer digestible form.
- Gap Analysis
This is where we identify the missing link between the client’s requirements and the end goals. Every functional software has a user flow that determines the complete action of a user journey. Our goal is to identify each user flow and get into the nitty-gritty of the user flow to make sure that it doesn’t have any missing links.
- Functional and Non-Functional Requirement Analysis
Functional requirements are the features of the website irrespective of how it is technically behaving, For example, a writing software will have a drop-down menu from where a user can create a new document. non-functional requirements are the technical functionality of the feature for example, where the software will be saved. Usually, a client comes to us with the functional requirements and we discuss the non-functional requirements with the client.
- Creating a Top-Level Approach of the Project.
At this point, we compile all the information we’ve collected from our client and research in a document, and create a proposal that consists of our approach for the project.
- Design of the UI
This is an optional phase in our process. We offer design services to clients who need it, so we have a layout to understand how the web app will look and feel. We create mockups to implement the UI, to ensure we are moving on the right track.
- Cost and Time Estimation
This is the stage at which we join head with our developers and project managers to understand how many man hours the project is going to take. We have three engagement models to help us with this task:
- Fixed-priced model: it is best for clients who know exactly what they need and when there is less chance of the project roadmap going in a different direction.
- Time and material model: in this model, you are given an estimate of the time in hours required for the development of a project sprint. The cost estimated varies on the resource that will be allocated for a particular sprint, as you pay only for the hours spent.
- Retainer model: in this model, the client has the freedom to purchase hours of the outsourced resource. Retainer contracts are based on an hourly rate of the outsourced personnel and are paid for a specific number of hours they are retained for in a month.
- Provision of Proposal to the Client
This is the stage where we create a detailed scope of work containing minute detail of the features which we discussed in the top-level approach proposal. This document is then shared with the client who signs the contract and we begin with the development process of the project.
In the case of the Agile project, we make user stories every two weeks. It is an incremental approach where every two weeks we deliver a sprint and develop specific features to fulfill the requirements. So it is an iterative process that keeps on developing as the project progresses.
The Challenges We Face During Discovery Phase
- Catering The Clients
We have created a list of different types of clients. Our basic approach is to understand them by analyzing their needs and wants. When we categorize them, it is easier to communicate with them and cater to their needs.
- Grounding Overambitious Requests
Requests for advanced technology such as artificial intelligence without a clear understanding or provision of necessary algorithms are too common. Again, this is where the team needs to communicate the issue and define realistic technologies to serve the users. In simple terms, if there’s a big gap in the business logic, the discovery phase is the right stage to close it altogether.
- Mismatched Technology Visions
Some clients coming to us are well-versed in the technology aspect and that’s great. However, sometimes the technology they are referring to is not the right fit for their product which leads to a conflict. Therefore, it is important to first talk and understand the needs of the business and then find out which tech stack fits best for their product.
- Information Fatigue
When there is too much information and insights, it gets hard to summarize and distill the information. The rule here is: if something is good enough but doesn’t bring value – remove it! This helps in aligning all the necessary aspects of the project and creating a simple workable solution, so it doesn’t create confusion later on.
- Unrealistic Deadlines
Impossible timelines are a real thing. They are often a result of not understanding the complexity behind the task which seems to be simple, but once it’s started, there are complex situations that demand time. However, some clients believe that even a complex task can be delivered with more people, but that’s not how things work.
- Incompatible Requirements
The client sometimes wants everything – high-quality video recognition, unlimited storage, instant access to data, and more – all on a limited budget. It is important to navigate these requirements carefully, prioritize the important tasks, and find workable solutions.
- Integration With Numerous Devices
Integrations are a complicated, time-consuming, and costly thing to do. Sometimes clients ask to integrate a lot of different programs and devices which is not possible on a limited budget. A smarter way is to figure out which device is primary for the target audience and focus on that first.
Discuss Your Next Project With Codup
The Discovery phase is the most crucial phase for successful delivery. As Asim said it,
“As an agency, we stand out because we listen and evaluate every aspect of the project with careful consideration before starting any project.”
So if you are looking for an experienced team to facilitate your product discovery, Codup is always there to help you. Reach out to us and we’ll analyze, shape, and strategize your business idea.
The post Do You Really Need to Invest in Paid Discovery When Starting a Tech Project? appeared first on Codup.