I use INPA and a K+DCAN cable. My cable was defective, so I needed to get a new one
It gives you the highest level of control over the car, but because it is internal BMW software designed for only a select few group of people to use, it's very clunky and difficult to set up.