1. It is a subjective craft. Subjective crafts require art-school techniques, not "here's how pointers work."
2. It is not about building a static artifact. It is about building team understanding.
Software is a living system, created by teams collaborating with both themselves & past software versions.
It’s that subjective crafts skills are vulnerable to illusions of understanding.
Folks often look down on folks who say yes. They look at their 5KLoC `User` class, say “Hah! No~!” despairingly, & go on about “presentational” or “persistence” responsibilities.
It’s a trick question.
This is when folks start handwaving about “single responsibilities.”
It’s where pattern-oriented OO steps in to “save” us.
“A-ha!” says someone who has been trained in pattern-oriented OO. “View logic!”
They extract a FriendUserPresenter & an AdminUserPresenter.
But there’s no easy heuristic for this. There’s “ask users what they see,” but that’s only “simple;” it’s not at all easy.
It’s much harder to teach effectively.