The discovery phase is one of the most important stages in full-cycle product development. It’s a chance for the development team to fully understand the ideas behind the project and to propose better ways of implementing it while not going over budget or running past deadlines.
The road to success for a new project idea is paved with challenges and risks. According to Finances Online, 47% of software projects are delivered late, have budget overruns, or result in unsatisfied users. Among the top reasons for software project failure are an inaccurate gathering of requirements, poorly defined opportunities and risks, an inappropriate technology stack, and inaccurate cost and time estimates.
Our research and development company is convinced that all of these circumstances can be avoided via a thorough project discovery phase. Having delivered over 450 projects to date, we’ve concluded that the initial stage of planning, requirements design, and estimation is a vital part of creating software that reaches its goals.
Using hands-on experience from previous projects and case studies, we’ve crafted a set of strategies and instruments that helps us fully align technical implementation with the client’s vision and targets. The discovery phase provides the artifacts, technical specs, and fuses together all elements of design and development into a consistent process. This means that every team member is in sync with the core aims and every department contributes the pieces that connect perfectly together for a comprehensive solution.
Read on to find out more about the discovery process, its stages, the characters involved, and its deliverables. Learn about how it optimizes software development and helps build projects that deliver instant results.
So what is the discovery phase exactly?
The discovery phase is the first step in software development. This is where the team of developers and project owners sits at a round table discussing implementation details. The client and technical experts align their vision of the end-product and come up with a plan to bring it to life.
Leading representatives from design, development, quality assurance, and management teams work together to collect functional and non-functional requirements, gather essential data, outline the project’s architecture, and choose an appropriate stack of technologies. The management team also comes up with an estimate for the costs and time for development.
It’s important to make sure that all members of the team understand their roles in the project and the tasks to be performed. That’s why the project discovery phase is a good way to establish a foundation for open communication and set up an appropriate feedback loop for the development process.
The value and benefits of the discovery phase
The results of the discovery phase directly contribute to the chances of a project’s success. Its major intent is to make the web product or application correspond to the company’s goals in aspects such as user experience, budget, and time to market.
This stage allows you to reveal the challenges and hidden risks involved with your idea’s implementation. It will also help you discard features that are either unattainable or not worth implementing. By planning the rollout of every product feature, you create the space to easily make adjustments and modifications to the project on-the-go during development.
Discovery brings an additional layer of foresight and expertise to a project. Once our technical experts understand the background of your project, they can propose alternative ideas or better methods to achieve your objectives. A technical expert can advise on better solutions in terms of efficiency, performance, and ease of use, while a business analyst can offer a much cheaper and faster method of implementation.
This stage of development offers obvious advantages, as it allows you to:
- Predict and avoid numerous risks and overcome challenges
- Make design decisions based on gathered data, not just expectations
- Define comprehensive project scope and roadmap
- Minimize the number of necessary changes made during development
- Craft an engaging user-oriented experience and journey
- Ensure a much higher return on investment through accomplished goals
The discovery phase will let you see your project from all angles, not just from the business perspective. The collected information and its analysis will shed more light on the scope and limitations. The information will also help everyone on the team understand the users’ needs and shape the project’s requirements accordingly.
The result is a full blueprint of the solution, with all the user stories, software architecture, design mockups and wireframes, the first prototype, and planned-out iterations for the development stage. The discovery process leaves no stone unturned. It ensures your project starts off with the wind in its sails as it journeys to successful delivery and a fruitful launch to market.
Who takes part in the discovery process?
The discovery should gather all project stakeholders. This includes everyone involved or affected by the project — from the key members of the development team to representatives of the client company, and sometimes even end-users from the target audience. Multiple points of view allow for gathering insights into project feasibility, while also making room for an open discussion about coming up with the best technological solutions to the client’s business needs.
We usually gather the following experts for our discovery sessions:
- Product owner: usually the client or their representative, as they are the most vital part of the discovery team and the source of knowledge about the project’s background and goals.
- Project manager: a communications expert that coordinates the process, connects everybody on the team, and keeps everyone on the same page in terms of finalized requirements, decisions, and updates.
- Business analyst: turns project ideas and business goals into functional and non-functional requirements, and also drafts possible case scenarios, user stories, and relationships between different system components.
- Solution architect: analyzes requirements to come up with the optimal stack of technologies, and works out the architecture and logic of the application, breaking every part of the system into functional elements to be implemented by developers.
- Delivery expert: optimizes the continuous delivery/deployment processes to fit the project’s needs and defines the set of tools and technologies needed to coordinate the development and rollout of new features during an iterative process.
- UX designer: maps out the interactions between the app and its users by drafting UI elements for user journeys that correspond to the product vision and modern UI/UX design standards.
- QA engineer: an indispensable expert, needed for planning the possible test case scenarios and preparing automated testing suites for each application module.
- Representative end-users: having input from potential users is always a plus, and it is also a core necessity when an application is being developed for internal use by the company’s employees.
Each member of the discovery team participates in the discussion of every single requirement. This means that all aspects of implementation and delivery are measured and contemplated. It helps us build a solid system architecture with minimal bug fixes and reruns needed.
Discovery phase stages and activities
Different types of projects often require their own course of action during discovery, including specific steps, activities, and overall approach. Some projects may need a prolonged phase of user behavior analysis to map out the perfect UI/UX design, while others need research into the applicability of a chosen underlying technology, such as blockchain technologies or artificial intelligence.
One key element during this process is constant communication and feedback between the development team and the client. To come up with a workflow that fits the particular case, we like to conduct several preliminary interview sessions.
Initial interview sessions
To elaborate the problems and goals the client pitched to our sales team, we reach out to them to gather basic information and key data. During the interviews, we can address the questions that most typically come up with every project. We can also ask leading questions to shift the client’s focus to relevant details, main goals, expectations, and implementation preferences.
During the series of interviews, we question the client’s representatives and domain experts about the ideas behind their project in order to come up with an initial concept. Before even stepping into the discovery phase, the client should have prepared documentation containing:
- Project’s vision and business plan
- Monetization strategies
- Market study and analysis
- Competitor and user research
- Proposed features that will differentiate the product from its competition
The best input for us would be a project whitepaper describing the value of the developed product to potential users, its market and environment, provided services, and how the company plans to extract revenue from it.
We explore this pool of information during further stages of the project discovery process, refine and expand on it to include more details, and combine it with our technical prowess to map out specific feature implementation. If for some reason the client hasn’t done the research to prepare this information or comes to us with raw ideas that need clarification, we may offer consulting as an additional service.
See how we advise and consult our clients in blockchain development
After we’ve gathered enough knowledge about the project, we move on to the research stage of discovery.
Research and workshops
At this point business analysts, system architects, design experts, and management teams come together to analyze raw data obtained from the client and convert it into logically structured software specifications. Our discovery team studies the business environment, existing infrastructure, and software already in place, and determines which third-party services could be helpful to support the project’s features.
There are several activities that go into this stage of project discovery:
Requirements development
The business analyst designs the functional, non-functional, technical, and usability requirements. They work closely with the UI/UX design company to map out the appropriate user stories and journeys. Every documented feature is also estimated in terms of development time and costs.
Architecture design
The business analyst collaborates with the system architect to choose the suitable stack of technologies and ensure the project’s high performance and scalability. The business analyst also determines any risks that go with a particular choice of technology and includes them in the specification for the client’s reference.
Drafting wireframes
The wireframes are a visualization of business logic described in user stories. It’s a blueprint of the application’s design that shows the transitions between screens based on user interactions. Wireframes do not contain actual visual design ideas, but they show the key elements of the app presented to the user and illustrate the user journeys throughout the application.
Design thinking workshop
After we’ve outlined a unit of the solution’s architecture, we hold a workshop with the client and our discovery team where we go through the details to approve our ideas. Each user story and requirement is reviewed to ensure that it corresponds to the client’s vision and project goals.
Spec finalization and preparing deliverables
Our team finalizes the requirements into detailed technical documentation that includes the wireframes and system architecture with the outlined technology stack. We split the application’s components and its feature set into development stages to create a roadmap for the project. Every stage has a detailed estimate in time and costs for its completion.
How long does it take?
The time period for the discovery phase varies based on the project’s complexity. Usually, it takes from 4 to 8 weeks. However, the time you spend on it depends on what you wish to get as a result.
If it’s a new concept that aims to upend the market, and it hasn’t been researched before, it might take a bit longer. For a small project or one that matches a similar solution already on the market, with just a few tweaks, 1-2 weeks of discovery might prove to be sufficient.
The longest we’ve spent on a project discovery was 6 weeks for a sports fan loyalty platform project. We’ve created detailed specifications, wireframes, design concepts, and we carefully designed the architecture of the solution. Integration with blockchain technology added to the complexity of the project. We divided development into stages and mapped the delivery of every feature based on the client’s priorities.
What are the deliverables?
The result of our discovery sessions is a documented breakdown of all the features as well as the system’s architecture. Requirements are paired with user stories which are, in turn, paired with acceptance criteria. We provide data flow diagrams, wireframes, and design prototypes that visualize all the processes and user interactions with the developed application. Every aspect of the project is clarified and explored in detail.
Here’s a list of deliverables we provide for a typical project:
Vision and scope document
The vision and scope is a generalized description of the anticipated product. It includes the list of features to be introduced in the system, as well as limitations, goals, and success criteria. The document also provides a definition of individual software components that will need to be incorporated.
System architecture
The architecture is a schematic that outlines the dependencies between the main parts of the application and the system’s infrastructure. We usually illustrate it with a diagram and provide a detailed description of tech stack selection, including programming languages, libraries, frameworks, and SDKs to be used to develop the end-product.
User journey map
The map comprises user flow diagrams, depicting the general user journeys, as well as the internal data flows. It covers all possible user interactions with the application and maps them to the corresponding screens of the UI.
UI/UX design concept
The design concept contains both wireframes and an interactive prototype of the designs. Wireframes help visualize the relationships between different parts of the app. The clickable prototype demonstrates the actual user experience to the client and allows them to interact with a preliminary version of the solution.
Integrations documentation
The integrations spec contains a description of API endpoints and mapped out third-party integrations to support different features of the application.
Project backlog
The backlog is a breakdown of the features to be implemented that is structured into tasks for the developers to follow. It’s a document that keeps different teams on the same page and lets them communicate with each other on the status of development.
Project roadmap
The roadmap is a Gantt chart with the plan for delivery of the project components over time. It features a project timeline with milestones and dependencies. The project is broken down into stages and system components to be implemented, such as the front-end and back-end of the application, UI/UX design, testing, and more. We also provide a cost estimate for each implementation stage.
Conclusion
A thorough project discovery phase allows designers and developers to build effective user experiences that deliver on the project goals. It’s not just about generating stacks of documentation and project specs — it’s also about bringing together different points of view, blending expertise from various fields to come up with the best plan to implement the product.
Just as building a house requires a set of blueprints, successful software development depends on the time and effort invested into the discovery phase. It helps clarify the client’s vision for the developers and minimize the amount of risk. It allows the team at PixelPlex to build a solution that matches the client’s expectations.