Think about portability from the beginning of the development cycle. Although this is a standard mantra for software development, it is important that OpenGL application developers in particular be aware of the flexibility of OpenGL and provide a way for their program to gracefully fall back onto an alternative algorithm or exit when a required implementation characteristic is not available.