When I was consulting I took a plunged and "invested" in $5,000 PCB tools. As someone starting out, it was a big financial hit and I could have gone with something low cost for 1/3 or less that price.
However, that tool easily paid for itself in terms of increased productivity and likely less mistakes (which upset end customers even if they do not have to pay for them).
I recently contracted someone layout work but had to use a clients preferred consultant. Unfortunately, this consultant had tools that were older and less capable than what I would expect. It took him twice as long to do the job with less suitable results and will cost the customer more in terms of long term support.
It is the same issue with open-source. It's cheaper up front, but what about in the long run?
For most successful products, development costs are just a fraction of the lifetime costs. Lost opportunity cost from being late to market can easily swamp development costs as can ongoing support costs.
Engineers (and Engineering managers) need to think like business people and cost out not only the development but the product costs and work with sales and marketing to understand the negative value of schedule impacts.
I agree, up front cost is only part of your decision space. Opensource is a great way to get started, but you might find yourself in an endless update cycle with unstable capabilities.
Commercial tools might have a higher initial cost, but they usually come with support, tutorials, manuals, and all of the little things that make a tool indespensible as part of your working environment.
If your tool needs are consistant, then buying quality is usually the least expensive way to go.
Just my opinion.
Open source doesn't necessarily means less quality !
Here I'm not talking about production tools like PCB routers, I'm talking about RTOSes, application software, drivers.
Open source in that case means you may need more time to "learn" about the code as documentation is often not as good as commercial opaque libraries.
My vision is that learning is never a waste of time. For the first time use you may need some more time to understand the code. You will save that time in next project if you use the same code or achitecture.
There are companies that provide bad quality libraries without source code, or the product may not match all your needs.
You will need time to evaluate this quality and adaptability to your needs before buying, at the end of evaluation time, this time is really lost if you don't buy it for some reasons and choose another provider.
With open source this time is not really lost because it's part of the learning phase and it will help you to correct/improve/adapt the provided code to your specific needs.
There are also bugs in commercial software. What about if your company is too small to force the provider to correct the bugs in time ? With open source code, you just correct it yourself and/or ask the community.
In my opinion, if (open source) software is not well documented, it is just not used. Nobody would like to study thousands of lines of code. Time is money! But thank God, most open source libraries have a good documentation.
For small endeavors, open source can essentially extend your team. Here's a very recent and specific example.
The stability of open source is highly depending on how long the project has been around. There are widely used softwares which are started out as open source and some of them are still open source. Linux is the most obvious example.
However, there is free software or application. There might be not talent available to support it. So, on one hand, company saves money on buying a software. On the other hands, company might have to spend more on salary.
Leveraging open source is a good idea. The company has to just prepare for the long term development of the team to support and maintain the application. IMO, open source isn't really a free lunch. Yet, it can be the core of a successful company.
I would like to offer this analogy when comparing open source software to commercial software:
When you want to go swimming, you have two choices. Go to the beach, lake, or swimming hole (open source software), or pay to go to a municipal or privately operated swimming pool (commercial software).
When you go to the "beach" you get to swim, but you get sand in everything, and you have to wash off the salt water, or dirty water (extra inconveniences) afterwards, but you get to play by your own rules as long as you don't break the law.
When you go to the swimming pool and pay, all of these things are taken care of for you. You just have to follow the pool rules (no diving, running etc.).
If you don't have much money to spend on tools, you tend towards open source as that is the only way to get things done. It's going to take more time, and there will be inconveniences but you accept that. However, you are not subject to the manufacturer asking for recurring fees to keep the maintenance up to date, and your designs will be able to be used by the software without licensing headaches.
If do have money to spend on tools, then you spend it knowing that you are going to be more productive and the investment will pay for itself. Just be prepared to pay more on a recurring basis to keep the maintenance/licenses active.
If time is the significant driver and there is money to spend on software tools, then it is foolhardy to use open source tools, as your customer/client is not going to tolerate any delays due to tool issues.
If your project is not operating within severe time constraints and there is little money for tools, then it is worthwhile looking at open source tools to get the job done.
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...