Do you want it right or do you want it right now?
Thoughts on tradeoff between speed and correctness in software
I found this quote when listening to Patt Helland on a podcast. The quote captures the eternal tradeoff in distributed systems. Commonly understood through CAP theorem. The core idea is that the data in the system can be consistent or have high availability, but not both. Its about knowing what is more valuable, the fact that you get the data that might be stale but available right now or the data that has all the updates but is available late.
One example of this tradeoff is reflected in AWS DynamoDB read consistency modes. DynamoDB is a scalable key-value store. They have different cost structure for eventually consistent reads and strongly consistency reads. Eventually consistent reads might not have the most recent updates, however they are fast. Strongly consistent reads will have the latest updates, but the latency & the cost might be higher. Besides, there are some other disadvantages of strongly consistent reads.
This idea can be extended from databases to software quality and requirements clarification. It is always important to understand as a developer given the constraints, what is more important to business and stakeholders? Building the software with the “right”quality control mechanisms like unit testing, telemetry etc. or delivering it fast i.e. “right now”.