Device Agnostic Development

We used to develop websites solely for desktop users. Today, we also develop for mobile devices, and who knows what new form factors will follow tomorrow. How are you expected to cope with many different constraints, and what are the right ways for approaching device agnostic development?