It’s functional. If any piece of software isn’t able to do what its supposed to do, it's useless.

It’s robust. A robust software should not lose its availability even in most failure states. Even if some components are broken down, it should still function.

It’s easy to change. It all starts with the question; “what if we need to add a feature X here…” Good code should be easy to change with minimum effort..

You can measure it. It should be possible to see how well the code is doing outside of a test environment. Usually, the best measures are how the software can facilitate the business needs.

It’s easy to maintain. You’ll know if your software is easy to maintain if it has consistent styling, good comments, etc. A good style can make it easier to modify parts of the code without wrecking it.