The essential programmer requirements