Problem solving is a necessary skill for computing students to succeed in industry. Students commonly find it difficult to apply their technical skills in solving real-world problems, which can be addressed by the inclusion and scaffolding of open-ended and ill-defined problems in formative computing courses. An Analysis, Design, and Justification (ADJ) based framework was recently developed to enable this goal. The ADJ framework consists of learning outcomes, a type of problem, and a three-step problem-solving process. ADJ supports instruction in environments with constraints (such as large classes, and heterogeneous student ability) that are difficult to support with other approaches (such as Problem-Based Learning). In this paper, we report the experience and impact of leveraging the ADJ framework to develop real-world problem-solving skills in the context of a formative computing course. The ADJ framework was enacted in a class on operating-systems taught at the junior level. In the class, students were taught the concepts of the ADJ framework using a series of discussion activities, and then asked to apply it to generate solutions to three problem sets. The problem sets contained problems on topic areas covered by other assessments in the course but used open-ended and ill-defined problems. Assessments showed that students had different performance on existing (well-defined) problems as opposed to the real-world style problems of ADJ. The ADJ assessments provided a step towards better evaluation of problem-solving ability.