Thursday, March 20, 2014

Thoughts on Open-source Product Development

Since the early days of computer and networking development in the late 20th century, the open-source hardware and software movement have become a growing force in the world of agile product development.

Using such open-source methods may seem to be a great idea, however there are some potential advantages and disadvantages of choosing to use open-source software and hardware – both using other people's existing open software or hardware technology, or releasing your own intellectual property as open-source software or hardware for use in the development of Internet-of-Things solutions. What are some of the potential benefits and challenges associated with open source?

For some proponents of open source technology, the most important advantage of open source technology is that it is "free as in free speech", and this means that software, updates, or other technology or support cannot be withheld by some company - just because it decides that you shouldn't be using their software any more for whatever reason; they can't just take their ball and go home.

With open-source software or hardware nobody can stop you from using it down the line, and there is at least some form of future access to the technology, even if it is obsolete, less popular or less well supported in the future.

Another key selling point often associated with open software or open hardware is that it is often, if not usually, free as in zero money. Sometimes developers or software vendors may provide an upgraded product, special features or special paid maintenance or support for an open source product - where these special features are commercialised on top of an underlying open-source platform, but generally the underlying open software or hardware technology is freely available for you to work with.

With modern Internet bandwidth, free software can easily be distributed in minutes via Internet download, without the cost of distributing or producing physical disk media. This makes it possible to get free software into the hands of users cheaply and conveniently, which is obviously good for the user, but also good for the software developer because new software can reach many users much faster, getting used in people's hands sooner and with much greater potential uptake. This can be particularly attractive to small, independent developers.

Obviously in the case of Open Hardware this is a little different, since hardware still costs money to manufacture. However, Open Hardware generally means that design information such as schematics or CAD/CAM design files are freely downloadable for users to look at or potentially incorporate into modified versions or their own electronic designs.

This re-use of existing designs and technology, if you're happy with the terms of the open-source licenses that may be used, can make design and prototyping faster, potentially getting your product to market (or a potential product or prototype ready for the investment or crowdfunding stage) that much faster.

In many cases, an open source software or hardware project is developed by one person who is often frequently directly accessible to users for direct advice or support. Many authors will provide helpful, patient support – often with a direct level of technical literacy that you're often not likely to get from commercial "user support" staff reading from a script. 

Even if you can't talk directly to the developer, many open source software or hardware projects will have some kind of associated mailing list or web forum for community discussion, where other users or developers can help you out with advice and support.

Open source software and hardware allows you to get "under the hood" with the design details in a way that you can't with proprietary technology. This means that you can inspect the engineering, fix problems, identify potential vulnerabilities, and extend or modify the engineering to suit the needs of your application. This is clearly in contrast to closed software or hardware where you are basically at the mercy of the commercial developers when it comes to future development suggestions, security advisories or bug fixes.

One argument in favour of open source technology is that it can be more secure – with many developers and users looking over the source code, security vulnerabilities become much more visible. Whereas closed source software depends to some extent on "security through obscurity", open source software brings with it an expectation that having lots of users and developers looking through open-source code, maintaining, developing and tweaking it results in better, more secure software - where potential vulnerabilities are detected and corrected.

Applying this sort of "peer-review" to open source software means that the white-hat hackers are able to keep ahead of the black-hat hackers – or, at least, any unfair potential advantage that the black-hat hackers have is minimised.

Nevertheless, we must recognise that this applies a bit differently to hardware than it does to software. If a security vulnerability is discovered in a piece of software and it is openly discussed, a patch can rapidly be developed to correct it and deployed freely to everybody using that software, quickly and easily, thanks to the Internet.

However, if a security vulnerability is discovered in some hardware system which is used by tens of thousands of customers worldwide, what happens if it is not possible to deploy a software or firmware update to correct the problem?

If fixing the vulnerability requires actually buying new hardware to replace an otherwise mostly functional hardware device it is clear that customers may be reluctant to do this, and many systems may be left insecure. In such a situation, if a security vulnerability is discovered and discussed openly then this can easily have more negative effect on security than it does a positive effect, at least in the short term, or in small businesses or home environments where the hardware upgrade may be financially prohibitive.
Another potential advantage of open source technology is that it encourages commercial technology companies to try harder to make their own offerings more attractive, and it encourages innovation and competition – especially when the agility and speed of development by individual open source software or hardware developers, or small businesses, is taken into account.

Open source technology raises the bar, effectively, by saying to customers that this certain set of functionality is what you can get "free as in free beer" - and, to be honest, this is as far as it needs to go for "open source motivation" with some customers. This sends a message to commercial vendors that they may need to offer superior functionality, superior support or usability in order to remain competitive with open-source offerings.

Commercial developers can't rest on their laurels, and are constantly motivated to innovate and improve their product. Otherwise, an open source product will come along that eats their lunch – as long as it is providing a comparable level of quality, usability and support.

On the other hand, smaller existing commercial hardware or software offerings may not be able to compete with a product that is available for free, and some may argue that open source competition can create a situation to anticompetitive "dumping" - dumping a whole bunch of product on the market at low or no cost in an effort to drive prices down, potentially forcing competitors out of business.

Thus when considering the use of open-source technologies for your next product design or iteration – there are many perspectives to take into account. Do you keep your product “open” and take advantage of the cost savings – but risk higher levels of competition? Or do you work with a closed or existing commercially-available ecosystem?

There's much to consider, and if you're not sure which way to turn – the first step is to discuss your needs with our team of experienced engineers that can help you in all steps of product design, from the idea to the finished product.

To get started, join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

No comments:

Post a Comment