Design algorithm before development or where to start any project?

Mobile application development is a complex task. Because each mobile application has unique goals and solutions, tasks become even harder. This article will answer on follow questions:

- How will our work with the client go?
- What steps will the whole process be divided into?
- What results will the client get at each step?
Ruslan Musagitov
Co-founder, iOS Developer
All participants of the process, like clients and developers, want to get a stable and working product in the end. Ship product in time and don't go over the budget.

Technical design stage will help to fulfil these requirements.

In BytePace we call this designing stage and divide it to 4 required steps:

  1. Collecting requirements;
  2. Designing wireframes;
  3. Designing activity diagram;
  4. Designing class diagrams.

Collecting requirements:
Product requirements are the starting point of the design stage. On this step we ask clients a lot of questions about the product and its goals. Requirements show:

  • What the product do?

  • How it do that?

  • What user problems it solves?

  • What goals of the client it achieves?
For understanding the client's tasks, we suggest that first of all fill out the "Questionnaire for collecting project requirements"

Client receives documents with structured requirements for the product.

This stage let you unambiguously fixate app functionality.
Synchronize our and client's vision of the product to be on the same page.

Developing activity diagram
Goal of diagram - show the logic of how the user interacts with the app and flow of the product. Diagram presents the algorithm of the app.
Clients receive activity diagrams.

Activity diagram lets you remove contradictions in the algorithm of the app. This allows you to easily visualize the product - create product map and design.

Mockup design
Based on the activity diagram, we design product mockup. Mockup looks like an application map without UI design. The application map displays all screens. Arrows show user flow from screen to screen. Define functionality of each screen.
Clients receive application maps without design made in Figma.

Mockup lets you remove contradictions while splitting functionality among the app screens and will be the foundation for UI design and class diagram.

Class diagram design
Finishing step of preparation. Represent class architecture and structure of the product. Allow making important design decisions and split development into tasks more precisely.
Clients receive class diagrams in

Class diagrams allow us to minimise the number of issues, find them and resolve them in the preparation stage. This lets you avoid those problems on the development stage, when resolving these problems will cost more.

After finishing all stages we split development on milestones, clarify deadlines and begin writing product development.
Thanks for reading!