I have a mechanical gaming keyboard, not because I'm a gamer, but I did want to tactile, mechanical feel and I like the idea of lights on the keys. I've enjoyed the experience, but the software leaves something to be desired.
I thought about my experience as I read this review of a more complex keyboard, with the title that notes it's so pretty you can almost forgive the software. The poor UI and the complexity of operations, not to mention the splitting of the remap functions being unnecessarily complex. That was my experience as the only thing I cared about was remapping the home and end keys to the places I was used to them being on Logitech devices. I have spent a few hours across the last year learning how to map keys, and then relearning when my profile is lost in an upgrade or hardware glitch.
How much does software matter to customers? I'd argue it is becoming more and more critical all the time. The experience of using hardware, or really any device or service, is impacted by the software that drives it. Software is eating the world, and I think we need to understand that better software design and quality is needed.
I find that the most talented hardware companies sometimes have the worst software. It's almost as if they assume their customers will be as talented as their hardware engineers and don't spent enough time understanding how to better design a user experience for their products. Keyboards, routers, motherboards, and more often use archaic, confusing methods to have customers configure or update the systems.
I know UX is hard. This isn't even about graphics or visual appeal. In many cases, it's about just better understanding of how others view the process and what information they take from what appears on the screen. Over the years I've learned that this is not only hard, but also that it takes time and debate, just like features do. I enjoy these moments, and I like to think that I help my employer produce better software for our customers with my feedback.
I urge developers to have others look at what they present on the screen, and spend time learning from users, both experienced and novice. We often forget how something appears to others when we look at it every day and rush through workflows as we test our latest code. It's easy to gloss over daily changes as minor when the sum of all changes can be a jarring experience for our users after an install or upgrade. UX is important, and it's worth putting effort into our software designs, our data models, even the metadata we expose to others.