The article emphasizes the importance of maintaining flexibility in technology choices, especially when it comes to databases. It advises against making early commitments to specific solutions like relational or NoSQL databases. Instead, creating a well-abstracted system enables developers to adapt to unforeseen challenges and changes in project requirements. This approach also mitigates the risks associated with 'unknown unknowns' in software development, as it allows for greater freedom in decision-making until implementations are necessary.
If you decide early on a relational database, and then as the project goes on, it becomes obvious that a NoSQL database is what you need, well, that can be a problem.
The goal should be to not even care what database you end up using or which authentication solution you use for your website.
If the decision becomes moot, then you have created a system that is well-abstracted and thus well-designed.
As long as you don't have an implementation, you have freedom. The longer you can wait to choose or build an implementation, the greater flexibility you have.
Collection
[
|
...
]