I like these criteria at first blush. But I think a developer and his or her users might differ signicantly in their opinion of what qualifies as "discoverable". A developer is biased toward a belief that his or her app is laid out intuitively. And as far as not having to read the help file, I think very simple apps can get away with this by conforming to GUI standards, but I've used many apps whose features weren't immediately apparent, but which demonstrated internal consistency and logic after a quick browse through the help file.