1. Do build with ‘mobile first’ mantra. Add features and components as required for bigger screens, instead of trying to remove features and components for mobile screens.
2. Do use modernizer.
3. Do test on real devices instead of emulators.
5. Do involve technical members and developers during all stages of the project – planning, design, QA and post-launch review.
7. Don't use a framework unless absolutely necessary. Frameworks have added complexites and code which make it hard to work around and maintain.
9. Don't overuse CSS animations as they are slow on older Android devices.
10. Don't combine features for 'small screen' and 'touch'. They are not mutually inclusive. Always provide non-touch UI fallbacks for touch elements. For example, some Windows 8 desktop/laptop computers are touch-enabled but they are not small screens.