Future Proof is to make your data modeling and code good enough to support new use cases in the future.
Example of non-future-proof design
You are building a general ledger system to work with Pix (Instant Payments) transactions.
You design your ledger to only work with Pix transactions.
Your startup keeps growing, and now you want to use the same ledger to work with other Instant Payments system, like US and Colombia.
As you make the ledger too specific for the Pix transaction type, it is hard to make it work with other Instant Payments system.
How to make a system future-proof?
To make a system future-proof, you need to make it generic enough to support new use cases in the future.
You need to research all the possible use cases, focus on real use cases not imaginary ones, and design your system to support them.
If you can't predict the data format, you can use a schemaless approach to handle it.
How to avoid overengineering?
If you plan for a future that won't happen, you end up with a lot of technical debt and overengineering. To avoid this, you design with future-proof in mind, but when implementing you try to cut it off everything that won't be used right now, but you enabled extensions in the right parts.
Woovi is a Startup that enables shoppers to pay as they like. To make this possible, Woovi provides instant payment solutions for merchants to accept orders.
If you want to work with us, we are hiring!
Photo by Drew Beamer on Unsplash
Top comments (0)