The benefits of open source software collaboration over proprietary black box enterprise products have been well understood and popularized. However less has been said about the benefits of professional open source software collaboration. The keyword professional is important because it distinguishes care-free open source community development, forking and experimentation from commercial grade software covered by legally binding warranty, indemnification and liability terms.
Telestax is a proud user and supporter of both community open source collaboration as well as professional open source collaboration. Telestax is the main sponsor of Restcomm – the #1 Open Source Cloud Communications Platform. The company also offers a suite of commercial grade products under the Telscale brand, which are based on the Restcomm source code. While Restcomm projects are licensed under AGPL. Telestax has the exclusive rights to license derivative Telscale products under terms suitable for a range of commercial applications.
As a company policy, Telestax makes the source code of its Telscale products available to customers. In the spirit of open source, Telestax encourages customers to collaborate with both the Restcomm community and with the Telestax engineering team. Each has different benefits:
- Participation in the Restcomm community projects, mailing lists, IRC, Stack Overflow and other public forums allows our customers to understand the underlying technology and influence roadmap direction.
- Participation in the Telscale development effort allows customers to develop operational expertise and confidence in their ability to properly use the software, diagnose issues, suggest fixes and improvements that help the production deployments of their applications.
The following diagram illustrates the approximate code contribution model based on the original blog by Vincent Driessen:
- Bug fixes – customer identifies a bug in the code and provides a test case to reproduce it. In this case the Telestax engineering team reviews the test to ensure that it properly uses the APIs. If the customer also provided a patch, the Telestax team reviews the patch to ensure that it indeed corrects the behavior of the product without introducing undesired side effects. If patch was not provided, the Telestax team writes it. If all looks fine and regression tests pass, the patch is applied and rolled into the next upcoming maintenance product update. All customers benefit from this fix.
- New features – customer requests a new feature or enhancement to the Telscale product. This can split into two routes:
- New features or enhancements that are aligned with the product roadmap and would benefit majority of customers. In this case we engage in a constructive design discussion about the best way to meet the requirement. Once we agree on design and main goals for the improvement, the customer can choose to either implement entirely with their resources or engage Telestax to help. We referrer to the latter as funded roadmap development. Depending on the agreed terms, Telestax or a certified partner does some portion of the development, testing and release work.
- New features or enhancements that are custom, outside the product roadmap. Such features either break API contracts or introduce behavior that will not benefit the majority of customers. For this type of requests Telestax does not accept modifications to the code base. Instead we work with the customer to design a clean API or SPI (service provider interface) in the code that Telestax will maintain as part of the Telscale product and would allow the customer to build their desired extension in a way that it can achieve the desired behavior only by interacting with the newly designed interface without any further modifications to the Telscale source code. This approach allows 1) the customer to achieve their own goals without having to maintain a complete fork of the product; 2) no other customers are affected by the particular extension.