IT Project Discovery Phase: What's That, and What Does It Do?
March 21, 2023 15 min read
Business Development Manager
Projects in various fields, in an amicable way, need the discovery phase. In our article, we will talk about IT projects and features of research work in this area, and explore when your project requires a Discovery Phase.
- The Purposes of the Discovery Phase and Its Role in the Project Development
- What will you get upon the Discovery Phase completion?
- The Discovery phase: To Be Or Not To Be
- How can Discovery Phase benefit your product development process and business?
- The Discovery Phase in the Software and Machine Learning Projects
- The Discovery Phase in Firmware and Hardware Development
- The Discovery Phase in IoT projects development
- How does the Integra team conduct the Discovery Phase?
The Purposes of the Discovery Phase and Its Role in the Project Development
Every project is unique and requires a special approach to its development. How to define and find the best one for creating your product? What approach will suit your idea implementation perfectly? The discovery phase is conducted to answer these crucial questions.
This is the initial stage of project development. The project's success largely depends on the conclusions obtained in this phase.
At this stage, developers evaluate their capabilities, needs, and the necessary efforts to achieve the goal and gather essential requirements for the project.
The goal is to have a product that satisfies the end-users' wishes.
The opening stage is about drawing up a plan for spending time and money. The outsourcing company adheres to this plan throughout the project, making its work transparent and understandable to the customer.
The discovery phase is individual for every project. However, there are some common factors it depends on:
- Company's involvement in a project. The discovery phase duration and the things to be analyzed depend on which development stage the team started conducting the discovery phase. For example, it can be conducted as an initial step of your idea evaluation, as a separate stage for analyzing a specific part of your project, or it can be a remake of someone else’s work.
- IT services featured. The level of the discovery phase significance varies from one service to another. The matter is that this phase results in defining critical things for your project. For example, you can find out whether this or that change or addition can influence the development of software, hardware, Machine Learning, IoT solutions development, or firmware implementation. Each of these IT services has its own peculiarities and level of flexibility.
Hardware, IoT, embedded software, and firmware solutions are less flexible than software or machine learning ones. This means that any changes can turn out to be difficult and expensive to implement.
- Budget. This is one of the greatest concerns about the discovery phase. It is a separate step in your product development, and it requires additional expenses. However, if your budget is limited, and you would like to save it, here comes the project discovery phase for your help.
However, the initial stages of various projects have similar steps, which are the basis for subsequent design and development:
- to clarify the customer's vision of the product,
- to align the customer's wishes with the needs of the end users,
- to conduct initial technical development expertise to ensure development team’s technical and other product development capabilities.
This process can take a fair amount of time and effort and cost a pretty penny, but it is essential for the success of further actions and the whole project.
What will you get upon the Discovery Phase completion?
The result of this step usually includes a Discovery Phase Report with a description of one or several possible approaches, a system mock-up, proof of Concept, and technical documentation.
The main thing is that a discovery phase report contains the key fruits of research about the project and recommendations on how to create particular parts of your solution.
In addition, by having a discovery phase report, the customer is confident in receiving the product with the required characteristics within the allotted time and budget.
The Discovery phase: To Be Or Not To Be
The discovery phase is one of the most critical steps in product development, however, it is often the least clear to the customer.
Customers typically consider this step, at best, a necessary cost item. In the worst case, they see this phase as a waste of money and try to skip it.
Meanwhile, this phase is intended to discover all the traps and pitfalls of the project, minimize risks, save time and budget, and find the most suitable approach for solution development.
Ignoring a discovery phase can result in unexpected issues in the way of building your solution:
- continuous expansion of the development process;
- increasing costs;
- blurred deadlines and delayed launches;
- failures in achieving the desired results.
How can Discovery Phase benefit your product development process and business?
The Discovery Phase is a good start for building your product and optimizing business processes connected with it. The results of this stage will lead to a well-planned journey of your idea implementation and will allow you to save budget and time.
Let’s see what benefits you can get upon the discovery phase completion:
- a properly organized and transparent process of your product development;
- your development team is aware of all the challenges that they can face and knows how to solve them successfully;
- your budget targeted at your product development is safe, as risk minimization helps to prevent extra expenses and shorten the time period between your product development and its launching;
- the alternative ways of creating your product are determined;
- a mock-up or a Proof of Concept that allows for visualizing your future product. It will help you to define possible changes and understand whether your product idea is aligned with your target audience’s interests and expectations.
In a nutshell, the discovery phase builds a bridge between your idea and its implementation. Let’s explore what makes this bridge solid and reliable for various types of projects.
The Discovery Phase in the Software and Machine Learning Projects
The peculiarities of the discovery phase differ from one project type to another. For instance, the software discovery and hardware discovery stages won’t be the same. They can vary in duration, results, discovered aspects, the team members involved, equipment used, and cost to name a few.
Software discovery phase
In this section, we are going to talk about the discovery phase of software and Machine Learning projects.
Firstly, it is significant to collect all the necessary business requirements. It allows the software developers to understand the general idea of a software product. Here, the customer and technical team should focus on the details that are essential for implementing the software being considered. These details are the following:
- The users of the software;
- The usage of the software after finishing the development;
- The data that the software will process;
- The output that the software should give after processing;
- The User Story and Use Case.
These points are the basis for the overall pattern that the software developers will use. The next step is analyzing the collected information and checking it for validity.
This process leads to the creation of a requirement specification document, which describes the nature of the software product and the functionality necessary for meeting the stakeholders’ demands.
In so doing, upon the completion of the software discovery phase, you will get the following deliverables:
- The mock-up or Proof of Concept of the most suitable UX design for your software solution;
- The mock-up or Proof of Concept of the whole software solution or its part studied in the discovery phase;
- The prepared requirement specification document;
- The lists of Use Cases and User Story descriptions.
For example, we conducted the discovery phase for the project about developing LED Matrix displays software for monitoring situations on freeways and visualizing information about weather conditions, traffic jams, and road signs for drivers.
Our customer decided to enable users to monitor this information remotely and asked us to find out whether it is better to build a mobile app or a web app for it.
We analyzed the sensors and other technologies used for the LED displays and their compatibility with various wireless protocols, compared the costs for building mobile and web apps, and analyzed what solution will be more comfortable for users.
After the research, our Integra team came to the conclusion that a web application is the best choice for implementing this feature.
A significant point here is that this LED displays should work with UTMC protocol for connecting to the Intelligent Transportation System. Building a web portal is the most efficient way to implement it.
The reason is that it is a more cost-efficient solution and it helps to achieve real-time visualization of data collected from the LED displays and their sensors.
Other weighty aspects in the software development are Use Cases and User Story, and our engineering team treats them seriously.
Thus, we gather our customer’s requirements to the UI/UX design, features, functionalities of the future software. The next step we take is describing the algorithm of using the key functions by users or any other roles. For instance, we conducted Discovery Phase for the software part of the project about developing a Wi-Fi-enabled controller for hot tubs.
During the Discovery Phase, we worked out a UI/UX design for a iOS and Android mobile application that allows for controlling hot tubs’ sensors and pumps remotely.
This mobile app is connected with a number of sensors and hot tub’s parts and our customer wanted the application to be intuitive and user-friendly. So, we defined the most comfortable process of using the application and described the comfortable process of the user experience.
Machine Learning discovery stage
In building Machine Learning and AI-driven solutions, identifying the right dataset is of great significance. Another crucial aspect is clearly stating the problem that your Machine Learning solution should solve.
During the discovery stage of a Machine Learning project, we should find out the following critical things:
- The main objective of the discovery phase;
- The target features: algorithm accuracy and operation speed, its integration and operation with other software;
- The input data and its availability;
- The dataset availability;
- The problem that the future product can solve;
- The possible improvement of the Machine Learning solution;
These points are formulated specifically for Machine Learning projects. However, we should also add the questions from the software discovery phase as well.Our Integra team developed a camera system based on Computer Vision algorithms for detecting falls of the elderly. This is a complex solution, and we offered our client to start with the discovery phase, as it was necessary to determine the project feasibility.
During the discovery phase, we selected the right amount of depth camera sensors and defined what type of data is necessary for training a Machine Learning model for tracking human movements and recognizing falls.
One of the main results of this Discovery Phase is the feasibility of communication system development for this solution. We defined that it is possible to implement a computational unit for gathering the data from all the cameras and/ in case of a fall, sending a signal to caregivers. Thus, upon the Discovery Phase completion, we created a Proof of Concept of a complete solution for taking care of elder people.
The Discovery Phase in Firmware and Hardware Development
It is worth mentioning that firmware and hardware development is not as flexible as software implementation, and making changes in the hardware or firmware solutions can lead to complete hardware redesign. So, it will cost you time and money.
This peculiarity amplifies the value of the discovery phase for the projects of devices and embedded systems development, and low-level programming.
Before proceeding to the development itself, it is significant to define the following:
- What design restrictions does your solution have?
- What problems does your hardware or firmware product solve?
- What market are you going to target?
- Is it possible to create your hardware or firmware product by using the existing technologies?
- What technologies and approaches are the most suitable for your product development?
- What changes can influence further development of your hardware or firmware product?
- What features can improve the performance of your solution?
- What part of your hardware or firmware solution can turn out to be the most difficult?
- What software should your device or system communicate with?
The hardware and firmware discovery phase is intended to detect these key constraints of your hardware solution development and firmware implementation.
Let’s study one of our previous works that started with the Discovery Phase.Our team was requested to conduct a Discovery Phase and find out the possible solutions for developing custom capacitive keyboard electronics and define the most suitable components for building this product.
The customer’s requirements for the keyboard included capacitive sensing, detection of the spring collapses above the electrode pads on the PCB, simultaneous detection of all the pressed keys, and compatibility with the QMK keyboard.
Our Integra team studied various possible approaches for measuring capacity and defined that it required the application of a high-frequency signal to columns one by one, amplification of each row signal, and amplitude demodulation and peak detection.
We found two ways how to do it: 1) using discrete components and 2) using capacitive sensor IC.
We simulated the first solution and suggested finding a balance between the number of channels and the keys polling speed. It turned out to be the best approach, as it fulfilled all the customer’s requirements for the capacitive keyboard product.
The second solution required to use 2 sensor ICs for creating this capacitive keyboard. However, upon the completion of our research work, we understood that using the sensor ICs didn’t provide accurate sensing.
As a result, we provided the customer with the detailed report that describes these two solutions. The customer decided to use the first solution with the discrete components as it was cost-efficient and allowed them to achieve all the goals successfully.
The Discovery Phase in IoT projects development
As a rule, IoT solutions development combines building software, firmware, and hardware parts, that is 3 in 1. It means that all these parts are interconnected with each other, and making changes in one of them will influence the rest.
An IoT system is a complex of IoT devices, sensors, databases, software applications, web services, and other network items. Secure and stable communication among them is a vital thing for an IoT solution. So, every component of an IoT system should be efficient and you should choose high-quality ones.
Making updates, adding or removing features, and replacing a particular component cause difficulties and may lead to a complete redesign of the whole IoT system. As a consequence, it can make you spend more time, budget, and other resources. However, you can avoid these things by starting your IoT project with a Discovery Phase. It will help you define the suitable components, features, and possible challenges early in the game.
Upon the completion of the IoT project Discovery Phase, you will get a report with the following deliverables:
- A detailed description of the purpose, behavior, and requirements of the IoT system.
- The list of the physical and virtual units, devices, sensors, and services necessary for your IoT solution development.
- The specification of the information in your IoT system.
- The list with the description of suitable communication and data storage options.
- A mock-up or proof of Concept of your entire IoT solution or the part that is studied in the Discovery Phase.
- Possible solutions and approaches for building your IoT system.
For instance, our Integra team conducted a Discovery Phase for an IoT system for monitoring and controlling recreational vehicle equipment remotely.
The customer asked us to select the right components (MCU and sensors) for a BLE gateway device, define compatible remote services for data storage and processing, and find suitable options for power supply.
We analyzed our customer’s requirements for this monitoring IoT system and defined cost-efficient components with the desired functionality. As for the software part of the IoT system, we worked out a mockup of an IoT software solution with mobile and web applications, cloud services, and a dashboard.
The results of this Discovery Phase helped our customers choose the right approach for their project development. This IoT product is now close to launching.
How does the Integra team conduct the Discovery Phase?
Our Integra Sources team uses agile methods in conducting project discovery phase. It allows us to look at your solution from all angles and find out the most efficient approach for its development.
Our agile discovery phase template includes several stages:
- gathering a customer’s requirements for the functionality, cost, features, and other characteristics of the future product or its part;
- involving developers with the required technology stack in the discovery phase team;
- doing research for answering the customer’s questions and defining approaches for building a solution or its part;
- building a mockup or a Proof-of-Concept;
- creating a discovery phase report with the detailed description of its results and introducing them to a customer;
- developing a roadmap with timelines, budget, milestones;
- agreeing upon next steps.
Depending on the project complexity, the discovery phase can require from 40 to 200 man-hours.Our discovery phase team usually includes a project manager, several developers, a tech lead, and customer’s team. However, if we should examine a complex solution or an innovative product, we involve more engineers in the discovery phase.
Our team has extensive experience in researching and developing software, Machine Learning, firmware, hardware, and IoT projects and leading them from the very start to complete functional products. If you have an idea to check for feasibility, feel free to contact us.
Developing a new product or implementing a new feature can turn out to be a challenging journey. However, if this journey is well-planned, it will bring a smooth and transparent development process to you and your technical team.
The main purpose of the discovery phase is to take care of the future of your idea implementation and save you from possible risks.
Share this article