This is a very good question Ronauli Silva. IMO, the first iteration should be as simple as possible. One should look at where the change requirements are coming from and adopt according to that.

If the new/change of requirement is causing us to modify our existing code (a lot), its violating the open to suggestion, close for extension principle. In our new implementation, we can create a new offer without changing existing code.

Hope this helps!!

Senior Staff Engineer @freshworks. Ex-McKinsey/Microsoft/Slideshare/SAP, Tech Enthusiast, Passionate about India. Opinions are mine

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store