Programming is most commonly about a software update. Another cases of programming could be flashing with different software in case of tuning, compatibility, retrofit. A software update is not completely necessary, but it's recommended. Sometimes BMW release new software to fix issues. Retrofit is also often required software update.