Many frameworks and processes to design, build and ship products exist, but one process does not fit all products or features. We have Agile, Waterfall, Agile-fall, Water-scrum-fall and a bunch of other things in between and beyond. There are many nuances at each step and based on the situation, people, market, etc compromises are made at each step.
Effective designers and product managers know which compromises to make and when. There are also a bunch of practices that make each step of the process a bit more effective and less prone to the negative effect of such compromises.
I'd like to share some such practices that I have found effective.