Discovery is an opportunity to discuss your unique business objectives that define the software features to support it, the technology required and the level of automation they provide.
That is why software development projects are always preceded by the so-called Discovery Phase.
WHAT IS DISCOVERY PHASE IN SOFTWARE DEVELOPMENT & WHEN DO YOU NEED IT?
Discovery Phase is the initial stage of a software project which involves business analysis and requirements elicitation, technology stack choice, cost estimation and project planning. Its main goal is to ensure a development team is 100% on the same page with your business goals and know how to bring your software idea to life in the fastest and most efficient way.
The discovery will enable us to look holistically at your development project and to account for your most ambitious goals when building the core design for your system. We don’t want to get halfway down the road of development and discover something which fundamentally changes the design already built.
DELIVERABLES PRODUCED DURING THE DISCOVERY STAGE
Discovery’s major purpose is to ensure you are moving in the right direction and understand how to transform your business requirements into high-performance code.
Like other phases of software product development, however, it is designed to produce tangible results. What are they?
Depending on the project, and the level of discovery some of the deliverables may include:
Functional requirements. A detailed description of all the functions performed by a software system which is written by and for developers (“the user account screen features a profile picture and several fields where personal data including name, phone and credit card number can be entered and edited”).
Non-functional requirements. These include usability, performance and maintenance requirements explaining how the system is going to facilitate the processes outlined in the functional requirements section.
User stories. A detailed description of tasks a user can do with the software solution which is written from a user’s perspective.
Sketches and wireframes. Creating “skeletons” of a website or app page is a great way to outline UI design requirements, specify navigation logic and determine how screens will be linked to each other.
WHAT TO EXPECT DURING A SOFTWARE DISCOVERY MEETING
A software discovery meeting will typically be arranged with key stakeholders from each of the relevant departments from which users of the software will operate. This enables each department to contribute their key requirements for the system, as well as personal preferences around operation and workflow.
It is important for all stakeholders to be involved as this can highlight differences in expected outcomes.
Technical personnel with knowledge of the current computer systems relevant to the project are also invited for the purpose of building technical specifications around data and scaling requirements.
The time and schedules are maybe difficult to accurately define but are usually relative to the scale of the development project. We would typically provide estimations on a case by case basis after preliminary discussions with project leaders in the organisation.
A typical discovery session would usually occur in the following format:
• Introduction to discovery
• Requirements overview
• Department requirements / wishlists / user stories
• Concept design suggestions / feedback
• Finalisation and wrap up including summary of project understanding and expected deliverables.