In its common usage, evolutionary design is a disaster. The design
ends up being the aggregation of a bunch of ad-hoc tactical
decisions, each of which makes the code harder to alter. In many
ways you might argue this is no design, certainly it usually leads to a
poor design. As Kent puts it, design is there to enable you to keep
changing the software easily in the long term. As design
deteriorates, so does your ability to make changes effectively. You
have the state of software entropy, over time the design gets worse
and worse. Not only does this make the software harder to change, it
also makes bugs both easier to breed and harder to find and safely
kill. This is the "code and fix" nightmare, where the bugs become
exponentially more expensive to fix as the project goes on