You have to be flexible as a software development consultant. You can parachute in at any part of a project, into vastly different company cultures. You have to learn fast, adapt, and sometimes just bite your lip and get the job done.
Looking back, some of my favourite projects were the ones that made good use of prototyping. Not only did this help crystallize requirements, it was also an excellent communications aid for the development team. The saying “a picture speaks a thousand words” is certainly true – a visual prototype is far more effective (and fun) than a 5000 word requirements spec (yes, they still exist).