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

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