In the past I've always been reluctant to use code from other developers. I know it's a cardinal rule that you should reuse existing code whenever possible. However, I've always leaned to writing my own code. I've never liked the idea that there was a piece of code that I didn't know inside and out. It also bothers me when I can't fix something for a client immediately, because there is a bug in a library that I've used. They don't care that the bug is not your fault. Its YOUR responsibility to fix it.
My job description: "Provide the clients with what they want."
That's a pretty broad job description, but it really does sum up what I'm supposed to do. Our clients are not paying us to invent new ways of doing stuff. They wouldn't pay a mechanic to manufacture a new tire for their car.
So the lesson it's taken me so long to learn is that I AM JUST LIKE A MECHANIC!
It's my job to pull existing parts off the shelf and make the car work.
I still have to write the code that pulls it all together. And I will still have to wait for bug fixes, and I'll still have to hear the disappointment in my clients voice when I tell them I can't fix the problem NOW! However, I think it will be more tolerable now.
After all, how many times have you heard "The part is on order?"