BairesDev
  1. Blog
  2. Software Development
  3. Discovery Phase: The Secret to Successful Software Projects
Software Development

Discovery Phase: The Secret to Successful Software Projects

The discovery phase is paramount in achieving a software development project’s goals. Let’s dive into what you should be on the lookout for.

Guillermo Carreras

By Guillermo Carreras

As Head of Agile and Digital Transformation, Guillermo Carreras implements BairesDev's campaigns while focusing on Agile development and digital transformation solutions.

6 min read

discovery-phase

Many factors determine the success of software development projects. The budget, the project complexity, the technologies involved, and even the skills of the development team members all influence how successful your project will be. However, one commonly unrecognized key to success is a good discovery phase.

The discovery phase is when the team researches, collects, and analyzes information to plan a software development life cycle (SDLC). In other words, it means analyzing intel to determine the correct strategy to follow. At this stage, you should verify that the product concept is viable, feasible, and usable.

During the discovery phase, the goals and needs of the project are evaluated. The plan to reach the goals will be established, and the potential hurdles and risks will be identified.

The discovery phase will align our team with shared success. This phase aims to address the following goals:

  1. Construct a risk matrix with a mitigation plan for each goal.
  2. Analyze, test, and document the current state of the applications.
  3. Propose improvement over the current tech stack and platforms.
  4. Define a reliable incident management plan.
  5. Accelerate the deployment process to scale up the product team.
  6. Implement IT governance on all the goals mentioned above.
  7. Define and agree upon success metrics.

 


In the discovery phase, BairesDev and our client, Associated Press, identified the formats and features that media outlets currently required, the current state of their Classic ASP platform, and blue sky solutions for the future. With every need identified, the team mapped out the technical solutions needed to give the Associated Press, and its customers a platform that was flexible and scalable.


 

There is no fixed duration of this process. After all, there are factors to be considered, like the complexity and goals of the project. Starting a project from scratch with an outsourcing company is different from requiring only staff augmentation services to increase in-house capabilities or taking an existing project over from a previous vendor.

Once all the due diligence is done, which includes analyzing all the existing documentation, strategizing, and getting the game plan written, it is time to run with the ball.

This phase is divided into the following smaller sub-phases.

Specify Definitions and Requirements

This phase consists of reviewing all the documentation gathered during the pre-discovery phase to obtain critical decision-making criteria from stakeholders. Include feature requirements, user scenarios, success criteria, goals, etc.

Here, we also have the environment setup, which includes granting access, creating a dev environment, and testing local deployment. The archaeological review also happens here, which means reviewing the current state of the infrastructure, CI/CD pipeline, workflow, QA, systems, and data.

The archaeology phase, in simple terms, is an investigation of the current state of the software, infrastructure, governance, processes, and documentation, among other factors.

software-archaeology

Outline Solution Scenarios

During this stage of the discovery process, we want to outline potential solutions for each goal/feature set based on the definitions and requirements sub-phase, especially during the archeological review.

Once we have outlined the goals, we can then proceed with the analysis for the prioritization and solution selection, establishing what goals should be attained first and how to complete them.

Backlog Definition and Prioritization

Here, the team fills the backlog with several weeks of activities. The number of weeks varies depending on the project.

Once the backlog has been filled and we’ve gathered all the findings from the archeological review, we can begin with the initial prioritization of the backlog to determine critical milestones and timelines.

product-backlog

Build and Test New CI/CD Pipeline

Building and testing continuous integration/continuous delivery pipelines to deploy the solution is essential.

Justice Erolin, Chief Technology Officer at BairesDev, says, “You want to be able to test as you develop. Gone are the days of testing at the very end of what we call waterfall, where you design, develop, and then test. So, start your testing process as early as possible. That way, you can automate many testing procedures but catch mistakes faster. And the sooner you catch them, the less likely it is to have a ripple effect across the software.”

Review and Approve Documentation

This is the last part of the discovery phase. Here, the client and the vendor review the minimum viable product solution scenarios for final approval and kickoff.

When Taking Over From a Previous Vendor

As mentioned before, there could be instances in which an outsourcing company is taking over the project from a previous vendor. If that is the case, there is an extra step to take before embarking on the discovery phase. It is called the pre-discovery phase.

The most important thing is to have the keys and access passwords to all of your development repositories. “If you don’t have the code, you need to rebuild that,” says Guillermo Carreras, Head of Agile & Digital Transformation at BairesDev. “That has happened before. We needed to reverse-engineer to rebuild the entire code.”

If you decide to change your outsourcing vendor, you must take many considerations. We have written at length about how to choose a software outsourcing vendor. What follows will be a kickoff call or meeting where the subsequent phases will be clearly mapped out.

 


If you’d like to delve deeper into best practices for initiating your project, contact us for a free consultation. 


 

Once you have decided and negotiated with a different company, the first step is to embark on a pre-discovery phase, where you must provide the following:

  • Access to code repositories (credentials active)
  • Access to management tools (wiki, ticketing system)
  • Available documentation from internal team members and current provider
  • Definition of tech stacks (current use and future state, if they differ)
  • Historical incident data
  • Architecture diagram
  • Testing approach
  • Access to the cloud solution console of a secure environment (credentials active as the viewer)
  • Access to the web and both mobile applications (credentials active)

After this phase is completed, you can start the discovery phase.

Conclusion

The discovery phase is essential for any successful software development project. Regardless of the project’s complexity, whether it is a relatively routine project involving new or cutting-edge technologies, done from scratch, or running with the ball of what someone else did, a discovery phase is an essential part of any SDLC.

Because of that, finding a reliable partner to handle the discovery process is a must to achieve all of the project’s goals. At BairesDev, we have over 25 million software development hours. We can take care of all your software development needs.

 

Guillermo Carreras

By Guillermo Carreras

Guillermo Carreras focuses on digital transformation solutions and Agile development work as well as the management of BairesDev's successful campaigns. As Head of Agile and Digital Transformation, he works with PMO, Sales, and Tech teams to provide end-to-end company alignment.

Stay up to dateBusiness, technology, and innovation insights.Written by experts. Delivered weekly.

Related articles

Contact BairesDev
By continuing to use this site, you agree to our cookie policy and privacy policy.