Over the last 12 years we have been witnesses and protagonists of an evolution of processes in the development of custom software. Either with Start-ups or organizations that seek to optimize their processes, there is usually one factor in common: we are asked to quote the development of a mobile app where the project definitions are not yet clear. This forces us to work under many assumptions, anticipate eventual deviations and assume possible contingencies. All of this translates into more hours in the budget that eventually lead to both us and the client taking unnecessary risks.

It is the equivalent of someone asking us to budget to build a house without having the plans, the place where it will be built, the materials or the types of finishes that we will use.

It seems implausible but it is very common for this situation to occur. That is why at The App Master we implement a Technical Discovery process as the starting point for any project. The objective is to add value without our client having to make a commitment to a later stage of development. With this, we seek to correctly size the tasks to be carried out.

What then is a Technical Discovery?

Depending on the maturity of the concept, we divide this phase into 2 stages in which different team members participate with deliverables that add value to the client from the first day:

Product Thinking
  • A Product Manager with the help of a Business Analyst will define the basic and necessary functionalities of the project. They’ll work on the structure of screens and navigation flow which defines which functions must exist in the MVP (Minimum Viable Product) and which others are what we call “Nice To Have” features that may or may not be part of it.

The Product Thinking stage culminates with a deliverable of the flow of screens, wireframes (design mockups) and a segmented list of all the possible features of the project.

Product Design
  • Throughout the second stage, the Product Manager and the Business Analyst will write the functional document that describes in detail how the solution will work.
  • A UX / UI Designer is added to this stage to be able to deliver a final design of all the screens. We also prepare a simulated version of how the solution will work in order to match the customer’s expectations with what is going to be developed. The latter is also usually very useful to allow selling a project internally within an organization as well as to get potential investors and / or clients.
  • A Technical Leader defines the architecture, technological stacks, type of servers and integrations that the system will require. What are going to be the maintenance costs for the client once the solution is working (servers, licenses, third-party systems that are integrated, etc.).
  • The Development Team is also added to estimate the level of effort that will be required to build the different user stories. Those stories are typical in Agile methodologies (Scrum or Kanban). Users’ experience is divided into small chunks so that an accurate estimate can be built. With this, a work schedule for the development stage and an estimate are put together.

At the end of the Technical Discovery stage, our client:

  1. Has learned how we can work together and what are our standards.
  2. Receives a functional document that describes the solution.
  3. Has an accurate estimate of costs and development times.
  4. Knows what the costs associated with maintaining the solution will be.
  5. Keeps the design of his/her project and a “clickable” version that will allow him/her to clearly see what the final result will be.

It’s hard to think of a better way to start a business relationship, right?