How can I refer to something that barely works given a certain context and can get broken at any moment?

The thing is: I wrote some geometry calculations in an application that will work in our context, but any minimum condition can make it fail.

So I typed in the comment:

"... there are precision issues and different contexts that make this algorithm ___________."

A word or an idiom would do.

  • @user067531 that's good. If you know some English idiom too it would be greatly appreciated. Aug 8, 2019 at 19:41
  • 2
  • One idiomatic way to indicate that something is at risk of failing at any moment is to say that it "operates on a wing and a prayer." The Grammarist reports that this expression dates to World War II.
    – Sven Yargs
    Aug 12, 2019 at 6:22
  • there are precision issues and different contexts that make this algorithm unpredictable
    – Aled Cymro
    Aug 13, 2019 at 18:47

16 Answers 16


Related: haphazard. Things are often unreliable because they were improvised or cobbled together in an unsystematic fashion.

That term may come in handy for one of your future commits ;-).

  • 5
    Wow, that was a quick accept ;-). For what it's worth, I thought brittle was an excellent, idiomatic suggestion in an IT context. Aug 9, 2019 at 13:30
  • Jerry rigged is another good synonym. Aug 9, 2019 at 22:48
  • This is related, but just related. It doesn't mean what the question asks for, and it definitely shouldn't be the accepted answer. Aug 10, 2019 at 21:49

How about brittle?

1a : easily broken, cracked, or snapped
definition from m-w.com

From the "choose the right synonym" section, Merriam-Webster also says:

Fragile, frangible, brittle mean breaking easily. Fragile implies extreme delicacy of material or construction and need for careful handling. Frangible implies susceptibility to being broken without implying weakness or delicacy. Brittle implies hardness together with lack of elasticity or flexibility or toughness.

Adding on to M-W's description, my understanding is that fragile implies that "ordinary handling" (e.g. just picking something up in a casual manner) is likely to cause damage or breakage, while brittle is generally okay with ordinary handling but anything beyond that (e.g. setting it down hard, bumping it) will likely cause damage.

So, if you consider "within your context" to be "ordinary handling", your algorithm works fine here; but trying to apply it to anything outside of that context is likely to cause a problem. Thus you could use "brittle" to describe it.

  • This is exactly what I needed!! Aug 8, 2019 at 20:30
  • 2
    "Fragile" is a much better fit in this context. "Brittle" has the connotation of a physical material, which can be easily broken if minimal force is applied. Fragile can be used less physically, including in the context of the question. Aug 9, 2019 at 11:32
  • 3
    I think "brittle" is perfect here. For me it suggests, for example, that it the user makes a mistake with their input (e.g. typing "EXTI" instead of "EXIT"), then the program crashes instead of displaying a friendly error message.
    – TonyK
    Aug 9, 2019 at 12:40
  • 8
    @ChrisMelville In my experience, brittle is frequently used to describe software. I think Hellion has nicely covered the different connotations of "brittle" and "fragile".
    – user888379
    Aug 9, 2019 at 12:41
  • 8
    In 33 years of software development, "brittle" is exactly the term I've most often encountered in the context of "something that works in only very limited circumstances and will fail/break (or return ludicrous results) in virtually every other case." Yes, this is an appeal to anecdotal evidence, which is why it's only a comment!
    – Forbin
    Aug 9, 2019 at 17:47

"unreliable" seems like a good fit.

".. there are precision issues and different contexts that make this algorithm unreliable."

  • unreliable - "not able to be trusted to do or provide what is needed or promised" MW

  • If you describe a person, machine, or method as unreliable, you mean that you cannot trust them.
    e.g. He had an unreliable car. Collins


I would say "… makes this algorithm precarious"

Precarious: 1) not securely held or in position; dangerously likely to fall or collapse 2) dependent on chance; uncertain

  • 1
    What's the source of that quote?
    – V2Blast
    Aug 9, 2019 at 4:48
  • I typed define precarious into my search engine, reviewed a few answers and re-swizzled some of them into this answer.
    – Scottie H
    Aug 13, 2019 at 15:56

Very close to Hellion's answer of "Brittle" is "Fragile", which I hear in software contexts.

  • 1
    You might want to link a dictionary/definition and possibly quote the relevant definition to show how it fits. Link-only answers are generally frowned-upon, as the linked content may move, change, or be deleted.
    – V2Blast
    Aug 10, 2019 at 19:49
  • This is not a link only answer. If the link dies, the text still carries the same meaning.
    – TecBrat
    Jul 14, 2021 at 22:15

Temperamental is often used this way in a colloquial context. From McMillan Dictionary, as linked above:

[HUMOROUS] used for describing something that often goes wrong or does not work in the way that you expect.

  • This photocopier’s a bit temperamental.

The algorithm is flaky. It seems like it ought to work, except that in many weird situations (which you might not fully understand), it gives unwanted results.

Per the Jargon File:

Subject to frequent lossage. This use is of course related to the common slang use of the word to describe a person as eccentric, crazy, or just unreliable. A system that is flaky is working, sort of — enough that you are tempted to try to use it — but fails frequently enough that the odds in favor of finishing what you start are low. Commonwealth hackish prefers dodgy or wonky.

In other words, the algorithm is prone to producing buggy output.


You say it will "work in our context but any minimum condition can make it fail." So why not write that? Why search for something else?

I guess you could also say 'has undergone no testing outside our specific needs'.

Or you do the right thing and fix the function :)

  • The original poster wants a short term that he can use in a "commit message". Commit messages are very short notes. In the git source code repository system, programmers are encouraged to write commit summaries that are 50 characters or shorter. (There is another field that can be longer, but the short message is the field that is most likely to be read.)
    – Jasper
    Aug 10, 2019 at 6:59
  • “Important disclaimer in ____ field”
    – WGroleau
    Aug 10, 2019 at 15:26

I'd suggest inflexible algorithms

Here some examples from the web:

Online merchants can actually increase their false decline rate (and also reduce sales) by using inflexible algorithms that don’t consider how new data and special circumstances affect a transaction’s legitimacy — like when customers make purchases on an overseas vacation.

When faced with an electrocardiographic recoding of a complex arrhythmia, we often use inflexible algorithms or try to recall patterns already seen, which is often insufficient to explain the mechanisms of difficult bradycardias and tachycardias.

Another major advantage of evolutionary algorithms is the ease of problem reformulation. In a rapidly changing field, such as genomics, the future use of algorithms may change unpredictably. Furthermore, subtle variations in the specifics of one problem instantiation may make inflexible algorithms less generally useful.


I'd go with "marginal", in the sense of being barely good enough for a given purpose.

  • "Marginal" is a very good word for something that mostly-sort-of works, but is not a good fit in the original poster's context. The original poster's context is mathematical, and involves minima. This means that the calculus / economics meaning of "marginal" is relevant, and likely to cause confusion with the "works except near the edges of the problem space" meaning of "marginal".
    – Jasper
    Aug 10, 2019 at 6:37
  • You might want to link a dictionary/definition and possibly quote the relevant definition to show how it fits. (Link-only answers are generally frowned-upon, as the linked content may move, change, or be deleted.)
    – V2Blast
    Aug 10, 2019 at 19:49

"unstable" - Being that your statement appears to be scientific, this would be a classic word to use. An idiom that I believe that is appropriate would be "fast and loose".

Definition: prone to change, fail, or give way; not stable

  • 1
    "Unstable" has a technical meanings in the fields of algorithms and software development. It is quite possible that two of these technical meanings are applicable in the original poster's situation: The algorithm might magnify small errors into big errors, and it is possible that this part of the program might be replaced with little notice. But if neither of these is the case, using the word "unstable" will confuse the issue.
    – Jasper
    Aug 10, 2019 at 6:56

Situations like the one in your question can be described with the slightly technical term malfunction:

to fail to work or operate correctly

It's usually used in contexts that talk about some sort of mechanical equipment working incorrectly, but I think it is also possible to use this term in the context of computer algorithms. For example:

As of now, the program will likely malfunction and crash if you feed it unsanitized data. So, there still needs to be some work done before calling the program fully functional.

Also, consider the expression go haywire:

to stop working correctly

That one is somewhat similar in spirit to malfunction, but tends to be used in more informal contexts. For example:

Don't run the program yet. It's not in a working state. If you do, it will likely go haywire and make the eintire operating system crash.


How about "close enough for government work":

Good enough; OK; only satisfactory. The phrase implies that government work is usually of mediocre quality. Sufficiently close; done just well enough.

Another relevant link: https://en.wiktionary.org/wiki/close_enough_for_government_work


I thought I would add On the fritz, even though it doesn't work in the given context (usually it refers to electronic things); it may still help someone else:

On the fritz

Out of order; malfunctioning; broken.

Also robustness is a common metric in computer science, so you may want to just say "It's not very robust"


Here's one I stumbled across in the Entropic package repository documentation:

There are bugs, many unimplemented features, and the whole thing will probably fall over in a stiff breeze.


there are precision issues and different contexts that make this algorithm unpredictable.

Your Answer

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

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