Hardware-centric platforms and solutions were traditionally designed with minimal input from software engineers. As Brian Bailey of Semiconductor Engineering recently noted, this approach worked when software content was negligible – and the practice did not significantly contribute to product delays.
“Over time, the software content grew and today it is generally accepted that software accounts for more product expense than hardware, takes longer and adds a significant, if not the majority, of the functionality,” writes Bailey. “Software has [now] become so important that hardware is often seen as the platform needed to optimally support the software.”
Bob Zeidman, president of Zeidman Consulting, expressed similar sentiments.
“Software functionality will determine hardware functionality instead of the other way around,” Zeidman told the publication. “You’ll design software and give performance constraints like cost, power consumption, memory size, and physical size, and the tool will build the hardware design to meet your constraints and run your software.”
Eliott Jones, Rambus VP of User Experience (UX) Eliott Jones, concurred.
“At the end of the day, the product administrators, technicians, and end users engage modern products at the software level. In effect, that experience IS the product to them. What began really with the introduction of the Macintosh way back, where the abstracted layer of the UI was ridiculed by ‘real developers’ has in today’s world of Cloud- and service-based applications become the norm,” he explained during a recent interview with Rambus Press in Sunnyvale. “Whereas traditional hardware survived by being rigidly defined in its function, modern hardware product designs are inherently more versatile, enabling and requiring much more active participation and adaptation to user operation. The outcome is that the software enables user operations to define much more of the total product offering.”
According to Jones, realizing the full potential of a hardware-centric solution is difficult without the inclusion of a well-defined software layer.
“This layer should be built around an intuitive UI that allows the user to easily interact with and act upon meaningful data,” he said. “Historically, most hardware-based products started from the ground up with an emphasis on pure engineering. However, industry expectations have steadily evolved over the years, with enterprise UX standards being set by consumer devices like smartphones and tablets.”
Usability, says Jones, is currently both a key requirement and differentiator.
“Because there is so much data to capture, understand and act upon in today’s world, creating a user experience that distills the data into what’s important at a glance is paramount. The structure and design of controls in software is critical to allow users to understand the meaning of information and to respond to it quickly,” he continued. “Think of it as the difference between a standard BIOS screen circa 1995 – keyboard arrows and all – and a Google Analytics dashboard in 2015. Clearly, software is now a primary, rather than tertiary concern. From my perspective, it would be difficult, if not impossible, to demonstrate a hardware-based platform to potential customers without a truly integrated software layer.”
As Jones points out, that is precisely why Rambus engineers have adopted holistic design cues from consumer-centric products when coding the software for the company’s CryptoManager and DPA Workstation (DPAWS) testing platform.
“As an example, both DPAWS and CryptoManager feature an intuitive UI that integrates advanced visualization capabilities. This helps increase the efficiency of side-channel analysis for the former, while optimizing the Security Engine and related Infrastructure for the latter,” he added.