problem solving methodology and techniques