The whole system development required us to decompose and parallelize all the tasks.
First of all we took paper, pencils and sketched a prototype of the whole system - two mobile apps for clients and masters and an admin-panel to control the system. After the client's approval we parallelly created requirements for backend business logic and started creating a UI design for mobile apps using Adobe XD, which also allowed us to demonstrate an interactive prototype each couple of days and agree on details with the client.
The tricky part of the system was to turn backend into a hub between masters and clients. It had to process information about masters' geolocation and their schedules changes promptly in order to take decisions which masters fit better for one or another order. What's more, we also had to take into account travel time of master from one's current position to the a client's address considering traffic which is usually hard to predict. That's why, for instance, we preserved a minimal time gap of 30 minutes between adjacent orders which gave us some reserve in case of incorrect calculations.