If we want users to like our software, we should design it to behave like a likable person: respectful, generous and helpful