hard coding vs soft coding