I am trying to find symbols for hardware elements which are not usually visible and do not have AFAIK a more recognizable symbol, such as caches, pipelines, etc.

It's in the context of a hardware-oriented application, so it does not need to convey the information for any kind of people, but for those which already expect such icons to exist.

I wonder if using symbols related to the usual meaning of the words (e.g. an industrial oil-like kind of tube to represent a pipeline, a weapon to represent a "(weapon) cache", a small branch to represent a branch predictor, etc.) would be appropriate, or if there are rules which state such kind of "metaphors" detract from the design. I am concerned some users might consider it as derisory.

3 Answers 3


From user experience, I would not recommend to use metaphors in specialized software. Users need to be concentrated on specific tasks and metaphors require some mental work which can be distracting. For sure, people can addict to anything and don't pay attention anymore, but I think more "clear" icons will increase usability.

  • If I understand it correctly, you are suggesting I should use more "abstract" icons which are not really metaphors, such as the ones illustrated by @cockypup?
    – DanGar
    May 27, 2014 at 10:15
  • Yes, abstraction is more preferable than unfamiliar metaphor.
    – Vnovak
    May 27, 2014 at 10:23

I don't think using a metaphor is a bad idea. Metaphors have been used historically on software developing tools. Processes like "compile" or "debug" and and virtual objects like "stack" or "cache" have to be represented by a metaphor because they do not have a real shape. Industrial metaphors like the ones you mention in your question are very common on the software industry (gears, crates, funnels, etc). Silly ones, like crushed bugs for "debugging" are not uncommon.

IMO as long as the design and metaphors are consistent and belong more or less to the same "domain" they would be beneficial, particularly if they are used to help the user locate a specific item without the need to resource to (reading) copy. It is true that they will require an initial learning effort from the user but eventually they will improve the user's productivity. I would accompany them with the copy, though, or make it optional (show only icons / show icons with label / show only label).

Inspiration (and disclaimer): some of the icons from MS Visual Studio 2012. I apologize for the bad screen grab. I have no rights to these icons. Shown only for illustration. The complete library (and copy right info) can be downloaded from here:


enter image description here


As one of your possible target audience, I would say you have to be very careful, and very very explicit.

For example, debugging can be a no sign (as with the ghostbusters) and some kind of bug ---I think this is the actual sign that Internet Explorer had long time ago. Don't over do it like a Baygon spray can. In this sense, I concur with @Vnovak: software is already complicated enough for adding an extra "thinking" phase.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.