A typical bottleneck is caused by the fact that humans can’t deliver software (or hardware, if operating outside the cloud) fast enough. Even if they were capable of hacking code fast enough, they may be busy maintaining existing systems, which is another critically human activity. This observation helps us to realize that although “infrastructure” sounds very technical, we are not building infrastructure for the machines. We are building infrastructure to make humans more productive. This realization has fundamental ramifications to how we should think about and design infrastructure for data scientists— for fellow human beings, instead of for machines. For instance, if we assume that human-time is more expensive than computer-time, which is certainly true for most data scientists, it makes sense to use a highly expressive, productivity-boosting language like Python instead of a low-level language like C++, even if it makes workloads more inefficient to process. We will dig deeper into this question in chapter 5