We live in a world where data is constantly being recorded. In software, determining the timing of when to use that data is critical to making the most of the information. You should take into account data freshness, the data-gathering processes and any dependencies between them, and when to distribute information.