Software engineering evaluation relies on a combination of verifiable compiler checks and subjective human preferences for maintainable code structure