Are you sure you’re doing it within the loop? The is_author
function checks if $wp_query
is set.
Another option would be to try this:
$current_user = wp_get_current_user();
if (is_user_logged_in() && $current_user->ID == $post->post_author) {
// do stuff
}