If you have a good designer and cooperative costumer you can even combine step 1 and 2 with a whiteboard prototype. Ask the customer what a common task is. Draw the interface the whiteboard and ask the consumer where they would click or interact, then draw the next UI state, and so on.
After a couple rounds of iterating that way you can start writing actual code. You will still need a couple iterations once people can try the actual software but you will have a much better starting point