Statistically, the best heart surgeon is the one with them most computer game experience. See http://www.springerlink.com/content/a63nx82mbq2g37b4/
Surgery is just hand-eye coordination, so a specialist should be better.
But for a lot of problems, a good GP can be better than a specialist. Specialists will tend to over-diagnose and over-proscribe within their own field. If you see a psychologist, you'll get psycho-therapy. If you see a psychiatrist, you'll get happy pills. A good GP will recommend surgery, medication, lifestyle changes, or whatever else is most likely to work.
That said, a bad GP will give you a script of antibiotics, and tell you to come back if the symptoms persist.
(Disclaimer - I'm not a doctor, but I'm related to a GP).
i've always considered overly complex encryption models a waste of time - private and public key encryption should be simple and strong. bob uses the public key to encrypt a message that only alice can decrypt with her private key, i think where pgp lost it's way is getting too worried that alice wasn't who alice says she is. technological answers to this question is always a big fail.
at the end of the day, you have to trust that alice is in control of her private key. if you have something sensitive enough that any possibility that this isn't the case is unacceptable, you need more then pgp.
Do not underestimate the value of print statements for debugging.