I wish they'd spent less time on the gee-whiz stuff and instead made a more ergonomically sound mouse design. Or added more programmability to the keyboard function buttons. Even better, they could have improved their firmware so the mouse driver didn't take five minutes to load on start up. In short, the modifications of the mouse/keyboard combo add complexity, cost, and points of failure to accomplish tasks that the computer already does -- while performing some of its standard functions less than effectively. ("I don't want to work on the basic functions, that's boring. Let someone else do it.")
Looks like someone in program management lost track of the requirements.
Adding unnecessary features just because you can is sloppy engineering. Mind you, I don't have an issue with redundancy in principle. For many mission-critical systems, redundancy is an essential part of a reliability strategy. I just don't think a desktop clock counts as a mission-critical system (and if I suddenly can't see/access the clock on my screen, I probably have far bigger problems than needing to know the time). Admittedly, the keyboard is new and further investigation may reveal the display to have marvelous functions like acting as a portal to another world. Me, I just want a simple, effective keyboard/mouse.
You can't arrive at your destination unless you know where you're going, which is why setting requirements at the beginning of a development project is so important. The job doesn't end there, though. You have to manage the requirements and avoid mission creep, which can consume significant amounts of engineering hours without, in a case like this, bringing significant benefit to the user. The vow of doctors is first: Do no harm. The vow of engineers should be first and foremost as well: Get the job done. Or, take a cue from Occamís Razor: Choose the simplest solution.
Have you ever been on projects where your colleagues fell prey to mission creep? Where they got excited about adding functionality that the product or system didn't need? Is your philosophy "more is more" or "keep it simple, stupid"? What's your technique for staying focused on requirements and not adding unnecessary functionality? Tell us in the comments section below.
This story was originally posted by EE Times.