For sure INPA, NCS expert and ISTA D/P
Those are the official factory software tools.
They take a bit getting used to and installing is a process in itself but there are loads of tutorials on the web/various bmw forums, so all you need is a bit of time/patience. The software can be had for "free" on the web in various places but of course its all pirated, so never pay for this software.
INPA and NCS expert are the software tools from back in the day (and prefer running on 32 bit OS), ISTA D/P is a more modern program and maybe easier to use. INPA and NCS expert give the most functions coding your car and diagnosing (NCS expert is coding, INPA is mainly diagnostics)
An interface cable can be had really cheap on aliexpress for around €10 incl. shipping:
https://www.aliexpress.com/item/33048882754.html
(obviously there are loads of listings, you might find a cheaper one. Look for one with the little switch in the middle)