The best way to solve any complex problem is to start off by formulating a general overview of the problem. This is useful as it allows you to see the overall 'big' picture and allows you to really comprehend the complexity of the problem. You can then proceed to break the complex problem into smaller constituent sub problems which are more manageable. These subproblems can then be assigned individual deadlines and you can go about systematically tackling them one by one.