2. Program Design Before you can write a successful program you will first need to think about what you have been asked to do and how you are going to do it. Analysis This is where you think about what you have been asked to do. You need to write down what the task is in your own words, and how you hope to solve the problem. Design This is where you need to think about how you are going to solve the problem. You need to break the problem down into the main steps to solve it. Then you need to see if you can break the main steps down into smaller steps. The smaller steps are called refinements.