Discovery Phase of a Software Development Project: What It Is and Why You Need It
Before you lay the foundation and start construction on a house, you need to have a detailed plan. This principle also applies to developing a mobile application — or developing any software, for that matter. In this article, I’ll talk about how we plan mobile app projects at Mobindustry and how to manage a discovery phase.
Main stages of mobile app development
Mobile app development is a complex process. First, mobile development becomes more complicated with time because of factors like new technologies, technological debt, the need for refactoring, changes in business goals, and mobile development trends. Second, user expectations grow as a mobile project develops.
These are the main stages of mobile app development:
1. Discovery phase
2. Architecture and backend setup
3. Mobile app development
4. Quality assurance
6. Release to the app stores
7. Maintenance and support
All subsequent stages depend on the first stage, however. During the project discovery phase, the development team and the client create a thorough plan that defines how the project will proceed.
What is a discovery phase in software development?
A discovery phase is a research and planning process before the project begins, during which all stakeholders in the development process determine the main goals of the project, the scope of work, deadlines, and user experience expectations. They then make a step-by-step development plan including technologies that will be used.
Building a mobile app without a discovery stage is as risky as building a house without an architectural plan
Yulia Kutsokon, project manager at Mobindustry
Most outsourcing companies will insist on a discovery phase before starting a project. This is only natural, as a discovery phase increases the chances of a project’s success.
The main goal of the discovery phase is to make a project fully correspond to the client’s business goals in terms of:
- User experience
- Time to market
These three aspects require the most planning, as according to McKinsey, 45% of all software development projects fail to be delivered on time and on budget. However, there’s a third factor that’s vital for your software’s success: the user experience. It’s harder than it seems to develop a good user experience, and it requires planning more than anything.
Let’s now talk about what a discovery phase actually provides you with.
Benefits of a discovery phase
It’s hard to imagine what a software development project would be like without a plan: so many things could go wrong, and according to Murphy’s law, if they can, they will. To control risks — both business and technical — you need a plan.
What risks can a discovery phase prevent or at least reduce?
1. Your product doesn’t have a market.
2. Users don’t find your product useful.
3. You significantly exceed both your budget and delivery deadline.
4. You choose the wrong company to work with.
5. The technologies your developers choose are incompatible.
6. Your project’s architecture isn’t scalable.
7. It takes too much time and money to support and maintain your project because it uses the wrong technologies.
8. Communication problems lead to project failure.
A discovery phase allows you to consider all of these potential risks at the outset so you don’t have to completely redo everything you’ve already developed.
During the discovery phase, you’ll be asked to approve each detail of the project plan. This means you’ll know exactly what you’ll get in the end, at what cost, and when. A discovery phase eliminates surprises. However, this doesn’t mean you can’t change anything. Every business changes, as does the market situation, so your team should always be ready to make changes to the plan upon your request.
During the discovery phase, you’ll work on a plan that’s clear to all members of your team, no matter their roles. Developers, quality assurance specialists, stakeholders, and project managers will all be able to look at the project plan and see exactly what they should do.
Main stages of the discovery phase
The discovery phase is usually handled by a business analyst, a UI/UX designer, a technical architect, and a project manager. The following are the main steps they need to take during the discovery phase.
Note that each step of the discovery phase requires your involvement; we’ll discuss every step and get your approval during scheduled meetings. Now let’s look at the discovery phase steps.
1. First contact
At Mobindustry, the initial phase of a project usually starts even before we sign a contract. When a potential client approaches us with a project idea, we give them a rough estimate. If this estimate is within the client’s budget, we schedule a call with a business analyst and start to decide on must-have features. This allows our business analyst to create a detailed estimate for the project. After the client agrees on it, it’s time to sign a discovery phase contract.
During the first contact, a you’ll share your project vision with us, and we’ll be able to provide you with a rough estimate
To sum up, prior to the discovery phase, you will:
- Discuss the project vision with the business analyst during consulting sessions
- Receive a preliminary estimate
- Speak with a business analyst
- Approve the detailed estimate
2. Defining business goals
The main goal of this step is to make sure the product provides what your business needs to grow. Business goals will dictate the project’s whole feature set.
To clearly define your business goals, a business analyst will need to interview you and your project’s other major stakeholders. You should be ready to set up one to three meetings per week during the discovery phase for this purpose.
A business analyst will ask you questions like these:
- What problems will this software solve?
- What are the must-have features?
- What platforms do you want to support? (mobile, tablet, desktop)
- What similar products already exist, and what will differentiate your product from them?
Note that if you aren’t sure how to answer some of these questions, a business analyst will be able to help you. Our business analysts have expertise in software development and know both the technical and business standards across different markets.
3. Defining the target audience
The most popular and effective approach to software development is a user-first approach. This is why it’s crucial to define who will be using your product and how. Defining a target audience requires a deep understanding of your business, especially if you plan to acquire a new audience with the help of your product.
Defining your future users consists of both theory and practice: first, you need to find the common traits of your target audience, then gather feedback.
For this, businesses often use demo products, focus groups, surveys, and A/B testing. At the initial stages of a project, businesses usually try to create user personas, which describe prototypical members of the target audience who have particular issues and ways they currently solve these issues.
Defining your product’s users will help not only with designing the user journey and the user experience but also with marketing your product.
4. Analyzing competitors
Competitor analysis is an important part of any planning, be it discovery phase of website development, or mobile discovery phase. Learning about competitors helps businesses get a better understanding of market standards and market specifics in addition to showing them what they can do better.
Competitor analysis can help you understand what niches you can fill and which needs you can meet.
5. Identifying the feature set
After you’ve figured out your project’s goals, your target audience, and the current situation on the market, you can start to identify what features you’ll need to provide service to your users.
There are three main factors that influence a product’s feature set:
- Your product’s goal and all steps of the user journey that lead to its fulfillment
- Industry standards
- Your budget
A business analyst will be able to help you choose the most important features for a minimum viable product (MVP) that you can test on the market. After releasing your MVP, you can change your feature list slightly according to the response of your target audience. However, at the start of a project it’s good to learn what potential features you can add later.
6. Collect project requirements
At this point, the project is starting to take shape. A business analyst will now draw up a specification document that defines all the technical, functional, and usability requirements of your product.
To collect project requirements, a business analyst will often work with a technical architect who will be able to pick the most suitable technologies for your project to make sure it’s maintainable, scalable, and has the required performance.
During this step, both business and technical specialists will determine the technical risks that can influence your project’s scope and delivery time.
7. Create wireframes
A wireframe is a blueprint of your app that shows the transitions between screens and the app’s basic business logic. Wireframes are a big part of user experience design, as they show the user journey while taking into account patterns of user behavior.
Note that wireframes don’t include specific designs; they just indicate where the main elements of the app are and where they lead in the user story. As with all other steps of the project, you must approve the wireframes, which will then form the basis for the final design.
8. Create a design concept
Good design is no longer a selling point for software: it’s just a basic requirement that you need to meet if you want to get users. It’s a good idea to find a designer who has experience creating designs for your particular type of product, as this will ensure the designer knows the industry standards and is able to create a beautiful and functional design that offers something unique.
A product’s design also includes animations and dynamic elements. Depending on their complexity, designs can take from 10% to 30% of your overall project budget.
9. Document the final project specification
The project specification is the main document for your project and is the primary deliverable for the discovery phase in software development. A project specification includes all information about your project, the development process, the people responsible for each stage of development, and all stakeholders as well as a detailed description of each product feature.
A technical specification also includes all technologies that will be used in the project along with a detailed estimate of each feature and stage, including potential risks.
How long does the discovery phase take?
The discovery stage involves the work of and communication between many different specialists. To determine business goals and conduct user, market, and competitor research, a business analyst needs to spend time communicating with stakeholders.
When it comes to developing a technical specification, wireframes, and a design, other specialists like designers, technical architects, and project managers are involved.
Usually, a discovery phase takes from one and a half to two weeks. For extra large projects it can take up to two months
The discovery phase for a relatively small project can take approximately one and a half to two weeks. A larger project will require around two months of work for a business analyst, designer, and project manager.
The biggest product discovery phase we completed at Mobindustry took around 4 months of work. During that time, we created detailed documentation, wireframes, and design concepts for a large ecommerce solution. We also divided the whole project into modules and development steps to make project management easier for our client.
Project discovery phase deliverables
At the end of the discovery phase, you’ll get several deliverables that make up your project plan, including technical specifications, a feature set, a UI/UX design, and wireframes.
Here’s everything you’ll have after the discovery phase to get your project going:
Technical requirements specification — Describes your project, business objectives, all functionality, features, and suggested technologies and architecture.
UI/UX concept — Shows the business logic and overall feel of your project. The UI/UX concept demonstrates how your goals will be achieved during interactions with a user. The UX discovery process is tightly connected to user personas and project goals.
Development plan and detailed estimates — Shows how the project will be developed step by step and sets deadlines and a budget. Estimates are made by a project manager and development team lead.
There are several experts who take part in the discovery stage of a software development project. Usually the team comprises of:
A business analyst – a specialist who develops use cases and user stories in cooperation with a client. They create technical specification, gather requirements, define the main objectives of a project and show how users will use software.
A developer – reviews the project requirements and selects the best technology stack for the future software.
A UI/UX designer – creates user experience and user interface according to the project goals. Some discovery teams have separate specialists for user experience and user interface. They create the product aesthetic, graphic elements, wireframes, prototypes, and work on intuitive user experience.
A project manager – organizes communication between a client and all other team members, makes records and helps to calculate risks and predict time for communication and other management activities during the development process. Also, a project manager can create a project roadmap so that everyone is on the same page.
The discovery phase is the most important phase of a project, as it fully determines how the project will function, what it will look like, and how it will help your business achieve its goals. The discovery process involves the work of specialists such as business analysts, project managers, technical architects, and designers. However, not a single step of the discovery process is possible without your participation as the client.
A discovery phase of a software project helps you find common ground with an offshore team and make sure you’ll get exactly what you need within your budget and timeline. At the end of the discovery phase, you’ll have a clear and thorough plan for your project, from its features and technologies to design and business goals.
If you’re interested in discovery phase deliverables and your product development planning, don’t hesitate to contact us. We can help you with both the software development discovery phase and development itself.