|There's more than one way to do things|
For me, the answer has to be "Correct". In the real world, we're creating software to serve a purpose. The user needs to get a job done and is relying on the software to do it. If they can't get their job done, nothing else matters. That's incorrect software. If the software is too slow for the user's needs or the interface is so cumbersome that they can't figure out how to use it...BZZZT. Wrong answer.
Barely correct software allows the user to get the job done -- barely. Truly correct software allows the user to get the job done with ease, and maybe even pleasure!
Correct software isn't perfect or bug free, but it's close enough. Unreleased software is useless and couldn't possibly be less correct. The trick is judging what's "close enough".
"Correctness" is the most important attribute for software, but for me, "simplicity" is a very strong second. Lots of good things fall out of simplifying software -- it's easier to read, test, understand, and maintain. And that, IMHO, is beautiful.