Software development has never been easy. It’s not just about coding, it’s also about the vision of the project, the goals, exceptions and risks, the needs of the end users, and, of course, the budget. No one will ever be able to accurately estimate the development cost or develop a maintainable and scalable project from a feature list or just a design.
The Discovery Phase is the basis for a successful product launch, as it sets the context for future design and development decisions. This stage is intended to clarify and identify all the requirements for the product, as well as to prepare the necessary documentation, according to which the entire product team can be on the same page. This is extremely important, as software development is not cheap, and when it comes to code refactoring, the costs rise dramatically.
What Does the Discovery Phase Involve?
The discovery phase is a group of activities that help define the right business model and create documentation that all project participants understand.
- Market development and trends
- Domain investigation
- Cases, strategies, and best practices of similar products
- Strengths and weaknesses of our competitors
- Our present and future competitive advantage
Target audience research:
- Demography: age, geography, etc.
- Habits and online behavior
- Needs and expectations
- What our clients see as our strengths and weaknesses
- Potential bottlenecks your clients might face
- Deadline delays
- Budget overruns
- Technological limitations
- Legal restrictions
- Other risks
Business goal definition:
- Describing business goal using SMART methodology (an acronym that stands for Specific, Measurable, Achievable, Realistic, and Timely)
Software Requirements Specification (SRS) development:
- Business requirements
- Functional requirements
- Non-functional requirements
- User requirements
- Requirements for UI
- Business process modelling (BPMN, Flow-chart)
- UML diagrams
- Role-based model
Definition of technology stack and management methodology:
- Infrastructure, architecture, and database
- Backend and frontend
- 3rd party libraries
- Agile or Waterfall
- Development budget expectation
- Support budget expectation
- Definition of MVP that meets the budget
With a well-executed Discovery Phase, you should be able to easily fill out a one-page business plan template called the Lean Canvas.
Why Do You Need a Discovery Phase?
- 37% of projects fail due to the lack of defined project objectives and milestones. (Source: PMI)
- 47% of projects fail to meet their goals due to poor management of requirements. (Source: PMI)
- “Ran out of cash/fail to raise new capital” is the top reason startups fail. (Source: CB Insights)
- Large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted (Source: McKinsey)
The Discovery Phase will help you understand if the product is worth developing as you conceived it, or if something needs to be changed. You’ll also be able to calculate development and support costs so that you don’t end up in the CB Insights statistics.
Kernelics Approach to the Discovery Phase
The discovery phase takes an average of 1–2 months and involves various specialists to consider all aspects of development.
Who Works on the Discovery Phase?
- The Business Analyst defines the business domain, documents its processes, outlines development requirements, identifies risks, etc.
- The Solution Architect selects the appropriate technology stack.
- The Project Manager manages the workflow between the teams, selects the methodology, and builds the team composition.
- Software Engineers, along with the Lead QA Engineer, estimate the time and cost of development and testing.
- UI Designer (optional) creates user interface.
Discovery Phase Roadmap
- Intro workshop to obtain information about the business domain, competitors, goals, and project overview.
- Market, competitor and target audience research.
- Series of Q&A interviews and brainstorming workshops to identify end-user needs and high-level requirements.
- Structuring high-level requirements and creating a WBS (Work Breakdown Structure).
- Series of Q&A interviews and brainstorming workshops to identify detailed requirements.
- Risk research.
- Structuring and prioritizing detailed requirements and risks. Creating SRS (software requirements specification).
- Prototyping or designing
- Definition of technology stack
- Definition of management methodology and team composition
- Creation of development roadmap
- Cost and time estimation
- Defining an MVP (Minimum Viable Product) that fits time and budget
The discovery phase is a vital stage in the product development journey. It should not be neglected, because you may encounter huge problems in the process of direct development. As already mentioned, software development is not cheap, and code refactoring always takes more time and budget than writing code from scratch.
Even if you didn’t do the discovery phase in the beginning, you can do it during the development process. Project development is a product of teamwork, it would be nice if you and all team members had an absolutely clear vision of the project to provide scalable and maintainable solutions, wouldn’t it?
Nikita Tretyakov, Co-Founder at Kernelics, co-authored with Kseniya Grebennikova, Chief Consulting Officer at Kernelics.