This is so true! When starting work on a new project or feature I nowadays actively try to embrace ugly solutions. Refactoring after you have a working solution is much easier than coming up with a perfect solution (which probably doesn't exist).
It's a lot easier for somebody to understand and then critique when you've got something concrete to demonstrate