Discovery Phase for your Software Project: Setback or Necessity?
While marketing and competitor intelligence are believed to be the key to business success, we firmly believe that the starting point of many successful software development projects is a discovery phase.
What is a Discovery Phase?
This is the initial part of the project, often called analysis, dedicated to building an understanding of how your business is going to be implemented within a future software product. Regardless of what product is being built, there are always key factors that should be properly defined, for instance:
- a completely new idea: how the user is going to be involved in a monetisation model;
- optimisation of certain processes within the company by using an online tool: how to reduce the time spent on some routine operations.
All stages of software development process are described on this infographic.
The Discovery Phase usually covers the following activities, which vary more or less depending on requirements:
- Defining the project scope, main software features, and business priorities;
- Conducting market research and competitor analysis;
- Creating a workflow for an efficient software solution taking into account product monetisation strategy;
- Identifying unambiguous program features and user roles;
- Devising software expansion and multiplication strategies for growing business needs
- Identifying and covering risks;
- Designing a visualisation concept for the future solution.
As an outcome the following deliverables can be achieved (not all are strict requirements and should be chosen based on project needs):
- Documentation:
- Functional requirements: use cases for every feature;
- Product vision;
- SRS - software requirements specification;
- Feature map;
- Non-functional requirements:
- Platform requirements and restrictions;
- Technological stack;
- Expected load and infrastructure architecture;
- Design:
- Screens designed for main workflows (10-14 screens);
- Screenflow: visualisation map with screen dependencies;
- UI-kit: handy tool to reduce the effort required for new screens;
- Animation: to demonstrate some workflows;
- Design sources.
Why the Discovery Phase is necessary
Frankly speaking, we’d be happy to start the development phase in an instant, as this is the part we love. However, we are certain that without a careful analysis of the features during the project initiation, the development will most likely take up more resources in terms of time and costs (not considering functionally simple solutions). Lack of careful pre-development analysis implies that a fixed estimation of the development timeframes and costs cannot be provided - simply because the project scope is unconfirmed.
Obviously, if the whole business process is not analysed and technology stack is not planned in advance, the development itself will be based on assumptions rather than on verified facts.
The software development can be compared to building a house: when aiming to build a solid and reliable structure, having blueprints as well as a finalized design is the only way it can be done. You may have a beautiful picture of it, but to build it from the ground up, you will need a strong foundation, a list of tools and materials, and a plan for how engineering communications will be located (e.g. electricity or plumbing), as well as an understanding of your construction method.
It’s worth mentioning that not every project requires an extensive and costly discovery phase: for most, a shorter documentation phase that covers the riskiest aspects of the business model and potential pitfalls of its technical implementation will do. Other, lower-priority functionality details can be defined later during the development itself.
From Theory to Practice
IT expert. You know your end product, target audience and the goals that need to be met. You’ve done an in-depth analysis of all the existing software in your field and have a clear USP. All the technical aspects have been addressed and all the risks have been assessed. You have fully-fledged specs with all the technical details, including which platform to develop on and for which devices, models, screen sizes and resolutions. You’ve set your OS version demands and provided a prototype to identify how the features should be visualised for each user - from manager to admin, business owner, etc. All demands have been logically structured and your software requirement specifications perfected.
- In this case, there is definitely no need for a discovery phase.
Business guru. You’ve already undertaken market research and crystallised user demands and competitor advantages. You have an outline of business processes and all the software features that need to be implemented to offer the best solution on the market. You’ve prepared a design concept and know how the most important features will be executed. All that’s needed is a little help prioritising tasks and some technical expertise from a professional developer so that everything can be implemented with the utmost efficiency.
- In this case, a short discovery phase is the tool that will put all the parts of your project together and highlight any possible gaps.
Apprentice. You have a brilliant idea and plenty of aspiration. Despite not being familiar with IT, you have a deep understanding of all the business procedures that should be implemented in the working digital product. The initial budget is secure and the idea needs to be checked on the real market or to persuade potential investors it’s a hit.
- Here, a discovery phase is the key to success. It will help structure all the demands of the project, highlight weak points, define primary goals and test the feasibility of the concept on real users. On top of that, further development steps will be clearly outlined for yourself or the investors to have a vision of the business prospects.
A discovery phase helps in defining the end result and in figuring out how will your business operate from within the software solution - in other words, the technical and business feasibility become synchronised. During this stage, our analysts will work closely with you to find potential weaknesses and misconceptions, strengthen logic and cut off dead ends. Together we will determine the priorities as well as map out how staff, users, and management will interact with the new software. Aside from the technical aspects, we will identify what guidance and reporting systems are needed for your company and develop a step-by-step implementation plan.
Benefits of the Discovery Phase
- An understanding of how your business will operate inside the IT product
- Predictable development results within confined timeframes
- Defined budget
- Defined project planning:
- Calendar timeframes
- Launch plan
- Estimated risks with a strategy for mitigating them
- Cut costs to reduce initial costings and achieve ROI faster
- Prioritisation for platforms and features
- Versioning in order to spend the budget only on vital functionality
Upon the completion of the Discovery Phase, you will be presented with a detailed software description (Software Requirement Specification), which in turn would result in transparent functionality, based on which the precise budgeting and predictable development timeframes will be provided by any of potential vendors. All of these points are utterly important for ensuring that the stakeholders, early adopters, and potential investors would become aware of your project's functionality and magnitude.
And finally, can I work without discovery phase? Sure, you can
Our team has extensive experience of working in iterations (sprints) with minimum project documentation. This is called a SCRUM model, which is a part of an Agile strategy. Based on this approach, all activity is divided into short (usually two-week long) sprints.
Together we will confirm what functionality needs to be covered within the next iteration. The agreed areas will then be programmed. This is a very progressive method, which works brilliantly within advanced IT companies and unpredictable, rapidly changing business environments.
Unfortunately, it is not a one-size-fits-all situation - quite often some sprint results have to be totally reworked later on, as various business factors were not taken into consideration due to the lack of a complete vision. By implementing a discovery phase, we are avoiding such dead loops.
If you need some advice, how to save money on app development, read this post. If you are looking for a professional support with your software project, please contact us and together we'll work out the solution.