What is the difference between "Deficiency" and "Imperfection"?

I am looking for a word to describe that in some difficult cases some piece of hardware or a software algorithm may fail and produce the wrong result. Is this a deficiency or an imperfection, and what would either choice imply?

(Assume that the developers have put in their best effort to make the hardware + software as good as possible within time / budgetary constraints. There is still room for improvement but the cost-benefit ratio is rather high.)

(Addendum: From the answers and comments I take it that I should give an example: Think of a face-recognition software. It identifies most faces correctly, but it will never achieve 100 %. So it's not so much a question of whether an algorithm was implemented correctly or whether the specifications are correct but rather a fundamental problem that 100 % cannot be achieved.)

  • Why the downvote? Mar 11, 2018 at 14:54
  • I don't know why someone would downvote you. It seemed like a perfectly valid question. I just upvoted to offset someone else's negativity. Mar 11, 2018 at 15:03
  • Thanks, I have tried to improve the question by adding some boundary conditions. Mar 11, 2018 at 15:10
  • 2
    Imperfection is the better of the two words to use. If you say deficient, you're telling them that it doesn't do what they asked for. Mar 11, 2018 at 15:39
  • Outside of language in general, and more toward tact, I wouldn't admit imperfections. Focus on it's superiority to other solutions and it's low cost. Use words like agile, swift, solution, resource and tool. The worst you can get away with saying to a client is that it still has room to improve, but don't be any more critical of your solution than that. Mar 11, 2018 at 15:44

2 Answers 2


Imperfection is anything less than perfection. Deficiency is anything less than what is needed for the desired result.

An imperfect software may have some addition that could make it better.

A deficient software does not accomplish what it's intended to do.

To answer Lawrence, and make this clear for everyone:

Imperfect is subjective. Deficient is objective. Did the algorithm do what it's supposed to? If not it's deficient automatically, regardless of anything else. It's also imperfect.

Did the algorithm do everything it's supposed to? If yes, it is adequate and sufficient. Is it imperfect? Maybe.

All pit bulls are dogs but not all dogs are pit bulls.

  • And to address the OP’s difficult cases, you might also want to say that both imperfect and deficient software may fail.
    – Lawrence
    Mar 11, 2018 at 15:11
  • That's not true. An imperfect software could still succeed in difficult cases. A deficient software would not. Mar 11, 2018 at 15:19
  • Any kind of software could succeed sometimes, regardless of difficulty. The point is that both forms “may fail” (as the OP puts it). There’s no requirement that the software must fail under difficult situations. If the software definitely won’t fail, it would be neither imperfect nor deficient.
    – Lawrence
    Mar 11, 2018 at 15:30
  • This time it's my downvote. 'Imperfect is subjective' is unjustifiable. Collins has << imperfect ... 1. adjective Something that is imperfect has faults and is not exactly as you would like it to be. [formal] ... Synonyms: flawed, impaired, faulty, broken >> Faulty / broken is rarely a subjective label. Mar 11, 2018 at 16:00
  • 1
    Neither of you offered an answer. You're basically just here to troll. Perfection is subjective and therefore so is imperfection. There is no way to say that anything is "perfect". Someone might think the painting of Mona Lisa is perfect. Someone else might say otherwise. Perfection is most definitely subjective, but if you want, why don't you post it as a question? Mar 11, 2018 at 17:58

The broader question here is whether the software met its specification. If the specification requires it to implement a well-defined algorithm, and it fails to do so, then deficient or imperfect can be both be applied.

However, there is a separate question as to whether the specification fully addresses the problem that the stakeholders wish to solve. Perhaps the algorithm is known to be inadequate for certain inputs. Perhaps the cost of an exact solution is beyond what the stakeholders are willing to pay. Here, a more neutral term such as limitation or constraint would be appropriate.

If the decision to use a suboptimal algorithm was consciously made, then it becomes a property, e.g. “In the case of two solutions of equal rank in X, the system returns the first one found, even though they may differ in Y or Z. In all but a few cases, the order of discovery aligns with the full ranking in all observable factors.”

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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