The Expert Method for Cooking a Successful Discovery Phase that Gets Results
The Expert Method for Cooking a Successful Discovery Phase that Gets Results
The discovery phase is a crucial initial stage of any software development project, and its success or failure depends on how well it is executed. This phase involves gathering information, defining goals and objectives, and aligning expectations. A well-executed discovery phase lays the foundation for a successful project outcome.
In this article, we will guide you through the expert method for executing a successful discovery phase, as followed by UKAD. From defining the scope of work to setting realistic deadlines, we will take you through the crucial steps to ensure a smooth and productive discovery. Our goal is to equip you with the knowledge and skills needed to go through the phase that sets your project up for success.
The discovery phase in software development
The discovery phase in software development is a fundamental stage of a software project, dedicated to gathering information and understanding the client's needs. The primary goal of this process is to lay the groundwork for a successful project by identifying the project's scope, target audience, and aligning expectations with realistic deadlines.
During the discovery phase, the development team works closely with the client to obtain information about the business processes and expectations for the project. The team may use various methods, such as questionnaires, one-on-one meetings, brainstorming sessions, and presentations, to gain a deep understanding of the client's vision and requirements.
Once the discovery phase is complete, the development team will have a clear understanding of the project's objectives, and the client will have a better understanding of what the development team can deliver. This phase is critical in building a strong foundation of trust and communication between the development team and the client.
Why is the discovery phase important?
It is a crucial step in the overall development flow. And, if possible, you should not skip it because the discovery builds the foundation for the entire success of the project.
Under the discovery or scoping phase, we assume a process of collecting and analyzing information about the project (Vision, Goals, Scope, or so).
The discovery phase helps us:
- to know better the project goal
- to define the project scope because even a rough scoping is better than nothing
- to achieve more accurate estimates
- to make design solutions based on data, not assumptions
- to prepare major project artifacts and baselines if the project gets the “green light”: for example, Master Plan, roadmaps and backlogs, estimate baseline, schedule baseline, etc.
It is important to start the project with a clear understanding of what we are doing.
Discovery phase steps
In UKAD, we usually perform the following steps of the discovery phase:
- Gaining an understanding of the client and their business concept with questionnaires, individual meetings, collaborative brainstorming sessions, and presentations.
- Outlining the vision for the upcoming project that is vital to align the client's expectations and timelines with realistic deadlines during this phase.
- Identifying the product's target audiences.
- Defining the scope of the project.
- Establishing timelines and prioritizing the major components.
- Preparing the discovery phase outputs/deliverables: architecture and solution designs, SRS, prototypes, etc.
Discovery phase duration
The duration of discovery depends on the size and complexity of the project. This phase may take from a couple of days to several weeks or even months. The average time frames are:
- for a small project — 1-3 days
- for a medium project — 1-2 weeks
- for a large project — at least 3-4 weeks and more.
Discovery phase deliverables
The major outputs of the discovery phase in UKAD might include:
- SRS (Software Requirements Specification)
Of course, this document is more applicable to “waterfall” projects, but it suits Agile methodologies, as well. It might include the major features, architectural solutions, technical stack, design constraints, etc. It can be a simple backlog or list of potential features too.
- Rough UX/UI prototype
Before drawing the detailed UI and UI interface, it is necessary to get a preliminary prototype. In UKAD, we usually “cook” the prototypes in Miro.
Here is an example of the results.
- Scope baseline
At this output, we usually assume the defined scope of work for:
- the entire project (if the scope is clear and there are no pitfalls or gray zones)
- MVP only, if we want to move step by step with many “unknowns”.
- Estimate baseline
In UKAD, we usually do even rough estimates based on scope baseline considering the “unknowns”:
- Rough order of magnitude (ROM) with an accuracy of -25% to + 75% (based on PMBOK recommendations);
- Definitive estimate with an accuracy range of -5% to +10%
Of course, the detailed estimate will require a good enough detailed scope and extra efforts of the team. As a result, all stakeholders may understand the total budget. In the case of Agile methodology, we usually apply ROM estimates.
- Schedule baseline
Grounding on the defined scope and estimate, we usually calculate the project schedule baseline, that gives the understanding of:
- when the MVP or the entire project can be delivered
- how many days, weeks or months it will take.
- Project roadmap
It assumes the defined list of tasks, features, and smaller scopes to deliver in a weekly or bi-weekly perspective. The roadmap might include estimates, detailed user stories and responsibility zones (e.g. BE / FE / QA. etc).
- Other deliverables
In some cases, the outputs of a discovery phase might contain the additional artifacts:
- project master plan
- wireframe design
- user stories with acceptance criteria
- other detailed or high-level stuff.
What are the consequences of omitting the discovery phase?
You can imagine the discovery phase as a playground to brainstorm ideas, assumptions, constraints, and thoughts. It is a place where everyone involved in the project can have an in-depth conversation about the details before committing to start the project.
Skipping the discovery phase can have serious consequences and ultimately lead to project failure. It is a crucial stage in the software development process that provides a foundation for a successful project outcome. Without it, the project is more likely to face a range of problems, including:
Without a clear understanding of the client's needs and goals, there is a high probability do not deliver what the client expected. It leads to dissatisfaction and even termination of the project.
Unclear scope of work
Without defining the project scope during the discovery phase, the development team may work on tasks, which are outside the original scope, leading to increased costs and missed deadlines. It is a place where so-called gold plating might happen.
Skipping the discovery phase means that the development team may not receive all the necessary information to create an effective solution. It leads to missed features and functionality crucial for a successful project.
High level of uncertainty
There should be a high level of uncertainty among the team due to the lacking details and information. Sometimes, we call them unknown unknowns.
Without establishing a foundation of trust and communication during the discovery phase, the client and development team may struggle to communicate effectively throughout the project. It causes misunderstandings and miscommunication, leading to decreased efficiency and project delays.
So, skipping the discovery phase in software development is not recommended due to the possibility of severe outcomes. It is a critical stage of the process that lays the foundation for a successful project by gathering information, defining goals, and aligning expectations.
What follows the discovery phase?
The software development process consists of several steps. Once the initial discovery phase is complete, the next step is to move into the development stage. At this point, the team will have a clear plan for what the software should do, a rough design, a strategy for building the critical components, and an estimated cost for the project.
The discovery phase is a crucial stage in software development that lays the foundation for a successful project outcome.
At UKAD, we have developed an expert method for conducting a successful discovery phase that delivers results. Using a variety of techniques, we gather information and align the client's expectations with our team's capabilities. Our method involves discussing existing business processes, determining the scope of work, defining the target audience, and setting priorities and deadlines. Skipping the discovery phase can lead to significant risks, such as project delays, increased costs, and a final product that does not meet the client's needs.
That's why at UKAD, we prioritize the discovery phase to ensure a successful outcome for our clients. Once this stage is complete, our development team uses the gathered information to build a customized solution that meets the client's needs. Whether you require a new software solution or want to improve an existing one, we can help you execute a successful discovery phase that delivers results.
Author: Oleg Royko
Project Manager at UKAD
- Project Management
- Discovery phase
Why you should hire a Business Analyst for your project
When a customer chooses a provider of software development services, one of the important selection criteria is the balance between team expertise and solution budget. If the planned project is quite large or complicated, IT companies often include a business analyst to the development team. And it’s the moment when the customer meets a question: why should we add a business analyst?
How to build Learning Management System in Umbraco - our experience and results
As the digitized world becomes closer, it is a must for today to extend and move your business online. One of such niches we are going to discuss today is online learning.
How Software Improves Creative Processes
While managing our website, I've got a question: how to spend less time on different minor actions. Such as digging into the pile of alike pictures, which is one of the most painful things for everyone managing content. So, I got interested in Digital Assets Management applications - the software solutions used to catalog, store and, sometimes, edit multimedia files - and discovered it using Digizuite as an example.