- What is a Discovery Phase in Software Development?
- When do you need Discovery?
- Note on the goal of Product Discovery
- How to conduct discovery for your business?
- The process of Discovery at software development companies
- Validating problems
- Research end-users and identify challenges
- Setting functional requirements
- Non-functional requirements
- Technical vision
- Basic Wireframes
- Creating Solution Vision and Scope Document
- What tools do companies use for analysis of software development project?
- Types of requirements for software projects. How are requirements set in software development projects?
- Product owners receive a consistent picture of the software project plan
- Company’s experience and discovery phase cases
- Summarizing benefits of Discovery Phase in software projects
Stakeholders face many questions when building an app for the business. Software development companies offer Discovery phase service, which forces them to realize the problem first, empathize with people who lack the solution, and then build it with the right means. If to skip the phase, the software development project has more chances to fall through due to not found users’ needs, missed requirements, and finally a wrong solution.
What is a Discovery Phase in Software Development?
Discovery phase for software development is often underestimated. Clients may think “I know everything inside out about my project, just let’s jump to implementation now”. However, many insufficiencies, badly written requirements or not relevant for end-users features can be improved and identified during this phase. Think of the cost of mistakes. They can be eliminated during discovery, for which you pay a truly affordable price, or you can pay users’ trust, income and time when it is an already built solution.
Discovery is applied not to misinterpret your vision over a product (which can be restricted to your preferences and experience) with the vision of your end-users, your target audience. This is why the idea of product discovery appeared as a call to go out of your offices and talk with customers, gathering their pain-point in real life. So, the value of the discovery phase of a software project is to avoid the risk of building the wrong app. Wrong is the one that is useless for end-users.
When do you need Discovery?
Hardly it is mere guessing whether you need discovery or not. It is firstly the experience in software development that from the first talk with a client can give answer to the question – does this idea need discovery? Raw projects, the ones with constantly changing requirements due to trends or other conditions, startups are especially recommended to have an expert view over the project idea. If you have ever thought about the next questions, and doubts arose, then it is almost a verified need for discovery service:
- How not to miss any requirements for my system?
- Do I properly set requirements for the system?
- How will my clients use the application in a particular situation when…?
- What trends could differentiate my app from other apps?
- How many screens would be optimal to have?
- How much does it cost to make such an application?
- What improvements can be made, but how much will it increase development costs?
- Where can I get consultation on my software product?
If you’ve not consulted any business analysts, or software companies, professionals who could apply tools of analytics to learn your customers in a technically right and advantageous way, if these questions resonate for you and you have other specific ones concerning your app, than let’s go deeper into how discovery is conducted and what it will bring to you.
Note on the goal of Product Discovery
The goal of the discovery phase in software development is to eliminate risks of building app users won’t need, not to find out the product requirements.
Focus on problem validation, not solution building
Product Discovery Tips, Roman Pichler
This is what discovery phase in a web development really is by the author of “How to Lead in Product Management”, “Strategize” and “Agile Product Management with Scrum”.
It does not say that requirements are not important. It means requirements go after you have validated the problem knowing what product you are building and what the target audience is. Your product features, design, trends, values you input should resonate with needs and values of target audience. UX, user stories, choosing tech stack, drawing architecture should be done after your idea is assessed. Understand firstly what problem you solve with your app. Then, you can smoothly shift to the actual features of the solution and how users would interact with the system.
Your product discovery work should focus on nailing the value proposition, target group, business goals, business model, and stand-out features of the product — not on writing user stories, designing the user interface, or building the actual solution. Your goal should be to mitigate the risk of building a product nobody wants and needs, not to figure out the product details.
How to conduct discovery for your business?
Turn to a software provider. When you address a software development company, do not expect they will start the implementation the next day. They will look at your requirements or documentation if you have any. You can present an already compiled project plan ready for implementation. However, if your requirements are vague and you dimly understand what improvements you could drive, the team would like to get acquainted with you closer. They will challenge your vision and set a variety of questions during discovery meet-ups.
Conduct enough research yourself. Talk to users, send surveys to people who you think are your target audience, and will benefit from the solution the most. Be ready that doing it yourself can take pretty much time. You should have a fine sense of what to ask, have tools to reach your customers, learn a lot about market trends. Testing your product strategy with observations, interviews, and prototypes. Namely, there are three key elements in product strategy you should pay attention to:
- Market and Needs
- Business Goals
- Key Features
The process of Discovery at software development companies
People involved in delivery are usually involved in the discovery phase to avoid loss of knowledge. In a team, there will be UX designers, QA engineers, technical architects, senior engineers, business analysts, and lead software developers. Usually, the discovery phase in web development is based on meetings with a client for one-two weeks. However, depending on the size of the project discovery can take more than four weeks. The following are the steps needed to take during the discovery phase.
One of the focuses of the discovery phase process is set, refining, and analyzing the right requirements to deliver the system with 100% effective performance and high-quality functionality. In the beginning, the product owner explains how the solution should work, how and when users will use it, whether it will be a web and mobile or responsive app, what key features should be there. The client presents the company with the first portion of the necessary information.
Research end-users and identify challenges
Here the team nails down real end-users ’ problems, learns project stakeholders, sets objectives, and learning opportunities. Experts use different methods like swot analysis, business cases, benchmarking and market analysis, canvas. Many teams use root-cause analysis techniques like 5 WHY or fishbone diagram. User stories are great to describe product functionality, how users reach the product, where they find it, and how they use it. Each user story is a bridge between business and solution requirements. The base of a user story is to:
- Define end-users
- Specify their needs
- Explain the benefits
- Add acceptance criteria
Acceptance criteria is a mandatory part in drawing project requirements. AC translates user needs and client’s non-specific wishes over what the app should do into clear, technically right, understandable by engineers requirements: As a <user role> , I want <goal>, so that <benefit>.
Use case technique is also used as a part of user research, but use cases are more specific as they show how users interact with the system when it is already at his disposal and what way users choose to attain this or that goal. Use cases work well when you want to have a detailed view over usage of the app and if requirements need better investigation to make the app as much convenient for end-users as possible. This is how Roman Pichler explains on user research methods:
You can also use stories to capture non-functional aspects of a product, such as performance, robustness, and interoperability. But when it comes to the user interface and user interaction, user stories are less suitable. Sketches and mock-ups are better at describing the UI design. And scenarios, workflow diagrams, storyboards, and story maps are better suited to capture user interactions that comprise several steps
Setting functional requirements
The team creates and approves the solution’s functional decomposition to cover key business processes in the most efficient way. Functional requirements depend on the final vision of the expected product. By showing various models, functional Decomposition, Key Business Processes, and Sequence Diagrams it is possible to visualize the future result.
Non-functional requirements describe the characteristics of the system or in other words quality attributes. System’s important non-functional requirements may include few categories: installability, performance, interoperability, usability, scalability, security, and more.
At this stage, the discovery team will suggest improvements or add some features if necessary. Then technical lead will define the best tech stack for desired functionality. Example of how technology stack may look like:
- Programming language – Python/Java/ HTML / etc.
- Web framework – Django/ Ruby on Rails/.NET Core/ etc.
- React/ Flutter/ etc.
- AWS S3/ CloudFront/ etc.
Thus, both parties can proceed to setting priorities for tasks and developing a project scope. Every change in the solution is discussed with a customer to ensure everybody is on the same page. That’s why there is a justified necessity for customers to be involved in the discovery of their app. Clients should understand that the data they provide should be consistent and clear. It makes no good to keep silent during discussions thinking the team will certainly understand what I mean. Be concise in your demands and open with your questions. At this stage, the team and customers work on the project roadmap, which is a compiled document of the project strategic plan: objectives, milestones, deliverables, resources, and timeframes.
Visualization and prototyping of the future project are essential. Wireframe is a layout to show the main functionality on a page. It takes into account user needs and user journeys. At this stage, UI/UX Design team works on product usability, the best option for navigation, and innovative design. Designers are focused on UI/UX design for mobile and web applications. Their usage of different design processes and methods such as User Research, Information Architecture, Workflows, Low/High fidelity wireframes, and prototypes makes a discovery phase successful.
Creating Solution Vision and Scope Document
The final steps of the discovery stage are filling the road map with estimations, technical specifications, and design sketches. The following documents are included in the Solution Vision and Scope Document:
- Business requirements
- Analysis of business background, goals, and risks
- Solution scope
- Solution strategy diagram
- Functional & Non-functional requirements
- Specification of web application features and how the system works
- Technical vision and architecture
- Applied technologies and effective technological solution
- Basic UX design
What tools do companies use for analysis of software development project?
Business analysts apply various approaches and use various handful tools to evaluate the data. Experts’ use the following tools and methodologies for product discovery which is partly a business analysis of the future software:
- Roles & Permissions Matrix, RACI Matrix, Personas for Roles evaluation;
- Scope Modeling and Root Cause Analysis;
- Use Cases (how users interact with the developed software), User Stories (how the functionality works to satisfy the end-user);
- Functional Decomposition and Prototyping for System Capabilities;
- Data Dictionary, Data Flow Diagrams for gathering information and data structuring;
- Interface Analysis (how software components interact to make interface and system 100% effective);
- Feasibility Analysis (how practical the solution is);
- SWOT Analysis.
The RACI matrix is widely used is software development. It is a responsibility allocation map for key activities and decisions which helps to delegate tasks effectively and clearly direct each team member into his or her role in the project.
Types of requirements for software projects. How are requirements set in software development projects?
Modeling of requirements during discovery phase of a software development project can include texting, diagrams, descriptions, matrix, and other scope modeling methods for systematizing information of:
- Functional/Non functional – subtypes of solution requirements
- Stakeholder requirements
- Business requirements
Business requirements define goals, objectives, and outcomes that are to be achieved for an enterprise or organization in a whole. This can be measured with the help of the SMART system.
Stakeholder analysis describes specific needs of a stakeholder or group of stakeholders, how they will accord with the solution.
Solution requirements include functional requirements which describe the functionality, workflow, performance and logic of the system operations. Non-functional requirements describe “Quality Attributes” of the system and conditions under which the system stays efficient, fast, secure etc.
Transition requirements describe the capabilities of the solution needed during transforming the current state of the product to a new one. Data conversion, business continuity can relate to this category of requirements.
Product owners receive a consistent picture of the software project plan
Software development discovery phase assures high market demand of the product. It guides the team to successful creation of UI/UX, system functionality, architecture and more. Mobile, cloud, progressive web applications thrive tremendously in the Apple Store and Google Play because their product owners have done a huge work on identifying problem area.
At the end of Discovery stakeholders understand the needs of end users, receive documents with improved requirements, estimation of time and money to be invested in the project development. Matrices, data analytics tools, prototyping, scope modeling and other techniques helps companies present the product owner with the following deliverables of Discovery process:
- Assessed and approved project idea;
- Clearly identified pain-points of end-users and known risks;
- Clarified, negotiated and validated functional, nonfunctional and software requirement;
- Estimated costs and time frames of the project implementation;
- Compiled Documentation highlighting key statements and requirements (Solution Scope, Vision Scope, Software Requirements Specification, Wireframes, Metrics, Business requirement document).
Company’s experience and discovery phase cases
The key to get a better app, higher profit and happy users is to plan and analyze the idea first. Discovery phase at Inoxoft is based on properly organized management, the process of challenging clients’ minds by setting the questions they’ve never heard, and the answers to which reveal essentials about the future product. Also, it’s about challenging the technical team by making them find solutions for meeting clients’ requirements and end-user needs.
Our client, the Netherlands-based company that specializes in providing HR services for enterprises, provided Inoxoft with a detailed description of his idea. The business need was to provide enterprises with a web application in which HR experts could manage the system of questionnaires and measure results. After carrying out the discovery phase of web development Inoxoft’s team delivered the SaaS solution that consists of a web application for specialists to manage and provide their HR services. Here, HR services can be managed in form of custom questionnaires, talent analysis, and individual feedback. And, also, a cross-platform mobile app for employees who connect the system, respond to the questions, and get feedback on their results from HR specialists.
To ensure successful fulfillment of client’s expectations by the company, we developed three Discovery Phase Packages: Prime, Standard, and Progressive which offer from 2 to 6 weeks of research and analysis. Afterward, the mobile app’s or website development discovery phase deliverables will include: Business Requirements, Business Background, Business Goals, Business Risks, Functional Requirements (functional decomposition, diagrams for representing the functions of the expected solution), Non-functional requirements, Technical vision (per case: Cloud architecture vision, and High-Level Design, Technology stack, ERD, Technical Risks, Tech stack trade-offs), UX design (low fidelity wireframes, which reflect main screens, and user flows)
Summarizing benefits of Discovery Phase in software projects
We have experience in conducting a discovery phase of website development and mobile app development. The company assists product owners in making better decisions. The process is critically helpful for product owners because it:
- makes the collaboration with a dedicated team of developers long-term and trusting;
- creates a consistent picture of a software solution;
- offers proficient support of an expert team in idea evaluation and improvement;
- provides all clarified requirements and ensures the relevance of solution for its end-users’;
- ensures technically successful decisions and compiled matrices for measuring business value;
- makes the software solution elegant, compatible with business needs and worthy of investments for the specific field.
So, does Discovery is mapping a route towards successful software products? Yes, it does. More than both parties win – customer gets a market-ready, fully-functional application, while the team keeps motivated and interested knowing they are building the product users will love.