In my job as a developer, I get to talk to all sorts of people. And one of the conversations I seem to have a lot lately is "build vs buy", especially when it comes to custom applications.
When developing a new application, I try not to reinvent the wheel, for example, if the application requires extensive charting capabilities, I will look for a third-party charting component to buy and integrate. If the application requires a more polished user-interface, I will buy a set of icons or a UI component to deliver the required user interface.
What I can't understand is the growing number of developers who are adamant against buying components, preferring to build them from scratch. In this day and age of rapid application development, shortened project timelines and time to market, you need every advantage you can get. And third-party components for .NET, JSP, etc. provide the ability to quickly create applications without a lot of intensive coding required for common components.
It often comes down to a cost/benefit exercise. A charting component, for instance, may cost you $600 for a server license and provide about 90% of the functionality required. I have seen developers decide to build their own because the component didn't support "hi-low, three-dimensional bubble-charts". So a component that could have cost them $600 can easily cost them $10,000 and up. And most times, the not-to-funny end of the story is that the end-user really didn't need a three-dimensional bubble-chart, when a plain old bar chart would have done nicely.
So the next time you are tempted to create your own custom component, have a look at what is already out there and see if you can save yourself some time and money. And if it is not a 100% fit with your requirements, look at the requirements again. Often the time you spend investigating the features available in a component against the real project requirements will pay off in the long run.