Designer Julie Zhuo:
If you give an engineer a design to build but you’re not confident how well it’ll work out until you get to play with the implementation, make sure you let them know that there’s a good chance things will change. Nothing is more annoying to engineers than staying up all night to finish an implementation only to get a memo in the morning that Whoops! The whole design has been transformed! And now they’ll have to throw away all that production-quality code they put painstaking attention into.
A thousand times this. Having worked on projects on both design and development, this point has come back to bite me personally quite a few times. If you’re a developer, make sure you’re clear on what stage the design is at.