I highly recommend the current programming and coding software used by BMW dealerships - Integrated Service Technical Application
Programming (ISTA/P) and diagnosis (ISTA/D). Here is the detailed documentation for how to use it for programming and coding.
http://www.meeknet.co.uk/E64/BMW_Int...pplication.pdf
And here's the diagnosis counterpart of ISTA - ISTA/D. It's pretty straight forward but here's the detailed doc:
http://www.carhealth.ru/images/PDF/istad_en.pdf
If you have to use NCSExpert, there's ncsdummy which makes using it easy.
http://www.bimmerforums.com/forum/sh...-of-NCS-Expert. There're some things that ISTA (or for that matter the prior generation SSS) cannot do, e.g. it cannot setup door autolock when driving off on my 1997 E39. It says the feature is not available on year model of the car (indeed it's not officially from factory for USA models of that year), but NCSExpert happily configured it - go figure.