Take all edge cases into consideration and build an organized system
In this project, I realized the heavy inconsistency problem resulted from absence of a clear system that structurally listed every edge case--in some situations, it took me much longer to figure out how the existing system works than designing a new one. Real-world problems can be very complex. In e-commerce settings, all the combinations of purchase options, order status and market strategies would be a great challenge, and our job is to make sure our design has taken every case into consideration.