Grammar: Modal Verbs for Expressing Technical Uncertainty

How to use modal verbs correctly when discussing uncertain technical situations — estimates, risks, possibilities, and recommendations in professional English.

Software engineers deal with uncertainty constantly — estimates, root cause investigations, risk assessments, performance predictions. In English, modal verbs are the primary tool for expressing different degrees of certainty and possibility. Using them correctly makes your technical communication more precise, professional, and honest.


What Are Modal Verbs?

Modal verbs are auxiliary verbs that express possibility, ability, permission, necessity, or certainty. The main modal verbs in English are:

can / could / may / might / will / would / should / must / ought to / shall

They are followed by the bare infinitive (the verb without “to”):

“This could cause a race condition.” (not “could to cause”)
“The service might be timing out.” (not “might to be”)


Expressing Degrees of Certainty

This is the most important use of modals in technical communication:

Certainty levelModalExample
Almost certainmust”The server must be overloaded — response times are at 30 seconds.”
Highly likelyshould”The deployment should complete in about 10 minutes.”
Possiblemay”This change may affect users in the EU region.”
Uncertain possibilitymight / could”The issue might be related to the recent config change.”
Very uncertainmight”There might be a memory leak somewhere in the session handling.”

In practice:

“The cache must be stale — we’re seeing data that should have been invalidated two hours ago.”
→ High confidence deduction from evidence.

“The latency spike could be related to the database migration we ran this morning.”
→ A hypothesis, not a confirmed cause.

“The fix might take longer than expected if the issue turns out to be in the third-party library.”
→ Acknowledging an uncertain dependency.


Expressing Recommendations and Advice

Use should and ought to for recommendations:

“You should add error handling before this call — if the API is down, the request will silently fail.”

“We should discuss this with the security team before deploying.”

“The tests ought to cover this edge case — let me add them before we merge.”

Should is also used for expected behaviour:

“The endpoint should return a 404 if the resource doesn’t exist.”
→ This is the expected design behaviour.

“This test should pass — I’m not sure why it’s failing.”
→ Expectation that is currently violated.


Expressing Necessity and Requirements

Use must and have to for requirements:

“All API requests must include a valid token in the Authorization header.”
(Technical requirement — no exceptions)

“We have to fix this before the release — it’s a data integrity issue.”
(Practical necessity)

Use need to in more conversational contexts:

“We need to revisit this design before it goes to production.”

Note: In technical documentation, must is stronger and more formal than should:

  • “The field must be present.” — required, no exceptions
  • “The field should be present.” — recommended, but the system may tolerate its absence

Expressing Permission and Ability

Can expresses ability or permission:

“You can authenticate with either an API key or OAuth 2.0.”
(Permission/ability — both are allowed)

“The service can handle up to 10,000 concurrent connections.”
(Ability/capacity)

Could expresses past ability or polite possibility:

“Could you take a look at this PR when you have a moment?”
(Polite request — more formal than “Can you…?”)

“In theory, we could implement this in the frontend, but it would expose sensitive logic.”
(Possibility being evaluated)


Past Modal Constructions for Technical Analysis

When analysing past events (incidents, bugs), modals + have + past participle express what was possible, likely, or certain in the past:

StructureMeaningExample
must haveAlmost certain past deduction”The process must have run out of memory — it was killed by OOM killer.”
could havePast possibility”The cache could have been invalidated too early.”
might haveUncertain past possibility”The timeout might have been caused by a slow query.”
should havePast expectation (unfulfilled)“The test should have caught this — I’ll investigate why it didn’t.”
would haveConditional past”Without the circuit breaker, the failure would have cascaded to all services.”

Common Mistakes to Avoid

Using “will” when you mean “should”:

“The function will return null if the user is not found.”
→ Use this only if you are certain this is the behaviour.

“The function should return null if the user is not found.”
→ Better if you are stating expected design or haven’t verified.

Overusing “can” for requirements:

“You can set the timeout in the config file.”
→ This sounds optional. If it’s recommended, use “should”; if required, use “must”.

“May” vs. “might” — both are acceptable for possibility, but “might” suggests slightly lower certainty:

“This may introduce a breaking change.” — possible
”This might introduce a breaking change.” — slightly less certain


Quick Reference Table

ModalPrimary use in tech EnglishExample
mustRequirement; high-certainty deduction”Passwords must be hashed.”
shouldRecommendation; expected behaviour”The API should return 200 on success.”
mayPossibility”This may affect performance.”
might / couldLower-certainty possibility”This might cause a race condition.”
canAbility; permission”Users can reset their password via email.”
willCertain future; definite prediction”The cache will expire after 60 seconds.”
wouldConditional”This would be faster with an index.”

Precise use of modal verbs marks you as a careful communicator. In technical contexts, the difference between “this will fail” and “this might fail” matters enormously — and using the right modal ensures your meaning is never misunderstood.