Building applications for every environment requires fundamental shift in how we think about software and the careful execution of some key concepts:
When building a universally accessible application, your content will appear in places you never dreamed of: displays that don't render HTML, a refreshing braille display, or maybe an interface that doesn't have a screen at all. Smart content adapts to your environment, rather than dictating it.
Building applications for all platforms means making data accessible to all of your current and future clients. Well-defined data APIs help your applications interact with each other, easily serve content to your customers, and make it possible to build services that can run on any number of platforms.
By starting small and adding layers of functionality as the capabilities of your client increase, you can deliver a baseline experience that works everywhere, while providing advanced features to platforms that support them. Progressive enhancement is agile, accessible, and future-friendly.
Apps that run everywhere have challenging and evolving technical requirements and resource needs. It's essential to plan and prepare for these from the beginning. The goal from day one is a rock-solid, flexible infrastructure based on future friendly code that scales rapidly to meet changing needs.