Many of those who use .NET, Delphi and other development tools, sooner or later faced with the choice: to develop something missing themselves, or to get ready? And with peace of mind went to write their own components, unpleasantly struck by the value of existing ones. And is their price really that big? Here is a little story that made me look at the cost of components with different eyes.
One day, a friend of mine who developed software for a small business asked me the following question: “How long do you think it will take to write a grid with sorting, grouping and the ability to edit records?”
At that time, I had been working for DevExpress for several years and more or less represented the amount of work, and it was not difficult to tear myself away from the chair and reach the authors of XtraGrid to find out their time estimate.
We agreed that if you write from scratch, then something will start working only in about 3 months - and even then, the resulting control will have to be filed for a long time and edit the bugs in it. I informed this information to my friend. Then I asked if he had a desire to reinvent the wheel once again and whether it would be easier to buy a ready-made grid, our XtraGrid, for example, or any other one that suits functionality. His answer surprised me a bit: “It’s nice to buy, but how can I explain to my superiors that you should buy a finished product and not write your own?”
“And really why?” - I thought. Half a minute of thought led me to the answer that it is simply more profitable. Having specified the size of the salary of a friend, I laid out my argument. And she was very simple.
Let the programmer's salary be $ 1000 per month. At the same time, it will spend 2-3 man-months on the independent development of the control. Total $ 2000- $ 3000 salary costs only. Plus, the further development of the control and the correction of errors in it will also take some time. In addition, the customer will receive the result no earlier than in the specified 2-3 months.
And you can use $ 1000 to purchase ready-made components and spend a couple of weeks studying and integrating them into the program. The total is $ 1500 and the result is 2 weeks. Profitable? In my opinion more than.
Of course, in each case, the estimates of time, and hence the benefit, will be different.
There are some risks in using third-party components, for example, that the task cannot be solved with their help, or there are bugs in components that the manufacturer is not in a hurry to fix. Therefore, before buying, it always makes sense to test the components, since all their manufacturers provide a sufficient trial period of use and / or “money back”. Download the components and make a trial solution for them in a couple of days. If all is well, then it is likely that your choice is successful.
If you are afraid that the manufacturer will be too reluctant to correct errors or add new features and you will not be afraid of making changes to someone else's code, then you can consider the option of buying components with the source code. This is somewhat more expensive, but you have more room for maneuver.
Take a look at the documentation that comes with the components. We all do not like to read the documentation, but nevertheless, it is most often possible to find answers to a large number of questions. Good documentation contains not only a brief description of the properties and methods of the components, but also overview documents describing the architecture of the components, recommended approaches to their use (best practices). A large number of code examples in the documentation, both simple and more complex, is also a definite plus.
It also makes sense to pay attention to the quality of the support service of the component manufacturer. A good support service will respond to your question promptly, and the solution will give the right one. In cases where there is no simple and direct solution, they will offer you an example application where your task is implemented or similar to it. And if that didn’t help either, they will try in every way to find a workaround to solve your problem.
So evaluate the work, download different components, compare and decide.
Good luck with your choice!