The number of times I've coded this out for friends in less than 10 minutes... it's pretty insane. Imagine if I charged for this, $50 for a 10-minute job...
So let that sink in as to why you should do it yourself.
And ProTools, as mentioned by everyone, is an invaluable tool to have for a DIYer, on-track aid, and overall any BMW owner.
Although one thing to note: sometimes coding can cause your FRM to brick. Not to scare you, it's a small percentage, but just being transparent about it. The FRM is not a vital module for vehicle operation (starting the engine, driving, etc.), but it does cause some annoyances, such as windows won't roll down, doors don't lock, etc.
This can be easily fixed!