Krzysztof "Chris" Bosak made some important and interesting points regarding the effect of open source on the overall health of the industry in a comment on another thread yesterday, and I thought they deserved to be discussed more fully (although there are many good comments in that thread, and I'd encourage you to check out that, too). So I'll give them their own thread, starting with my own thoughts.
First, here are some key points from Krzysztof's post:
"Marketing that you can make Ardupilot for $25, $50, $100 is like making the others look like the monsters of greed, while declaring the work of software developer is worth NULL, while not necessarily leading to the creation of competitive product in the long term."
All this has one effect: creates artificially crafted virtual reference point for price,that is used to dramatically weaken the public perception or the makers of complex electronics, without even making the makers of cheap solutions incredibly rich. At the end there is no progress, as the advance of open source is usually quickly swamped by absence of professional regression testing and all the things nobody would do for free."
At the same time, I noticed a New York Times article today that suggest that almost nobody has found a successful business model for open source. Together, these raise the question of whether open source does more harm than good to innovation, and whether it will ultimately lead to a sustainable industrial model for consumers and developers alike.
Needless to say, I believe that the open source development model, while not perfect, is the best one for overall innovation. But Krzysztof raises some valid concerns, which I'll tackle one by one:
1) Claims by open source developers about features and pricing tend to be unrealistic and serve to kill demand for higher-priced commercial products. I think there's some truth to this. Because open source development is done, by definition, in public, there is a lot of discussion about the broad ambitions of the project in the early stages, both to attract participation and to define the broad scope of the project. Not everything an open source project sets out to do is ultimately achieved, as the developers get into the hard work of executing. In contrast, commercial projects are usually developed in private and only revealed when the feature set is pretty much confirmed. The consequence of this is that the entry of an ambitious open source project can "freeze the market" while people wait to see if they can deliver. This is not good for the more cautious commercial players in that space.
As for pricing, open source hardware projects tend to be on the far low end, due to a general philosophy (which I share) not to charge for intellectual property. Our own policy is to charge 2.6 times the cost of the hardware (this allows one 40% margin for us and another 40% margin for our retail partners), but some other open source hardware companies charge just 1.5x cost. It's very hard for those who charge for intellectual property to compete with these prices.
2) Open source tends to "de-monitize" a market, eliminating the potential for anyone to make money. In the short term, this can certainly seem to be the case. But if you believe in demand elasticity, as I do, you would expect the lower price to vastly increase demand, growing the market for all. So it's a tradeoff between high margins and high volume.
In the case of ArduPilot, where the core board costs just $25 (something Krzysztof objects to, because it sets a consumer expectation that autopilots should be very cheap), we have sold about 2,000 boards this year, which makes it the best-selling amateur-level autopilot in the world by a wide margin. Although nobody make much money from those boards, the economic value around all the other parts you need to create an functioning autopilot is significant. Say there are now 500 complete ArduPilot systems out there now. That's about $800,000 in total spending (between us and our partners). Assume total margins (between wholesale and retail) are around 50%, that means $400,000 of profit in the first year. I suspect that's more than any of the commercial autopilot companies in this space can claim. Because you're charging for "atoms", not bits, open source hardware can be profitable in the way that open source software cannot, because the customer relationship starts with the assumption of paying for something.
3) Open source can't create products of equal quality to closed source, because nobody's getting rich. I think that Firefox, Linux and MySQL users would disagree with this, as would I. It's true that many open source project never achieve professional-quality polish, but that's mostly an issue of poor project management and leadership. I think you only have to look at the work HappyKillmore did on the ArduPilot configuration utility, or how Mike Black improved our GCS to see this: I'd argue that both are better than any of the ground station and configuration utilities from the commercial players in our space (and some, including Flexipilot, don't have groundstations at all). Note that these contributions were made not because someone was getting paid, but because the contributors had their own reasons to want better software. And because we set an open source standard, they chose to share their work so that others could build on it.
So, to sum up: I understand why commercial developers dislike the entry of an open source project into their market and hope it will fail. But the trend lines are clear on this one: open source is here to stay and is spreading, mostly because it leads to more, cheaper products faster. ArduPilot, for example. went from concept to maturity (with the 2.5 code, now in the hands of beta testers) in a year, including a full suite of supporting tools. There is no commercial autopilot that has come close to that speed of development. And as the DIY Drones community grows and our tools of group development improve, we are extending that to a host of new products created by the members here. To hire this many engineers would be ruinous, but by creating a community of shared interest and a culture of collaboration, we can do so at almost no cost at all. It's really quite magical.
Can commercial companies compete with this? I think they can, by offering more "plug and play" solutions, as Krzysztof has done with EasyUAV. Don't try to sell expensive apples to compete with our cheap apples; instead, sell oranges, with shiny bows on top. There's a market for both, and I think commercial developers would do well to find ways to do things that open source can't or don't do well, rather than just wishing that we'd go away.
Lived through the 1990's open source boom, made a few open source products, worked at VA Research/Linux/Software & then Pioneer, all of whom tried to survive on open source software & support but eventually ran out of money.
Not sure hardware can ever be open source any more than in name. You have to pay to copy hardware. It's like calling moon rocks open source, but then there's the shipping.
In terms of open source affecting progress, how many breakthroughs are still being made in operating systems, databases, web browsers, & web servers? That stuff got germane real fast. Then there's the famous example of everyone who wants a feature getting their feature.
That's true open source. More project management and leadership can fix anything, but then you're not open source anymore.
It would be a good excercise to go cold turkey & make the Ardupilot system do everything on Linux it does in Windows. No Labview, .NET, Windows, Eagle, or X Plane hacks. Just pure open source from the operating system up.
Yes, you are correct. But much like a relay race, one person runs while the rest of the team waits. I don't have a solution to make things work better. It just requires project management.....
@Happy , IMHO relay race gets you even further/distance than single racer. You might have stopped working coz there was only one development thread but as in case here in this forum, the development of other support/ancillary components like GCS , logging, display softwares, replacement/alternate, protocol testing, documentatio, product testing were/are being done in parallel and therefore many more things got developed faster(development cycle). Not every participant is good with one part (or complete) of product development and so if you were to develop every part of a complete project/product , it would definatly be slow due to depencies as in case you refered. ,also a single developer might over look few bugs,issues etc and so for him/her to debug the whole software would take couple of revisions which in turns equates to the same amount of time you refer to as " move forward slowly". Progress in this case IMHO should be not be calculated/deduced as one individual developers's attention/time spent to development process. While you were waiting for Jordi's part to come , the project/ source for config tool Progressed. Don't you agree. Cheers:)
It might be most honest to directly admit that Open Source is a means to circumvent Laws.
Which laws? FCC, Weapons Exports, FAA, Patents, and taxes etc...
Since anything with a microprocessor emits radio waves, the FCC requires a $10,000 dollar approval process for every version of an electronic device. - This is far too expensive for the "Long Tail" economy, or even for the kind of organic product growth of which new jobs are made.
In an age of IED, almost any technology from garage door openers to cell phones is a potential weapon - so exports are heavily restricted.
The FAA is beyond backwards, and doesn't even deserve a one sentence explanation. Suffice it to say your kids job is being exported to some other country as we speak. The country which allows new technologies will have jobs in the future.
Patents. Honestly, does anyone even check to see if there are stepping on a patent in Open Source? Mostly not I suspect. And if an infringement occurred, who would you sue? Open Source creates a nebulous legal target - often international in scope.
Taxes. Open Source is barter; it's a clear quid pro quo; but it's too unlike historical business models to be taxed. (Sales of hardware, rendered cheap through Open Source is taxable, but the IP premium price and taxes are "lost").
So I submit that Open Source is more efficient than the laws it circumvents. The reasonable reaction for government is to recalibrate regulation to be competitive or suffer the lost taxation and absence of IP reflected in GDP.
I do like to see my name in print :) Nicely put Chris. Open source is a difficult prospect for me since it had lots of additional work involved to make it that much easier for someone to steal your hard work.
When you release open source, you can't use 3rd party tools. I've paid for a few items that make my life easier. If I release a project as open source, I can't use any of these tools because I can't distribute the license codes for the developer's kit.
Additionally, I then get more questions (this is in some ways a perceived problem than a real one). If people are diving into my code, then there may or may not be people who don't understand it. I've always been opposed to commenting my code because it takes time, but believe me, I've needed Jordi's comments MANY times in the ArduPilot code. So there's more time spent there.
Finally, there's the issue of working with others. If you're working with other developers around the globe, I think things can move forward more slowly than if there's only one developer per "project." Granted, two heads are better than one, when I sent Jordi the source for the config tool, I stopped working on it completely until I got it back. No more progress on my part because merging the two project back together would be too much of a pain.
Comments
Not sure hardware can ever be open source any more than in name. You have to pay to copy hardware. It's like calling moon rocks open source, but then there's the shipping.
In terms of open source affecting progress, how many breakthroughs are still being made in operating systems, databases, web browsers, & web servers? That stuff got germane real fast. Then there's the famous example of everyone who wants a feature getting their feature.
That's true open source. More project management and leadership can fix anything, but then you're not open source anymore.
It would be a good excercise to go cold turkey & make the Ardupilot system do everything on Linux it does in Windows. No Labview, .NET, Windows, Eagle, or X Plane hacks. Just pure open source from the operating system up.
Which laws? FCC, Weapons Exports, FAA, Patents, and taxes etc...
Since anything with a microprocessor emits radio waves, the FCC requires a $10,000 dollar approval process for every version of an electronic device. - This is far too expensive for the "Long Tail" economy, or even for the kind of organic product growth of which new jobs are made.
In an age of IED, almost any technology from garage door openers to cell phones is a potential weapon - so exports are heavily restricted.
The FAA is beyond backwards, and doesn't even deserve a one sentence explanation. Suffice it to say your kids job is being exported to some other country as we speak. The country which allows new technologies will have jobs in the future.
Patents. Honestly, does anyone even check to see if there are stepping on a patent in Open Source? Mostly not I suspect. And if an infringement occurred, who would you sue? Open Source creates a nebulous legal target - often international in scope.
Taxes. Open Source is barter; it's a clear quid pro quo; but it's too unlike historical business models to be taxed. (Sales of hardware, rendered cheap through Open Source is taxable, but the IP premium price and taxes are "lost").
So I submit that Open Source is more efficient than the laws it circumvents. The reasonable reaction for government is to recalibrate regulation to be competitive or suffer the lost taxation and absence of IP reflected in GDP.
When you release open source, you can't use 3rd party tools. I've paid for a few items that make my life easier. If I release a project as open source, I can't use any of these tools because I can't distribute the license codes for the developer's kit.
Additionally, I then get more questions (this is in some ways a perceived problem than a real one). If people are diving into my code, then there may or may not be people who don't understand it. I've always been opposed to commenting my code because it takes time, but believe me, I've needed Jordi's comments MANY times in the ArduPilot code. So there's more time spent there.
Finally, there's the issue of working with others. If you're working with other developers around the globe, I think things can move forward more slowly than if there's only one developer per "project." Granted, two heads are better than one, when I sent Jordi the source for the config tool, I stopped working on it completely until I got it back. No more progress on my part because merging the two project back together would be too much of a pain.