editor's blog
Subscribe Now

Building Better Wizards

Wizards are becoming more and more prevalent. Lest you’re concerned that Dumbledore’s relatives are coming to exact revenge, fear not: we speak here of wizards in the GUI (as opposed to gooey) sense. Yes, there are bastions of holdouts that cling to command line interfaces as a measure of their hacker bona fides, but there are solid reasons to like a well-designed wizard.

And “well-designed” is the operative phrase here. You may think of a wizard as no more than a way to simplify processes that could just as effectively be done using the command line if only you were boss enough to remember all the arcane intentionally-obscure commands required to get stuff done. And in some cases, such automation is the goal. But the potential goes beyond that: it’s an opportunity for a world-view transformation.

This is a favorite old topic of mine, but it was refreshed for me while watching a Movea SmartFusion Studio demo: when assembling a sensor fusion algorithm, a wide variety of filters are made available. And I thought, “How do you know which filter to pick??”

Now, you could easily argue that, if you don’t know your filters, then you have no business getting involved in sensor fusion. Perhaps. But really, a designer is interested in a behavior, not necessarily in knowing the details of how that behavior is implemented in some specific algorithm or circuit.

This became really clear to me several years ago on a consulting project where I was designing and prototyping a wizard for a piece of communication IP. The IP was very flexible, so there were lots of options that the user, who would be a system designer, could tweak. The obvious first approach to the wizard was simply to provide option fields for the user to fill in.

Being a communication protocol, it had FIFOs for elasticity; the user could dial up how big those FIFOs were to be. So I put a text field there for the size of the FIFO. But I asked the designers of the IP, “How should the user figure out how big the FIFO should be?” My first thought was that this information would be useful in the user manual. (Stop laughing… I’m sure someone reads those…)

They answered that the user would decide how many packets they wanted to buffer; that and the selectable packet size would determine the FIFO size. Simple enough.

But then I thought, “Wait, why are we making the user of this wizard do some paper-and-pencil calculations before going back to the computer? What if, instead of asking for the FIFO size, we asked for the number of packets?” The wizard already had the packet size somewhere else, so it then had all the information needed to calculate the FIFO size. No paper or pencil required.

Leave a Reply

featured blogs
Nov 15, 2019
As we seek to go faster and faster in our systems, heat grows as does the noise from the cooling fans. It is because of this heat and noise, many companies are investigating or switching to submersible cooling (liquid immersion cooling) options. Over the last few years, subme...
Nov 15, 2019
Electronic design is ever-changing to adapt with demand. The industry is currently shifting to incorporate more rigid-flex circuits as the preferred interconnect technology for items that would otherwise be off-board, or require a smaller form factor. Industries like IoT, wea...
Nov 15, 2019
"Ey up" is a cheery multi-purpose greeting that basically means "Hello" and "Hi there" and "How are you?" and "How's things?" all rolled into one....
Nov 15, 2019
[From the last episode: we looked at how intellectual property helps designers reuse circuits.] Last week we saw that, instead of creating a new CPU, most chip designers will buy a CPU design '€“ like a blueprint of the CPU '€“ and then use that in a chip that they'€™re...
Nov 15, 2019
Last week , I visited the Cadathlon@ICCAD event at the 2019 International Conference on Computer Aided Design . It was my first CADathlon and I was quite intrigued , since the organizers webpage... [[ Click on the title to access the full blog on the Cadence Community site. ...