Start with a deep immersion in the problem, dig beneath the surface. Spend time living with the problem, understand the day-to-day 'texture' of the challenge. Listen, and listen some more. Find the hidden stakeholders, understand the structure and power relationships. Maintain critical distance but not so much that you lose the immediacy of the problem.
Extract and systematise what you have learnt. Avoid 'implementation bias', that is colouring your account of the requirements ('why') with an implicit tilt to a particular solution ('how'). You will, of course, be unsuccessful in completely achieving this, but the hard work that you put into it will pay off.
Remember that you are not the 'user'. Be conscious in setting aside your own characteristics and world-view. Identify with the problem, but do not identify yourself with the problem. Design is often best organised as a participative task, this is not to underplay the role of individual creativity. Active engagement of users in the process not only improves the quality of the problem diagnosis and solution design but also increases the likelihood of securing the behaviour changes on the part of those users that design frequently entails.
One of the best ways to clarify your account of what is required is to define your 'tests' for the design up-front. These tests should force you to be clear and precise and will help you to avoid getting into difficulties as you change and refine your selected design.
Work both 'convergently' and 'divergently'. Generate multiple solutions, explore the space for different trade-offs. Defer commitment and select explicitly rather than implicitly.
All successful designers know that "for every complex problem, there is an answer that is clear, simple, and wrong" (attr. H. L. Mencken). Your task is to ensure this answer is not, in fact, your preferred solution.
Iterate rapidly, moving between design and implementation. Confront risks early, recognising that your biggest risk is that you have misunderstood the problem not that you have made a technical error in realising your design.
Love your ideas just enough. Give different ideas the space they need to develop and show their potential, but do not love them so much that it masks your objectivity and prevents you from setting them aside. This requires a mixture of creative openness and intellectual toughness.
A design is an intervention that will meet a problem setting that is not static but responsive to that intervention. In other words, your designs will change the 'world' into which they are placed. Users will appropriate your design shaping it to their own purposes. Recognise that design is an active, dynamic process of engagement.
Your design will have a life from deployment through to disposal, and ideally a cycle of recycling and repurposing. It will be maintained and adapted during that life. You are designing for life, recognising the openness and uncertainty this entails.
[Credit: Claire H.]