The principles, patterns, and practices chosen to assist with the delivery of software projects are essential to the long term success of the project. Design patterns, development principles, and clean code practices directly impact the quality and speed of delivery of software.
Many of us have been on a project where everything starts out great and the client remains happy for a few months until suddenly they change their mind and are no longer happy. This project was certainly the case. However, there was quite a bit that we did right on the project. The code was clean and well architected. We used a transformation layer in the code to allow the API payloads to be detached from the database.