I think all design professionals have gotten into this situation one time or another. This seems to be a frequent occurrence in our world as designers and I believe this would be an interesting discussion to open up amongst other design professionals.
Under tight timelines we have learned ways to cut corners. But, cutting corners too much (in my opinion) leads to a UI that isn’t structurally built correctly and an experience that isn’t ideal to our users. Also, a bunch of designers and developers that have little work life balance for the months they are focusing on that project.
When this happens, we don’t have time to think everything through and make all the right decisions. We also don’t have the time to develop/implement the ideal experience from an interaction design perspective, gather the best photography assets we need to truly design the best experience for our users and to support the business.
Whether the timeline is in reference to a migration, platform change or to support a business / marketing effort.
“We only have time to do it wrong.”
I’ve spent a few years trying to come up with ways to resolve this issue or at the very least ease the situation (when it occurs.)
1) See design as a phased approach. This means that phase 1 isn’t promised to have all the bells and whistles as the next phased roll-out. Also, set this as the expectation. The digital space is like a living and breathing thing. We can always make it better.
2) Utilize bootstrap components to solve as many design problems as you can.
3) Make sure the designers work directly with the stakeholders of the project to ensure hand-offs are communicated clearly and there are no surprises. The worst thing is having to go back to the drawing board and re-design after the design has already been handed off and implemented.
4) Build out QA test scenarios upon design hand-off before DEV has started, to have in the queue for testing.
5) Reuse framework for steps in the workflow. There is no reason to re-design the wheel if the structure you set can serve multiple purposes.
6) Define global patterns for design consistency, as well as free-up custom dev work.