decision making in programming