Have you ever considered how your current project architecture will evolve in the future? Have you ever thought how your team will develop certain features for a client? How about possible over-engineering?
In general, we always try to predict all possibilities and changes that the client may require. In the other hand under time pressure developers are being pushed to do different kind of “shortcuts”, which can increase cost of developing new features. How to avoid over-design, but without closing your architecture for all sort of changes that your customer will need in future? When certain technical decisions should be made? When technical debt should be accepted, and when is a need to avoid it?
It will be a story about bad decisions and failures, but also about those decisions that can save the day.