I read that Domain Driven Design is about concentrating on the problem domain instead of concentrating on the software. They say that it is easier to solve the complexities of the problem domain than the complexities of the software, because after you have solved the domain, you know better how to build the software, too. Also they say that actually the domain is more complex than the structures of the software or that if you don't see the forest from the woods, you are in trouble.
But how is Domain Driven Design different from just using a specification for the software? I mean, of course we should get to know the problem domain before we start coding. Is DDD reinventing the wheel?