In the past 5 years, Samsung has invested a lot of effort in creating the team, culture, and processes to become an active contributor to the open ecosystem. Why would a hardware company invest in this? What is the value? How do we marry hardware differentiation with open source and standards?
In this blog post, we try to clarify this. Specifically, we will detail (i) what the Open Ecosystem is for Samsung, (ii) why we believe that openness through standards and open source are important, and (iii) how Hardware & Ecosystem Co-Design is key for being successful as a hardware vendor. Finally, we will (iv) go through the history of creating an open ecosystem team across Samsung and the lessons learned in the process.
1. Open Ecosystem in a Hardware Company?
Before we explain the role of the open ecosystem, we will spend some time defining it. At Samsung, we define the ‘Open Ecosystem’ (usually simply referred to internally as eco) as a combination of Standards, Open Source, and Industry Synergy. A customer solution is then the sum of hardware and eco.
By looking at eco as a combination of these 3 components, we make the upfront decision to see new product features as a combination of a community effort and an internal drive to provide the best hardware solution. When we propose or support new features, we work with peers, competitors and customers in open conferences, boards, and standards bodies to take the right trade-offs so that the final feature can support as many use cases as possible. We then make a commitment to support customers in mainline open source projects, where we push upstream the necessary changes and work with the community to make the code useful and maintainable.
When a new technology arrives, a few pioneers build vertical solutions that tightly integrate hardware and software, providing new features as a differentiating factor at the cost of locking consumers into a single source. However, as the technology matures, the existence of an open ecosystem around it is needed for it to become widely adopted. Let's take NVMe as an example. The earliest versions of NAND on PCIe relied on vendor-specific protocols and dedicated software for operating the hardware. A first mover in this space was Fusion I/O, who produced the PCIe-attached SSDs and the host-based Flash Translation Layer (FTL) on the side. The performance of this solution was unprecedented, as the generally available SSDs communicated through SCSI. As more vendors entered the NAND on PCIe market, the need for a standard arose and the NVM Express (NVMe) Consortium was created. Today, NVMe is the main protocol for PCIe-attached non-volatile media, and the open ecosystem around it ensures that vendors and consumers can rely on a fast, secure, and stable software stack that is able to support the latest additions to the specification. We see this happening again and again across different segments of the industry. We identify 3 main reasons for this:
2. HW & Ecosystem Co-Design
Hardware and open ecosystem co-design is a natural evolution from this mindset. It involves considering the ecosystem around a hardware feature at conception time and defining how the hardware will be supported as part of the business strategy. In order to get to this point, we see vendors having to go through 2 non-parallelizable phases.
The first phase is drawing the line from HW to eco. This is thinking of the open ecosystem as a vehicle to support hardware features. Most hardware companies start their journey in open source and standards this way: they upstream drivers for their SoC, they enable existing features in the drivers managing their hardware, or they contribute newly developed standard features to core subsystems. Most hardware companies understand the value of doing this and in one way or another aim at being part of the open community that enables hardware in their domain. Companies doing this understand that the path to mass adoption goes through upstream linux.
Stopping here brings a couple of challenges:
The second phase is drawing the line from eco to HW. This is defining hardware requirements through the understanding of use cases in the open ecosystem that can benefit for better hardware and software interaction. Here, requirements are brought into the hardware after observing a problem on the ecosystem. The key point here is that it might not be an issue that has been explicitly identified by a customer (and thus requested), but rather a well-understood and established nuisance that would eventually need to be addressed. Thus, there is a need for a strong open ecosystem understanding from within the company, as new features will be implemented in hardware based on this. Moreover, once the ecosystem is part of the product strategy, it is natural to contribute to the well-being of the standards or open source project, even when this benefits everyone as it is understood that they are a key factor for business success.
3. Global Open-ecoSystem Team (GOST)
The remaining question is: How can a large company drive such a significant change in their culture and world view? At Samsung, we built a dedicated group to drive this effort. We call it GOST: Samsung's Global Open-ecoSystem Team. Originally, GOST stood for Global Open-Source Team; as the scope increased to more ecosystem activities, we adapted.
The GOST is a globally distributed team that focuses on different aspects of the ecosystem.
We contribute to a wide range of open source projects including the Linux Kernel, QEMU, and SPDK. Here, we do not only contribute with code and with maintainership responsibilities, but we also put effort in helping drive the community by being part of several open source organization boards, leadership committees, and conference organizational bodies.
Beyond ensuring the high quality of the code, one of our priorities is also the well-being of the people behind that code. The overall open source community is primarily a great place to work, and while we are sometimes in the spot for heated conversations, we see this as a consequence of two things: (i) the pressure that our maintainers carry, dealing with hundreds of daily patches and ensuring that projects are driven forward; and (ii) the fact that we carry all conversations (also difficult ones) in the open. Given this context, we do spend time on mentoring new members (inside and outside of Samsung) in how to get started on contributing and dealing with harsh code reviews.
As a highly distributed team, we have presence in Korea, USA, India, China, Israel, and Europe (through Denmark), which follows some of Samsung's largest development hubs across the globe. We believe this is key to the success of our ambitious ecosystem vision because of 3 main reasons:
4. What's next? Any joiners?
For us, the next step is to continue doing what we are doing, while growing the team to different areas. We are fortunate that Samsung is a large company with many business units that can benefit from understanding and contributing to the open ecosystem.
As for next steps externally, we hope to see more hardware vendors be active in standards and open source. It is quite often that we meet industry colleagues at conferences that praise the work or report upstream issues for work that we and others have done. While we are happy to see our community efforts recognized and enjoy fixing issues reported by the community, we would hope that their companies decide to participate actively and bring the conversation to an open forum. This would help many more technologies to be successful by mitigating the echo-chamber and industry misalignment issues discussed earlier in this post. If nothing else, we hope that this post provides a blueprint for how to get started.
Finally, this blog post is the first one in a new blog initiative within GOST. We plan to post about technology that we deem relevant, with a focus on the open ecosystem. We plan for in-depth posts at a 6 to 8 week cadence. If you think this is interesting, stay tuned!