Software development planning: how to prepare for product creation
May 13, 2020
Benjamin Franklin once said: "By failing to prepare, you're preparing to fail." In software development, it's best to follow the same strategy. Without in-depth project research at the initial stage, it's impossible to build a product that meets the client's requirements and fulfills the user's needs.
In this article, we'll delve into a discovery phase as a part of the software development planning process: its purpose, key points to figure out, and deliverables for every stage.
If you're going to figure out how to develop software that meets the user's demand, and that is technically feasible and won't overrun your budget, you're in the right place!
Project discovery phase: what's this and who's responsible for it?
Your software development plan should start with an accurate evaluation of a project. To do this, you need to understand how much time it will likely take to identify requirements, analyze, and create technical specifications to build the desired product.
If you skip or pay little attention to estimation and software development planning, you're likely to fail in calculating the final cost of the project.
The discovery phase is also called a scoping phase because it involves gathering and analyzing data on the project.
In addition, during this phase, we:
- Elicit product requirements
- Explore the product: it's functionality, customer segments, market fit, and so on
- Create a backlog with prioritized features, milestones, and budget
- Lay down the most viable technological solutions that'll speed up development and save costs
- Deepen into the customer's business processes
- Assess risks and find bottlenecks
The project discovery phase is a preliminary stage of actual product development. It involves lots of research, analysis, and defining goals and priorities.
The main tasks of a project discovery phase
If you think that a discovery phase is meant just to extend a project lifecycle, don't jump to conclusions!
Poor initial planning might result in much more heavy expenditures than conducting a discovery phase in the first place.
Reducing uncertainty with the project's scope
Often, startups have little understanding and technical expertise in how to develop software, create a list of features and an exhaustive software specification, as well as pick a viable technology stack for their project.
Moreover, customers often find it difficult to test out their hypothesis and demand among potential users.
By conducting a discovery phase, you're able to minimize the number of changes during the development process since the project's scope is determined along with the best technology stack, milestones, and budget.
Figuring out risks and ways to overcome them
Clear goals and system requirements along with estimation conducted by technical experts allow estimating the project and product scope clearly.
As a result, you're able to mitigate risks of over- or underestimation on a project and save costs on fixing mistakes and developing features.
Aligning stakeholders' and project's goals
The success of the project lies in a balance between stakeholder's business goals and the needs of end-users.
Unfortunately, sometimes a project kicks off without a clear statement of user's demand (why should someone utilize software?), value proposition (what benefits a product brings to users?), and market need (how the product will meet the need of the market?).
In this case, a project discovery phase frames the product's goals and vision and helps align all stakeholder's expectations from a product.
As a bonus, you're also able to figure out if your software development partner meets your needs and how comfortable it is for you to collaborate on the project.
Consider this phase as a trial period to test if this is a tech partner you'd like to continue working with.
Key roles in a project
A typical team at a project discovery phase includes business analysts, project managers, UI/UX designers, web and mobile developers, and other technical specialists that help with assessing the scope of work and designing a software specification.
Besides, the proactive participation of stakeholders is welcome because it helps elicit more valuable data. During a discovery phase, daily meetings are a must.
Let's review key roles during a discovery phase and their core tasks:
- A business analyst. They identify, analyze, and fix requirements. Afterward, a business analyst designs the business logic of the future software product and transforms business goals into functional and non-functional requirements.
- A UI/UX designer. They conduct the UX research and discovery of competitors, find the design best practices, and create wireframes. In addition, UI/UX designers create style guides to establish brand identity and maintain visual consistency during product development.
- A project manager. Their task is to get a team up and running, communicate with a client and report on a project's progress and bottlenecks, and ensure the deadlines are met.
- Technical specialist. As a rule, the role of a technical specialist is performed by a CTO, a technical lead, a DevOps, or a senior developer. They take part in software development planning by analyzing the artifacts of a discovery phase to make sure the business logic is technically feasible and offering the best architectural solutions. Technical specialists also take part in project estimation to figure out the project's scope, time, and budget required to build the desired product.
Key issues to be addressed during a discovery phase
A discovery phase is a gradual, iterative work. The team moves from global tasks and business goals to figuring out specific software features, milestones, and budget. Each stage of a discovery phase must finish with deliverables (we'll describe them below).
Here are the key issues that are addressed during this phase:
- Main competitors
- Product architecture and technology stack
- Functional and non-functional requirements
- Product's unique value proposition
- Customer segments
Deliverables of a discovery phase
Each stage of a discovery phase comes with certain artifacts or deliverables. There isn't an exact set of deliverables for a discovery phase since every project is different.
For example, if a customer's goal is to get investments, they're likely to ask for deliverables like budget estimation and a design concept.
Here's the list of essential deliverables customers get during discovery phase:
What's this? A project estimate includes a rough assessment of the scope of work, including frontend and backend development, mobile development (optionally), UI/UX design, functional testing, project management, and analytics.
Deliverables goal. A project estimate is created to provide a customer with an understanding of the resources required to build a product in terms of time, money, human resources, and technologies.
What's this? It's a mandatory deliverable that includes a high-level description of the project's goals, a timeline with milestones and artifacts, and possible risks.
Deliverables goal. Project roadmap helps set stakeholders' expectations and gives an understanding of how many resources are required to fulfill the product's development.
What's this? Technical specification or documentation describes a set of requirements to a software product. It includes such aspects as functionality (what features must be present in the software), performance (for example, what loads the software must carry) , external interface requirements (UI/UX design features) , and so on.
Deliverables goal. In the software development plan, a specification plays an essential role. It gives perspective on the environment the software will be used in, user characteristics, the limitations of the system and ways to overcome them, and so on.
What are they? It's a black-and-white visual guide that helps figure out the UI/UX infrastructure of a future web or a mobile app.
Deliverables goal. Basically, with wireframes, you get a preliminary understanding of the main functional blocks, the information structure, and the user's interactions with the future app. This is an essential deliverable in a UI/UX research and discovery stage of a discovery phase.
What are they? In spite of low-fidelity wireframes, the prototypes are high-fidelity, colorful, and clickable visual representations of the future product. However, keep in mind that a prototype isn't a final product, however, they look very close.
Deliverables goal. Prototypes are created to test the waters first. Prototypes help test a user's interaction with a product, simulate the user experience, demonstrate the product to potential investors, and get user's feedback.
What are they? A style guide is a set of design standards and requirements for a visual style.
Deliverables goal. Designers create style guides to scale their style, keep visual consistency, and avoid design discrepancies when a new feature is added.
As you can see, you need to be a jack of all trades when it comes to creating a software product. Not only do you need to know how to develop a software project step by step, but you also need to understand each phase and its impact on your project's success.
A discovery phase is an essential step in product development that allows you to figure out the product's functionality, technical feasibility, and resources like time frame, HR, and money before you step into actual development.
If you'd like to make a project discovery with us, we'd be happy to help you with our expertise. Drop us a line and we'll get back to you shortly!