System Design
Ā
About
This document is an attempt to define the booking and scheduling ontology from first principles. It maps all the elements that we need to take into account.
This document aims to be comprehensive (to reduce the chances of missing a key element and then having to redesign the whole system). However, we don't need to include everything from the start in the product. Our architecture should enable us to start with something basic and, over time, grow to progressively account for all the elements define here.
Ā
Primitives of booking and scheduling:
Priorities: the crux of the issue
Scheduling is on one side a mechanical task of sharing data (when I'm available) and on the other the art of balancing multiple priorities.
Ā
List of Priorities (frequently in conflict)
Ā
The usual way to deal with the huge variety of possibilities is to ask each User to manually input availabilities (e.g. lettucemeet workflow).