Designing a product is keeping five thousand things in your brain and fitting them all together in new and different ways to get what you want. And every day you discover something new that is a new problem or a new opportunity to fit these things together a little differently.
Anyone looking to contract out software development should read this article. Not having a clear vision of what done will look like, and thinking that having the kernel of an idea is enough is delusional. Smart people know that implementation is 99% of what makes anything great.