Correct
Good software is correct. If your software is not correct, it’s bad software.
Efficient
Good software is efficient. I mean this in as many ways as you can think - performance, usability, etc. Of your software is not efficient, it’s bad software.
Changeable
Good software is easy to change. Change is a fundamental property of software - requirements change, goals change, users change, technologies change. If it’s hard to change your software, it’s bad software.