Towards a Problem-Solving Methodology for Coping with Increasing Complexity: An Engineering Approach