Effective Mental Models for Code and Systems