I am a med student, and as far as I see from our pharmacology lectures, pharmacologists work almost completely experimental. Quite typically they take a substance (e.g., from nature), they add, change or remove some chemical groups, and then they test it (either with high throughput screening or on animals), for example to see whether the new drug is active or not. To me, this sounds a bit indirect.
Ideally, we should know exactly what we are targeting, and then custom-make a new drug. For example, if we know which receptor (the 'lock') we wish to activate or inhibit, why do pharmacologists not simply design a fitting key (a plug to block, or a substrate-resembling activator) to the specific lock?