The Discovery phase in Software Development

15 December, 2020 |

The two main problems that software development projects usually face are delays in delivery dates and exceeding the proposed budget; both of these issues arise when teams fail to adequately calculate the necessary resources. This results not only in a commercial failure but also in a drop in companies’ satisfaction rates.

Therefore, it is vital that companies know how to effectively conduct a digital product discovery before moving forward in laying the foundation for a project. This is why the discovery phase is crucial to mitigate the aforementioned risks, regardless of whether the project is part of a large-scale business system or if it is a turnkey development.

Both outsourcing companies and clients need to give the necessary importance to this stage, as it will improve the quality of the project and the expected final result.

What is the Discovery process?
It is the process of gathering and analyzing information about a project, its target market, audience, among other factors. It is intended to ensure a complete and deep understanding of the goals, scope, and limitations in order to help understand end-users along with their needs and requirements.

Additionally, it defines a set time to collect this information, thus allowing all members of the development team, as well as the client, to meet and create a shared understanding of the project goals. However, this goes beyond a mere kick-off meeting. This collaborative vision is about all teams being able to guide, from their point of view, more values and characteristics to ensure the execution of the project, in turn providing commercial value.

Who is involved in the Discovery phase in Software development?
Ideally, as many team members as possible should take part, from programmers and testers to functional analysts, from a more technical and specialized point of view.
On the other hand, team members from the client must also be part of it, since they have a greater knowledge of both the industry and their own consumers, offering valuable information that can increase user satisfaction rates. A list of teams and representatives involved in a Product Discovery phase would look like this:

  • Product Owner (PO).
  • Project Manager.
  • Business Analyst.
  • Solutions Architect.
  • UX Designer.
  • Programmers.
  • Quality Assurance Testers.
  • Representative End Users.
  • In theory, these should be the members involved in this phase.
    In addition to this, UX (user experience) specialists can be extremely helpful in the Discovery process, as many functional limitations can be informed by user interface (UI) requirements.

    Better integration of the design department with the Discovery processes in Software Development can be achieved through a design thinking workshop, where stakeholders meet to comprehensively discuss the project’s motivations, requirements, and vision.

    Product Discovery Process
    In order to design a Product Discovery process, the initial needs must be known. At least one initial meeting should be held with the development team so that the project can be presented to everyone, and any specific questions about the client and the project may be raised in a collaborative environment.

    Keep in mind that this process can last from a few days to a few weeks, so there is no list of steps to design the ideal process; this makes each application, idea, and team unique, and the process must be able to adapt to their needs at the time.
    However, Huenei IT Services focuses on developing the best products for your company, this is why we’ve decided to share the following steps that could help you create your Software Discovery process:

    1. Discover the purpose of software development
    This first activity focuses on the “why”.
    As we begin the digital product development phase, we ask ourselves what the ultimate goal of the project is. We can’t build a great product if we don’t know why we are building it in the first place. By understanding everyone’s expectations, we discover the motivations and context required to make focused decisions during the project execution.

    2. Get an overview of the business
    The next step is to analyze the business model of the application and understand the company behind it.
    We see this as a critical time to understand how the idea of this application came about, what the company is like, and how this product will help the company grow.

    3. Define the metrics
    The main question in this third step is how to measure the success of the product after development.
    When setting a timeline, the idea is to identify milestones and criteria to measure the product’s success.
    Goal setting methodologies are great options to deepen the discussion.

    4. Set the restrictions
    At this stage, the conversation becomes more realistic.
    Now we all know that resources are not unlimited, and that creates a scenario where each project has its limitations, such as a restricted investment or a close launch date.
    That is why we believe that it is important to know which restrictions are the most important and which allow for more flexibility.

    5. Identify the risks
    Moving on, our goal here is to identify the risks worth worrying about, so that we can focus on those that are not out of our reach.
    Just as important as listing the things that could go wrong with the project is recognizing that we can handle some risks, but not all; what these risks are and which of them could mean a leak point of resources, including time.

    6. Understand the users’ needs
    The questions in this step are related to the end-users of the application: Who are they? By discussing our ideal user and what this individual would be like, we can list how we imagine they would interact with the software.
    This process is a great instance for the team to come up with a user interface (UI) that is suitable for those users.

    7. Define work agreements and processes
    Now is the time to define how the flow of the software development process will work.
    At this stage, the team can agree on a work methodology, schedule checkpoints and other meetings, define responsibilities and work arrangements to make sure everything is clean and ready to go.

    8. Finally, build a story map
    The story mapping technique presented by Jeff Patton is a clear way to see the entire user journey that the application provides.

    In fact, knowing about Discovery in Software Development will allow you to establish a necessary approach for efficient and timely development; being clear about this from the beginning means dealing with the abundant uncertainty at the beginning of any project, that is why communication, research, and analysis are key factors in solidifying the goal and defining the direction of the product development process, as well as discovering its obstacles and risks.

    Conclusion
    A properly planned and implemented Discovery is vital not only for the client but also for the development company in charge of the work. This not only allows teams to meet the set times and resources but also identify end-users’ needs and build a product/service that best meets their demands.
    Please visit our Software Development expertise section for more information about our development practices.