Wednesday, September 12, 2018

Objective and Subjective Code Qualities

Some code qualities are objective and others are subjective.

I don't mean this in the colloquial sense of the words. I mean it in the actual sense of those words. Objective qualities are qualities which are properties of  the code itself. Subjective qualities are qualities which only exist as part of a developer experience.

For instance, any given design either is or is not cohesive any particular way. It's not a matter of opinion nor is it a function of observation. It just is that way...or it isn't.

Readability, on the other hand, is something that exists as part of a developer experience. If you can't read a particular language, then code written in that language isn't very readable to you. If I don't understand a domain, that will make it a lot harder for me to understand code about that domain.

"To you", "for me"... there's always an audience when you are talking about a subjective quality. They are observer-relative.

This doesn't make the subjective qualities less real or mean that they deserve any less attention. It makes them different and means they get a different kind of attention.