Technical Debt as Gharar: What Islamic Finance Teaches Us About Code Quality

This essay examines technical debt through the ethical lens of Islamic commercial law, drawing parallels with gharar (harmful uncertainty) as articulated in Islamic finance. Using AAOIFI and IFSB standards, it outlines a typology of technical shortcuts based on levels of uncertainty, disclosure, and responsibility. Analysis of professional Scrum literature reveals how interest-based framing ("pay it back with interest") inadvertently normalises treating technical shortcuts as internal liabilities rather than risks requiring stakeholder consent. Rather than treating technical debt as moral failure, the essay reframes it as technical disclosure—not avoiding shortcuts, but ensuring transparency and informed consent from those who will bear the consequences. It concludes by considering how Islamic Agile approaches, including Ihsan Agile, can help teams embed disclosure obligations into everyday development work.

TECHNICAL DEBTGHARARGOVERNANCETECHNICAL DISCLOSURE

Dr. David Wallace-Hare

12/19/202538 min read

Technical Debt as Gharar: What Islamic Finance Teaches Us About Code Quality

Table of Contents

  • The Tuesday Afternoon Decision

  • What is Gharar? A 5-Minute Islamic Finance Primer

    • Information Asymmetry = Jahalah

    • The Three Types of Gharar

    • Why Islamic Law Prohibits Gharar

    • AAOIFI Standards on Gharar

    • When Does Gharar Violate a Transaction?

    • Understanding the Necessity Principle

  • Technical Debt IS Gharar: The Mapping

    • Example 1: The Undocumented Hack

    • Example 2: The Documented Trade-off

    • Example 3: The Temporary Prototype

    • The Critical Factors

  • The Riba Framework: How Scrum Literature Normalises Interest-Based Thinking

    • The Explicit Interest Framework

    • The Pattern Across Scrum Literature

    • Why This Framing Matters: The Stance It Creates

    • The Contrast: What's Missing

    • The Islamic Critique: Riba and Gharar Together

    • Why This Matters: It's Not Just Theory

    • Acknowledgment: What These Frameworks Do Well

  • The Alternative: From Technical Debt to Technical Disclosure

    • What Technical Disclosure Looks Like in Practice

    • A Note on Necessity (Ḍarūrah)

    • Conclusion: The Structural Nature of the Problem

  • The Gharar Spectrum in Technical Debt

    • Category 1: Strategic Debt

    • Category 2: Tactical Debt

    • Category 3: Reckless Debt

    • Category 4: Inherited Debt

  • The Injustice of Undisclosed Gharar

    • In Islamic Finance: Gharar Creates Ẓulm

    • In Software: Undocumented Debt Creates Ẓulm

    • The Cascade of Injustice

    • The Spiritual Dimension

  • AAOIFI Standards Applied to Software

    • AAOIFI Shariah Standard No. 31

    • Bridging Governance and Operations

  • Conclusion: From Recognition to Action

    • The Core Insight

    • The Transformation

    • Why Islamic Agile Matters

    • What Comes Next

    • Resources for Going Deeper

    • Final Thought

  • References

  • Glossary

The Tuesday Afternoon Decision

Every time you write // TODO: Fix this later, you're creating gharar.

Islamic finance scholars have spent 1,400 years analysing exactly this problem. Those insights turn out to be surprisingly relevant to how we write, document, and ship software today. Here's what they learned that every developer needs to know.

Your sprint is behind schedule. The Product Owner is pushing hard. Your team gathers for an urgent discussion:

Option A: Implement the feature properly. Miss the sprint goal. Disappoint stakeholders.

Option B: Write a quick hack. Ship on time. Add a comment: // TODO: Refactor this properly later. Move on.

If you've been in software development for more than a month, you know which option most teams choose.

And you also know that "later" almost never comes.

This is how technical debt accumulates. One Tuesday afternoon decision at a time. One "temporary" shortcut that becomes permanent. One undocumented assumption that will explode in someone else's hands.

But here's what most developers don't know: Islamic finance has a name for exactly this problem.

They call it gharar (غرر).

And they've developed sophisticated frameworks over 14 centuries for determining when such uncertainty is acceptable and when it's absolutely prohibited.

Disclaimer:

This article is for educational purposes only and discusses the application of Islamic ethical principles to software development practices. It does not constitute financial advice, investment guidance, legal advice, or Shariah rulings. The author is not a licensed financial advisor, Islamic scholar, or mufti.

This essay does not propose new fiqh rulings, nor does it equate software development with classical commercial contracts. Rather, it uses gharar as an ethical lens drawn from Islamic commercial principles to reason about uncertainty, disclosure, and harm in modern software systems. The classifications used are heuristic and pedagogical, intended to guide ethical reflection rather than substitute for juristic judgment.

What is Gharar? A 5-Minute Islamic Finance Primer

Gharar means uncertainty, risk, or ambiguity in contracts that could lead to dispute or injustice.

In classical Islamic jurisprudence, Fiqh, examples of gharar include:

  • Selling fish still swimming in the sea (uncertain if you can actually deliver them)

  • Selling goods you don't yet possess (uncertain possession)

  • Contract terms that are deliberately ambiguous to favor one party

  • Selling a pregnant animal's unborn offspring (uncertainty about its existence and quality)

The key principle underlying the prohibition of gharar is simple but profound: gharar creates information asymmetry that can be exploited. In classical fiqh, gharar concerns not risk per se, but uncertainty combined with information asymmetry and potential harm (Vogel & Hayes, 1998).

One party knows something the other doesn't. The knowledgeable party can use this advantage to extract unfair value. The weaker party bears disproportionate risk.

This is injustice. In Islamic terminology: ẓulm (ظلم): oppression, wrongdoing.

Information Asymmetry = Jahalah

Classical Islamic jurisprudence uses the term jahalah (جهالة) (ignorance or lack of knowledge) to describe the fundamental problem that gharar creates.

AAOIFI's Shariah basis explains: "Such cases involve a great deal of Jahalah (ignorance) and, thus, may lead to dispute" (AAOIFI Shari'ah Standard (SS)-31, Appendix B).

This is precisely the problem with undocumented technical debt:

Original developer:

  • Knows the shortcuts taken

  • Understands the workarounds

  • Remembers the assumptions made

  • Aware of what's fragile

Future maintainer:

  • In a state of jahalah, doesn't know what's safe to change

  • Can't see the hidden landmines

  • Doesn't understand why things are structured oddly

  • Lacks knowledge of fragile dependencies

Result:

  • Dispute: "Who wrote this?!" "Why didn't you document this?!"

  • Blame shifting when things break

  • Conflict over who should fix it

  • Mistrust between teams

The jahalah (ignorance) creates the conditions for dispute, exactly as classical scholars warned.

AAOIFI Shariah Standard No. 31-Controls on Gharar in Financial Transactions, makes this explicit: "It is impermissible in Shari'ah to conclude a contract or stipulate a condition that involves a degree of Gharar which could jeopardise the fulfillment of the contracts stipulations" (AAOIFI SS-31, Section 3).

The Accounting and Auditing Organization for Islamic Financial Institutions (AAOIFI) is the international standard-setting body for Islamic finance and addresses gharar extensively in its Shariah standards.

These aren't just theoretical principles. AAOIFI standards govern billions of dollars in Islamic finance assets globally. Institutions that violate these standards face serious consequences. AAOIFI's approach to gharar control with Islamic Financial Institutions or IFIs is highly relevant to dealing with its presence in agile delivery.

The Three Types of Gharar

AAOIFI Shariah Standard No. 31 classifies gharar based on severity and impact (Section 4/2):

1. Gharar Yasīr (Minor/Slight Uncertainty)

This is inevitable, tolerable uncertainty present in almost all transactions.

AAOIFI definition: "Minor Gharar is the degree of Gharar that a contract could hardly avoid, and is not sufficient to generate dispute" (Section 4/2/2).

Example: When you buy a car, you don't dismantle the engine to inspect every component. There's some uncertainty about internal condition, but this level is accepted as necessary for commerce to function. Similarly, buying a house without seeing its foundation, or renting for "one month" when months vary in length.

Ruling: Permitted (mubāh) as this degree of uncertainty does not affect the contract's validity.

2. Gharar Mutawassiṭ (Moderate Uncertainty)

This is a gray area requiring scholarly discretion.

AAOIFI definition: "Medium Gharar falls between excessive and minor" (Section 4/2/3). Examples include guardianship contracts, certain partnership arrangements, and fixed-term profit-sharing agreements.

Example: Ju'alah contracts (payment for completing a task, like finding a lost item), where the effort required is uncertain but the reward is clear.

Ruling: Requires case-by-case analysis and generally does not affect the contract if other conditions are met.

3. Gharar Fāhish (Excessive/Major Uncertainty)

This is severe uncertainty that creates fundamental unfairness in the transaction.

AAOIFI definition: "Gharar is excessive when it becomes a dominating and distinctive aspect of the contract, and is capable of leading to dispute" (Section 4/2/1).

This builds on classical scholarship. Abu Al-Walid Al-Baji, the renowned Maliki jurist, defined excessive gharar as "the degree of Gharar which becomes so dominant in the contract, that the contract is described in terms of it" (cited in AAOIFI SS-31, Appendix B).

Think about this in software terms:

When a codebase is so laden with technical debt that the system itself is described by its debt:

  • "The legacy system" (defined by age and accumulated shortcuts)

  • "The fragile codebase" (defined by its brittleness)

  • "The one nobody wants to touch" (defined by risk)

  • "Technical debt nightmare" (literally described by its gharar)

When gharar becomes the defining characteristic, it has crossed into gharar fāḥish.

Classical examples: Selling fruits before they're produced, signing a lease without specifying duration, selling goods that don't exist with no certainty they will exist.

Ruling: Prohibited (ḥarām); this nullifies the contract.

Why Islamic Law Prohibits Gharar

The prohibition isn't arbitrary. It serves clear ethical purposes:

  1. Prevents exploitation: Stops those with superior knowledge from taking advantage of those with less information

  2. Protects the vulnerable: The weaker party in a transaction is shielded from bearing disproportionate risk

  3. Promotes trust: Commerce requires mutual confidence; gharar undermines the foundation of ethical exchange

  4. Prevents disputes: Clear terms mean fewer conflicts and broken relationships

When Does Gharar Violate a Transaction?

AAOIFI Standard No. 31 provides precise criteria. Gharar violates a transaction when it satisfies four conditions (Section 4):

  1. In an exchange-based contract: The transaction involves mutual exchange of value (not a gift or donation)

  2. Excessive in degree: The uncertainty is substantial and dominating

  3. Relates to primary subject matter: The gharar concerns the core deliverable, not incidentals

  4. Not justified by Shariah-recognisable necessity: There's no unavoidable reason for the uncertainty

All four conditions must be present for gharar to nullify a transaction.

Understanding the Necessity Principle

The fourth condition deserves special attention because it directly addresses strategic technical debt.

AAOIFI defines necessity as: "When no Shari'ah-recognisable need has necessitated Gharar in the contract. Need in this context (which could be public or private) refers to the situation when refraining from commitment of impermissible Gharar leads to severe hardship" (Section 4/4).

The Shariah basis explains: "This is because Shari'ah has come for the sake of relieving people from hardship... whether the need is public or private" (AAOIFI SS-31, Appendix B, citing Qawa'id al-Majallah, item 33).

Critical distinction for software development:

✓ Taking technical debt may be justified by necessity:

  • Tight deadline with real business consequences

  • Market window that will close

  • Critical bug requiring immediate hotfix

  • Resource constraints during crisis

✗ But there's no necessity that prevents documenting it:

  • Documentation takes 5 minutes

  • Not a hardship to write: "DEBT-042: Skipped input validation on emergency auth fix"

  • The register doesn't prevent necessary shortcuts

  • It makes them visible and manageable

The necessity principle justifies taking the debt. It does NOT justify concealing the debt from those who will bear its consequences.

This is why the Technical Debt Register is so important: it allows you to take necessary shortcuts while eliminating the jahalah (ignorance) that creates injustice.

Does undocumented technical debt meet these conditions?

Let's examine this carefully, because this is where the insight becomes powerful.

Technical Debt IS Gharar: The Mapping

Here's the insight that changed how I think about software development:

Technical debt is gharar we deliberately introduce into our systems.

Consider the parallels between Islamic Finance and Software Development:

Here are three concrete example that demonstrate the dangers of gharar in this space:

Example 1: The Undocumented Hack (Gharar Fahish)

What's wrong here?

A developer has taken a shortcut. They know it's broken. They know it will fail for certain users. They've left minimal documentation. Then they move on to the next sprint.

Six months later, a new developer inherits this code. They don't know it's broken. They don't know which edge cases fail. They might add features that depend on this calculation. When it eventually fails in production, they're blamed for "breaking" something that was never properly built.

This is gharar fāḥish - excessive, prohibited uncertainty:

  • ❌ Future maintainer doesn't know the risk exists

  • ❌ No documentation of what's broken

  • ❌ No mitigation plan

  • ❌ No timeline for fixing

  • ❌ Users will be harmed (incorrect zakat calculations mean Muslims fail to fulfill a religious obligation)

  • ❌ Someone will bear the cost unfairly

The original developer benefited (got their story points, shipped on time, moved on). The future maintainer and the users bear all the risk.

This is ẓulm, injustice through information asymmetry.

Example 2: The Documented Trade-off (Gharar Yasīr)

What's different here?

The functionality is identical. But the ethical posture is completely different.

The team has:

  • ✅ Documented exactly what's missing

  • ✅ Explained the limitations clearly

  • ✅ Created a ticket (DEBT-123) for proper implementation

  • ✅ Defined mitigation (UI warning + scholar recommendation)

  • ✅ Set a timeline (Sprint 5)

  • ✅ Gained stakeholder consent (Product Owner and Shariah Advisor both know)

  • ✅ Made the decision traceable (dated, with participants)

This is gharar yasīr, minor, tolerable uncertainty:

The code still has limitations. But everyone knows about them. The uncertainty is disclosed. There's a plan to address it. Stakeholders consented. Users are warned.

Future maintainers will immediately understand what they're working with. They won't be surprised. They won't feel deceived.

This is just; the uncertainty is shared knowledge, not exploited advantage.

Example 3: The Temporary Prototype (Not Gharar)

What's happening here?

This isn't even debt. It's clearly marked as a prototype. Everyone knows it's temporary. The real implementation exists elsewhere. There's no pretense of completeness.

This isn't gharar at all because:

  • ✅ Purpose is explicit (validation, not production)

  • ✅ Everyone knows it's temporary

  • ✅ Proper implementation is referenced

  • ✅ No one is misled

This is like showing a architectural sketch before building a house. The sketch isn't "gharar" because no one thinks it's the actual building.

The Critical Factors

What determines whether technical debt is acceptable (yasīr) or prohibited (fāḥish)?

  1. Disclosure: Is the uncertainty documented?

  2. Knowledge: Does the receiving party (future maintainers, users) know the risk?

  3. Impact: How severe is the potential harm?

  4. Necessity: Is there a legitimate reason for taking this shortcut?

  5. Mitigation: Is there a concrete plan to address it?

  6. Consent: Did stakeholders agree to the trade-off with full knowledge?

When any of these factors is missing, you're moving from acceptable uncertainty toward prohibited gharar.

The Riba Framework: How Scrum Literature Normalises Interest-Based Thinking

The interest-based language we've been examining isn't accidental metaphor—it's systematic methodology embedded across professional Scrum guidance.

The Explicit Interest Framework

In The Professional Product Owner (McGreal & Jocham, 2018), one of Scrum.org's official certification texts, technical debt is framed explicitly using riba (interest-based) logic:

"Technical debt is not 'not Done.' ... If you do not address technical debt right away, just understand that you will have to pay it back eventually—with interest. It may not be as visible as the interest rate on your credit card account, but you pay for it nevertheless... Just like with financial debt, you will have less to spend on other things until your debt is paid off." (pp. 88-89, emphasis added)

This isn't metaphor for pedagogical convenience. It's the recommended framework for Product Owners making decisions under pressure. The guidance teaches teams to think: "Can we afford the interest payments?" rather than "Have we disclosed this risk to stakeholders?"

The Pattern Across Scrum Literature

This framing isn't isolated to one text. Mastering Professional Scrum (Ockerman & Reindl, 2020), another book in Scrum.org's Professional Scrum Series, uses strikingly similar language:

"Just like with financial debt, it can sometimes be a good thing if the return is greater than the interest paid." (p. 70)

The book even includes a practice titled: "Treat Technical Debt Like Credit Card Debt" (p. 72), advising teams to "start paying a little more than interest payments every Sprint."

To their credit, Ockerman and Reindl emphasise that "technical debt must be transparent" and encourage teams to assess customer impact (p. 70-71). They ask important questions like "How are users being impacted by not resolving this technical debt?" This is progress—transparency about consequences matters.

But the fundamental stance remains unchanged: technical debt is framed as an internal financial liability to manage through "interest payments," not as a risk transfer requiring stakeholder consent.

Why This Framing Matters: The Stance It Creates

When Product Owners and Development Teams are trained to think in these terms, several consequences follow:

1. Technical Shortcuts Become Internal Management Decisions

The credit card debt metaphor positions technical shortcuts as business decisions the organisation makes for itself. Just as you might put expenses on a credit card and pay them off over time, teams take on technical debt and "pay it back" when convenient.

From an Islamic ethical perspective, this misidentifies the nature of the transaction. Technical shortcuts don't create debt the organisation owes itself—they create risk that stakeholders will bear.

2. "Can We Afford It?" Replaces "Should We Disclose It?"

When teams ask "Can we afford the interest payments on this technical debt?" they're making an internal cost-benefit calculation. The question presumes the shortcut is acceptable if the organisation can manage the consequences.

But if the shortcut affects users (bugs, performance issues, missing features) or future maintainers (unmaintainable code, undocumented assumptions), the relevant question becomes: "Have we disclosed this risk to those who will bear it?"

3. Success is Measured by "Debt Paid Off" Rather Than "Stakeholders Informed"

Both texts emphasise tracking technical debt reduction. Ockerman and Reindl suggest visible progress indicators like thermometers showing debt being "paid back" over sprints (p. 73).

This measures the wrong thing. From a gharar perspective, success isn't "we eventually fixed what we broke." Success is "we were transparent with stakeholders from the moment we took the shortcut, and they consented to the trade-off."

4. Disclosure Becomes Retrospective Justification, Not Proactive Obligation

Even where transparency is emphasised, and Ockerman & Reindl do emphasise it, the focus is on explaining existing debt so it can be prioritised for payback. "Adding technical debt to the Product Backlog will make it transparent to the Scrum Team and stakeholders" (Ockerman & Reindl, 2020, p. 71).

But transparency after the fact is not the same as disclosure at the point of decision. The question shifts from "Should we get stakeholder consent before taking this shortcut?" to "How do we justify the debt we've already accumulated?"

The Contrast: What's Missing

Neither text addresses the core gharar concern: those who will bear the consequences of technical shortcuts should be informed before or at the moment the shortcuts are taken, and where appropriate, their consent should be obtained.

Consider the difference in stance:

The difference:

Both implementations have the same functionality. Both took a shortcut. But:

Technical Debt version:
  • Treats it as internal management concern

  • Plans to "pay it back" later

  • Future developer discovers limitations when things break

  • Users have no idea access controls are simplified

Technical Disclosure version:
  • Documents exactly what's simplified and why

  • Identifies who will be affected

  • Records stakeholder consent

  • Users are notified about temporary limitations

  • Future developers immediately understand constraints

This is technical disclosure: yes, take the shortcut when necessary, but eliminate the jahalah (ignorance) that creates injustice.

A Note on Necessity (Ḍarūrah)

Islamic law recognises the principle of necessity: when severe hardship would result, normally prohibited actions may become permissible.

AAOIFI Standard No. 31 specifically addresses this: gharar may be acceptable "when no Shari'ah-recognisable need has necessitated Gharar in the contract" (Section 4/4).

This applies directly to technical shortcuts:

Necessity may justify taking the shortcut:
  • Emergency security patch

  • Critical business deadline with real consequences

  • Market window that will close

  • Resource constraints during crisis

But necessity does NOT justify hiding the shortcut:
  • Documentation takes 5 minutes

  • Not a hardship to write: "DEBT-042: Skipped input validation on emergency fix"

  • The register doesn't prevent necessary shortcuts

  • It makes them visible and manageable

The necessity principle justifies taking the debt. It does NOT justify concealing the debt from those who will bear its consequences.

This is why technical disclosure is feasible even under pressure: you can take the necessary shortcut AND document it transparently. The two aren't in tension.

Conclusion: The Structural Nature of the Problem

The interest-based framing appears systematically across professional Scrum guidance. This reflects the business contexts in which Agile frameworks emerged—environments where financial debt metaphors are standard tools for rationalising trade-offs. Ironically, early Agile was partly a reaction against corporate bureaucracy, yet it adopted financial framing for technical decisions. The metaphors are pragmatic and have helped many teams.

The issue isn't that these frameworks lack value, but what the framing can inadvertently obscure. When frameworks train Product Owners and Development Teams to think of technical shortcuts as "debt with interest," they inadvertently:

  1. Normalise riba-based thinking in ethical decision-making

  2. Create systematic gharar by treating risk transfers as internal management decisions

  3. Position transparency as retrospective justification rather than proactive obligation

  4. Measure success by "debt paid off" rather than "stakeholders informed"

The alternative—technical disclosure—isn't radical. It simply asks: before taking a shortcut that affects others, have we been truthful with them about what we're doing and why?

This reframing transforms technical debt from internal liability into disclosed risk, from "Can we afford it?" to "Have we been truthful?", from debt management into trust-building.

For Muslim-led organisations building products for Muslim communities, this shift is essential. But the principle extends beyond Islamic contexts: transparency, consent, and justice in technical decision-making benefit everyone.

The Gharar Spectrum in Technical Debt

In terms of agile delivery and the ways in which gharar can manifest in and as technical debt, the following classification system may be useful.

The categories below are not legal rulings but ethical risk classifications, intended to help teams reason about responsibility, disclosure, and harm.

Category 1: Strategic Debt (Permissible - Mubāḥ)

Characteristics:
  • Taken consciously for valid business reason

  • Fully disclosed to all affected parties (internal team AND end users)

  • Documented with clear mitigation plan

  • Timeline and resources committed

  • Impact assessed and found acceptable

  • Stakeholders informed and consenting

Example from practice:

"We'll use a simplified algorithm for our MVP to test whether users will actually adopt this feature. If we get 1,000+ active users in the first month, we'll invest in the proper implementation with full edge case handling. Meanwhile, we'll display a clear message: 'Currently supports common scenarios. Contact support for complex cases.'

Risk: Some users may need features we don't yet support.

Mitigation: Personal support for early users, committed timeline for full version."

Two Dimensions of Disclosure:

Strategic debt must satisfy disclosure requirements on two fronts:

1. Internal (Team): The uncertainty is known, documented, and managed through code comments, technical debt registers, and team knowledge sharing. Future developers understand the limitation and why it exists.

2. External (Users): This is where many teams fail. Have we disclosed this limitation to end users?

Islamic Finance Standards on Consumer Protection:

Both AAOIFI and Islamic Financial Services Board or IFSB standards emphasise that concealment violates Shariah principles of justice and fairness, while disclosed limitations enable informed consent:

  • IFSB-4 states: "The need for transparency is, above all, an important Sharīah consideration. Any form of concealment, fraud or attempt at misrepresentation violates the principles of justice and fairness in Sharīah" (Section 1, para 2)

  • IFSB-24 requires: "ensuring fairness and certainty in transactions and avoiding exploitation between transacting parties... ensuring that investors are not disadvantaged, mislead or defrauded" (Section 2.1, para 3)

  • IFSB-24 further prohibits: "contracts based on substantial ignorance and uncertainty (gharar), misleading information, obvious imbalances in the respective obligations of the parties, and bad faith in implementation" (Section 2.1, para 23(i))

  • AAOIFI SS-31 identifies "substantial lack of knowledge concerning one of the counter-values" as a condition creating gharar (para 2/1)

The Disclosed Limitation Principle (عيب مذكور غير مؤثر):

In Islamic commercial law, a disclosed defect does not invalidate a transaction. The principle is: عيب مذكور غير مؤثر — "a mentioned defect does not affect [the validity of the contract]."

Applied to software: An MVP with clearly disclosed limitations removes gharar for users. They make an informed choice to use software that explicitly states: "This tool handles simple cases only. For complex situations, consult an expert."

Conditions for permissibility—Internal (Documentation):
  • Clear documentation of what was simplified and why

  • Realistic plan to address the debt

  • Assessment: does this debt serve genuine maslahah (needed functionality delivered faster)?

  • Technical debt register entry with timeline and owner

Conditions for permissibility—External (User Disclosure):
  • Prominent disclosure of limitations in the user interface itself

  • Clear guidance on when the tool should NOT be used

  • No misleading claims about capabilities

  • Users empowered to make informed decisions about whether to rely on the tool

Where disclosure fails:

If the calculator claims to "calculate zakat accurately for all situations" but only handles simple cases, this creates gharar through misleading information, something prohibited under:

  • IFSB-24 (firms must not "provide any information that is potentially misleading")

  • AAOIFI SS-31 (gharar includes "fraudulently pass[ing] one thing for another")

When this type of debt is acceptable:
  • ✅ Learning experiments (validated learning before major investment)

  • ✅ Market tests (is there actual demand?)

  • ✅ Technical spikes (research before committing to an approach)

  • ✅ Temporary solutions with clear upgrade path

  • ✅ Performance optimisations deferred until actually needed

Requirements to keep it permissible:
  • Must document internally: What's the shortcut, what's the risk, what's the plan

  • Must disclose to team: Product Owner and future maintainers informed

  • Must disclose to users: Clear, prominent warnings about limitations in the UI

  • Must track: In technical debt register with timeline

  • Must address: According to timeline, not "eventually"

Category 2: Tactical Debt (Questionable - Makrūh)

Characteristics:
  • Taken primarily to meet deadline pressure

  • Some documentation, but incomplete

  • Vague mitigation plan ("we'll get to it when we can")

  • Stakeholders aware but uncomfortable

  • "Just this once" (but it keeps happening)

Example from practice:

"We're behind schedule, so we'll skip writing automated tests for this feature. We'll add them next sprint. Probably. If we have time. If nothing more urgent comes up."

Islamic parallel:

This is like buying goods with minor defects that the seller mentions briefly but doesn't emphasise. Technically disclosed, but barely. The buyer might not realise the significance. Scholars differ on whether this is acceptable.

Gharar classification: Mutawassiṭ (moderate, gray area requiring case-by-case judgment)

When this becomes problematic:
  • Pattern rather than exception

  • "Later" never actually comes

  • Team feels constant pressure to compromise

  • Definition of Done is gradually eroded

  • Technical debt accumulating faster than it's addressed

What would help teams catch this pattern?

Someone needs to ask the questions that prevent drift: Are we over-committing? Is tactical debt becoming habit? What's the systemic issue? An Islamic approach to Agile might embed this reflection structurally, perhaps through regular ethical review in retrospectives, or through someone specifically tasked with asking these uncomfortable questions before they become crises.

For example, at sprint planning or standup:

"Let's pause. We've taken tactical debt three sprints in a row. What's the systemic issue here? Are we over-committing? Is the Product Owner aware we're accumulating risk? Do we need to adjust our Definition of Done or our sprint capacity?"

Path to making this acceptable:
  • Make it truly exceptional (once or twice a year, not monthly)

  • Commit concrete resources to address it (not "if we have time")

  • Track the trend: Is total debt increasing or decreasing?

  • Celebrate addressing debt, not just shipping features

Category 3: Reckless Debt (Sinful - Ḥarām)

Characteristics:
  • Taken knowingly to benefit yourself

  • No meaningful documentation

  • No mitigation plan

  • Future team will be harmed

  • End users exposed to undisclosed risks

  • "Not my problem, I'll be gone by then"

Example from practice:

A developer knows the code is fragile. Knows it will break under certain conditions. Knows future maintainers won't understand it. Knows users may be harmed by incorrect results. Doesn't document any of this. Doesn't warn users. Leaves the company six months later. The next developer is blamed when it inevitably breaks.

Two Dimensions of Harm:

Internal (Team): This is exactly like selling defective merchandise while deliberately hiding the defects. Future developers work in a state of jahalah (ignorance), bearing all the risk of the original developer's shortcuts.

External (Users): Worse still, users are misled about software reliability. They rely on software that appears trustworthy but has hidden bugs, performance problems, or limitations.

Islamic Standards Explicitly Address Negligence:

Multiple ahadith prohibit concealing defects, the most comprehensive being:

“I heard the Messenger of Allah ﷺ say:
‘The Muslim is the brother of another Muslim, and it is not permissible for a Muslim to sell his brother goods in which there is a defect, without pointing that out to him.’”
Sunan Ibn Mājah 2246 (https://sunnah.com/ibnmajah%3A2246)

This principle is emphasised by classical jurists such as al-Nawawī in his fiqh compendium (al-Majmūʿ (volume 9, Kitāb al-Buyūʿ, The Book of Sales, chapter: Khiyār al-ʿAyb (Option due to Defect)).

IFSB-24 explicitly covers negligence, not just intentional deception:

Firms must not "either intentionally or as a result of negligence provide any information that is potentially misleading to clients" (Section 2.1, para 21, emphasis added)

This is critical: Even unintentional failure to disclose risks violates the standard. The developer who "forgot" to document limitations, who "didn't have time" to test edge cases, who "assumed someone else would fix it"—all are creating gharar through negligence.

IFSB-24 further requires:

"contracts must avoid substantial ignorance and uncertainty (gharar), misleading information, obvious imbalances in the respective obligations of the parties, and bad faith in implementation" (Section 2.1, para 23(i))

Reckless debt creates exactly this:

  • Ignorance: We don't know what problems exist

  • Uncertainty: We can't predict software behavior

  • Misleading information: Software appears more reliable than it is

  • Imbalance: Users bear all the risk while team benefited from speed

Gharar classification: Fāḥish (excessive, absolutely prohibited)
Why it's haram:
  1. Information asymmetry is exploited: You know, they don't (both team and users)

  2. Weaker parties are harmed: Future maintainers and end users bear all the cost

  3. Trust is violated: You're betraying the amānah (trust) placed in you

  4. It's deliberate neglect: You knew you should document/test/disclose, but didn't

Example scenarios:
  • Hardcoding values you know will need to change (without documenting why or how)

  • Using deprecated APIs without any migration plan

  • Building features you know violate user privacy because "that's what Product Owner wants" (without raising the ethical issue)

  • Cutting security corners "because we're small, no one will target us"

  • Writing code you know you don't understand, hoping it works, not asking for help

  • Shipping features with known bugs or limitations without warning users

  • Claiming software is "production-ready" when you know it hasn't been properly tested

How could teams prevent this?

This category requires structural intervention, not just individual conscience. Teams need mechanisms that make it harder to skip documentation, to mark work "Done" without proper disclosure, to ship features without checking ethical criteria. An Islamic Agile approach would embed these checks directly into daily ceremonies and Definition of Done criteria.

Someone, whether a designated role, a rotating responsibility, or simply a team practice, needs to ask before work is marked complete:

"I notice we're about to mark this item Done, but there's no documentation of the shortcut we took. Before we close this, let's spend 5 minutes documenting: what we did, why we did it, what the risks are, and what the plan is."

Or before committing to an approach:

"Before we commit to this implementation approach, let's check: Is this strategic debt with mitigation, or reckless debt that will harm others?"

Or when reviewing work:

"This feature has known limitations. Have we disclosed these to users in the UI? If not, it's not actually Done yet."

These aren't bureaucratic obstacles, they're the minimum safeguards that prevent negligence from becoming normalised.

Category 4: Inherited Debt (Not Sinful to Discover, Sinful to Perpetuate)

Characteristics:
  • You didn't create it

  • You discovered it

  • Now you must decide: address it or perpetuate it?

Islamic principle:

If you inherit property with unclear ownership, you're not held accountable for the initial situation. But you become accountable for what you do once you know.

Similarly with code: discovering technical debt doesn't make you guilty. But knowing about it and doing nothing makes you complicit.

Example from practice:

New developer joins team. Reviews codebase. Discovers undocumented technical debt: shortcuts, hacks, unclear logic.

Two paths:

Path 1 (Fulfills amānah):

  • Documents what you found

  • Adds to technical debt register

  • Raises with team in retrospective

  • Creates tickets for addressing it

  • You've turned hidden gharar into disclosed gharar

Path 2 (Perpetuates ẓulm):

  • Stays silent because "not my code"

  • Works around the problems

  • Leaves it hidden for the next person

  • You've become complicit in the injustice

Creating a culture where Path 1 is the norm

This requires deliberate work. New team members need to know that discovering and documenting debt is valued, not punished. Organisations might create:

  • Blame-free discovery sessions where finding technical debt is treated as treasure-hunting, not fault-finding

  • Onboarding practices where new developers are explicitly encouraged to audit and question

  • Recognition systems where surfacing hidden problems is celebrated as service to the team

  • Clear distinction between "you created this" (unhelpful blame) and "you found this" (helpful transparency)

The right cultural question shifts from "Who created this mess?" (blame, not helpful) to "Now that we know about it, what's our plan?" (responsibility, actionable).

The Injustice of Undisclosed Gharar

Let's go deeper into why undisclosed technical debt is a form of oppression.

In Islamic Finance: Gharar Creates Ẓulm

Ẓulm (ظلم) means injustice, oppression, wrongdoing, literally "putting something in the wrong place."

Gharar is prohibited because it enables ẓulm. The seller knows something the buyer doesn't, and uses that knowledge to extract unfair value.

Classical example:

Selling a car with a defective engine. The seller knows the engine will fail in 1,000 miles. The buyer doesn't. The seller gets full market price for a defective vehicle. The buyer bears the cost of repair or replacement.

This is ẓulm - transferring the burden of the defect from the knowledgeable party to the ignorant party.

In Software: Undocumented Debt Creates Ẓulm

The parallel is exact:

Original developer knows the code is fragile. Knows it will break. Knows which assumptions it depends on. Doesn't document any of this.

Future developer inherits the code. Doesn't know it's fragile. Doesn't know the hidden assumptions. Makes reasonable changes. Things break.

Original developer got their story points and moved on. Future developer is blamed for the breakage and forced to work overtime fixing it.

This is ẓulm, transferring the burden of the shortcut from the knowledgeable party to the ignorant party.

The Cascade of Injustice

Undisclosed technical debt doesn't just harm one person. It creates cascading injustice:

1. Against Future Developers

  • Inherit code they don't understand

  • Blamed when it breaks (even though it was always broken)

  • Forced to work overtime fixing problems they didn't create

  • Burn out trying to manage technical debt they didn't know existed

  • Quit from frustration (high turnover harms the organisation and remaining team members)

2. Against Users

  • Software that breaks unpredictably

  • Features that don't work in edge cases

  • Data loss or corruption

  • Privacy violations due to security shortcuts

  • Poor user experience from performance issues

For Muslim users of Islamic applications, the harm is even more severe:

  • Zakat calculator that miscalculates = Muslims fail to fulfill religious obligation properly

  • Prayer time app with wrong calculations = Muslims may miss salah

  • Halal food database with errors = Muslims may unknowingly consume ḥarām

  • Islamic banking app with bugs = Financial losses affecting real families

3. Against the Organisation

  • Cannot maintain development velocity (more time spent dealing with debt than building features)

  • Cannot scale (system can't handle growth)

  • Cannot attract and retain talent (no one wants to work on a toxic codebase)

  • Eventually forced to rewrite from scratch (massive cost and disruption, perhaps dissolution)

  • Reputational damage when failures occur publicly

4. Against Those We Serve

Technical debt has spiritual consequences regardless of who we serve. When we introduce gharar into systems, we risk harming real people.

The consequences become particularly visible in tools that directly affect religious practice: A Muslim relying on a buggy zakat calculator may unknowingly underpay, creating uncertainty about whether they've fulfilled their obligation. A Muslim who misses Fajr because an app gave the wrong time has been failed by software they trusted. These aren't just bugs, they create barriers to worship and uncertainty where there should be clarity.

But the principle extends to all software: healthcare apps that give wrong medication reminders put lives at risk, financial tools that miscalculate harm people's livelihoods, accessibility features that fail exclude people with disabilities from participation. When we serve anyone with tools containing undisclosed limitations, we introduce gharar and risk causing real harm.

The Spiritual Dimension: Accountability Before Allah

Here's what transforms this from project management issue to spiritual matter:

We will be asked about this on Yawm al-Qiyāmah (Day of Judgment).

The Prophet Muhammad ﷺ taught:

"All of you are guardians and responsible for your wards and the things under your care." (Ṣaḥīḥ al-Bukhārī 893, https://sunnah.com/bukhari:893)

Developers are guardians of the code entrusted to them. They are responsible for:

  • How they steward the codebase (amānah)

  • Whether they act with transparency or deception

  • Whether they harm or benefit those who come after them

  • Whether their work helps or hinders people's practice of Islam

When you write // TODO: Fix this later and never fix it, you're not just creating technical debt. You're:

  • Breaking the amānah (trust) placed in you

  • Committing ẓulm against future maintainers

  • Potentially harming users who depend on your code

  • Creating accountability you'll face before Allah

This isn't hyperbole. This is the consistent teaching of Islam: we are accountable for our work, our treatment of others, and the consequences of our actions.

AAOIFI Standards Applied to Software: What Islamic Finance Requires

Let's get concrete. If Islamic finance institutions must follow AAOIFI standards for risk disclosure, what would the equivalent look like for Muslim tech organisations?

AAOIFI Shariah Standard No. 31: Controls for Islamic Financial Institutions

This standard requires Islamic banks and financial institutions to:

Article 2/1/3: "The IFI shall establish appropriate internal control systems to ensure... risks are identified, assessed, and managed."

Article 3/2: "The IFI shall maintain adequate records and documentation."

Application to software development:

If you're building Islamic fintech products, these requirements extend to your code:

  1. Risk identification: You must identify technical debt (risks in your codebase)

  2. Risk assessment: You must assess severity and impact

  3. Risk management: You must have plans to address high-priority debt

  4. Documentation: You must maintain records (technical debt register)

  5. Monitoring: You must review regularly (retrospectives, periodic reviews)

Bridging Governance and Operations: Who Ensures Daily Ethical Practice?

Islamic institutions have long recognised the need for Shariah governance. In traditional Islamic Financial Institutions (IFIs), this role is typically fulfilled by Shariah Supervisory Boards (SSBs), whose mandate focuses on approving contractual structures, financial instruments, and governance frameworks. Their work is essential and authoritative at the level of form, legality, and compliance.

However, Shariah governance has historically been designed for institutions where ethical risk is concentrated in products and contracts. Software-driven organisations, fintechs, and digital platforms distribute ethical risk differently: across user experience, prioritisation decisions, data practices, operational shortcuts, and trade-offs made under delivery pressure.

In such contexts, many ethically significant decisions occur far downstream from formal Shariah approval, during sprint planning, backlog prioritisation, design choices, technical debt management, and release decisions. These decisions are rarely “Shariah questions” in a fiqh sense, yet they directly affect whether the maqāṣid that Shariah governance seeks to uphold are realised in practice.

This does not imply a failure of Shariah boards, nor does it suggest that every operational decision requires juristic oversight. Rather, it highlights a structural gap between governance and execution: between Sharīʿah compliance as certification and Sharīʿah values as lived practice.

In recent years, some Islamic fintechs, Muslim-led software companies, and values-driven organisations have begun to experiment with more embedded, maqāṣid-oriented forms of guidance. In these settings, ethical reflection may influence product design, delivery practices, and stakeholder engagement, not as formal fatwā, but as structured moral deliberation aligned with Islamic principles.

Ihsan Agile is one example of an Islamic Agile that responds to this reality by positioning ethical consciousness not as a periodic audit, but as a continuous discipline within delivery itself. It does not replace Shariah governance; it complements it by operationalising niyyah, iḥsān, shūrā, and maṣlaḥah at the point where teams make everyday decisions.

In the Ihsan Agile Framework, the Ihsan Agile Facilitator (IAF) functions as a companion-coach embedded within delivery teams. The IAF does not issue rulings or replace formal Shariah governance; rather, it prompts ethical reflection at the point of action by asking questions such as:

  • “Before we mark this as Done, have we introduced ambiguity or misleading behaviour that could undermine trust?”

  • “Is our technical debt visible and responsibly managed, or are we passing hidden burdens to future users and maintainers?”

  • “Have we assessed the impact of this feature on vulnerable users?”

  • “Are we maintaining a sustainable pace, or normalising pressure and exploitation?”

The IAF role is applicable in any Muslim-led or values-driven organisation, including those with no formal Shariah Supervisory Board. In such contexts, the IAF provides lightweight, operational Islamic governance by embedding niyyah, iḥsān, shūrā, and maṣlaḥah into everyday delivery decisions.

Where Shariah Supervisory Boards do exist, the IAF acts as a complementary layer. Shariah boards safeguard permissibility at the level of products, contracts, and structures, while the IAF supports ethical faithfulness in process, delivery, and human interaction. Each addresses a different layer of responsibility; together they reduce the gap between Shariah approval and lived practice, but neither is dependent on the other for legitimacy.

Conclusion: From Recognition to Action

The Core Insight

Technical debt isn't just a code smell or project management issue.

When viewed through Islamic finance principles, we discover something more fundamental: technical debt is misframed from the start.

The problem isn't that we take shortcuts. Shortcuts can serve legitimate purposes. The problem is how they have been conceptualised conventionally:

As debt we owe ourselves (to be managed internally with "interest payments")

Rather than:

As risk we're transferring to others (requiring disclosure and consent)

This reframing—from technical debt to technical disclosure—transforms everything:

  1. Gharar: Not just uncertainty, but hidden uncertainty that creates injustice

  2. Ẓulm: Not just poor code quality, but exploitation through information asymmetry

  3. Breach of amānah: Not just missing documentation, but violation of trust placed in us

  4. Deferred accountability: Not just technical consequences, but spiritual responsibility we'll answer for

The Transformation

When you see // TODO: Fix this later, you're not just seeing a comment.

Through the gharar lens, you're seeing:

  • Hidden risk you're about to create

  • Justice you're choosing to defer

  • Trust you're about to break

  • Accountability you'll face

But the question shouldn't be: "Can we manage this debt?" or "Can we afford the interest payments?"

The question should be: "Have we disclosed this risk to everyone who will bear it?"

This is technical disclosure: not avoiding shortcuts, but refusing to hide them.

Why the Riba Framework Matters

Across professional Scrum literature, from McGreal & Jocham's explicit "pay it back with interest" to Ockerman & Reindl's "Treat Technical Debt Like Credit Card Debt," the interest-based metaphor dominates how Scrum Product Owners and Development Teams are trained to think about technical trade-offs.

This isn't just unfortunate language. It's a framework that shapes decisions:

  • "Can we afford it?" replaces "Should we disclose it?"

  • Internal cost-benefit replaces stakeholder consent

  • Debt management replaces trust-building

  • Retrospective justification replaces proactive transparency

For Muslim-led organisations building products for Muslim communities, recognising this framing becomes essential. When we're building zakat calculators, Islamic banking apps, halal food databases, or prayer time tools, the stakes are clear: our shortcuts directly affect people's ability to fulfill religious obligations correctly.

But the principle extends beyond Islamic contexts. Technical disclosure—transparency, consent, justice in technical decision-making—benefits everyone who builds or uses software.

From Recognition to Practice: Why Islamic Agile Matters

The principles I've explored—gharar elimination, transparency as amānah, technical disclosure—don't implement themselves. Understanding the problem intellectually doesn't solve it operationally.

This is the implementation gap: the distance between "We believe in transparency" and "We actually disclosed this shortcut to stakeholders before taking it."

Bridging this gap requires:

Structural support:

  • Practices that make intention (niyyah) explicit before work begins

  • Definition of Done that includes disclosure criteria alongside technical criteria

  • Regular reflection (muhāsabah) on where we embodied our values and where we fell short

  • Mechanisms ensuring affected voices are heard in decisions

Cultural shift:

  • From "move fast and break things" to "build with iḥsān, as if Allah sees every line of code"

  • From developers who accumulate debt for velocity to trustees who steward code as amānah

  • From blame ("who created this?") to responsibility ("now that we know, what's our plan?")

  • From "Can we afford this?" to "Have we been truthful?"

Operational guidance:

  • Someone or something ensuring disclosure questions get asked consistently, not just when convenient

  • Bridge between high-level values ("be transparent") and daily development decisions ("document this shortcut now, before moving on")

  • Support for teams trying to maintain ethical boundaries under deadline pressure

This is what Islamic Agile approaches seek to address: not just principles to agree with, but practices that operationalise technical disclosure in daily work.

What Comes Next

This essay makes the case for why Islamic perspectives on software development matter and why technical disclosure should replace technical debt as our conceptual framework.

If this framing resonates with you, several paths forward exist:

For individual practitioners:
  • Start asking disclosure questions in your own work: "Who will bear this risk? Do they know?"

  • Document limitations you discover, transforming inherited debt into disclosed constraints

  • Speak up when pressure leads to ethical shortcuts: "Before we mark this Done, have we disclosed the limitation?"

For teams:
  • Experiment with adding disclosure criteria to your Definition of Done

  • Try gharar reflection in retrospectives: "What risk did we hide this sprint? From whom?"

  • Create space to discuss transparency and consent, not just velocity and features

  • Shift language from "technical debt we'll pay back" to "disclosed constraints with stakeholder consent"

For organisations:
  • Consider how to systematically embed disclosure obligations in development processes

  • Explore frameworks designed to bridge values and operations (like Ihsan Agile)

  • Connect with others working on this challenge

  • Measure success by stakeholder trust, not just debt reduction

For the community:
  • Share your experiences navigating these tensions

  • Document what works in your context—what makes disclosure practical, not just aspirational?

  • Help build collective knowledge about technical disclosure practices

  • Challenge the interest-based framing when you encounter it: "Is this really debt we owe ourselves, or risk we're transferring to others?"

Resources for Going Deeper

Ready to move from recognition to implementation? Several resources can help:

Practical Tools:

  • Gharar Assessment Checklist - checklist helps development teams evaluate technical debt through the Islamic lens of gharar (harmful uncertainty). By assessing uncertainty, disclosure, and responsibility, teams can determine whether technical shortcuts align with Islamic principles of transparency, justice, and stewardship

  • Technical Uncertainty Register Guide - A structured, transparent system for documenting, tracking, and disclosing technical shortcuts in alignment with Islamic principles of amānah (trust), stewardship, and justice. This register helps teams eliminate jahalah (ignorance) and prevent ẓulm (injustice) by making constraints visible to all affected stakeholders from the moment they're created, enabling informed consent rather than retrospective justification.

  • Ethical Definition of Done Checklist - Expand your Definition of Done to include ethical and Islamic criteria, ensuring work embodies Niyyah (intention), Iḥsān (excellence), and Maṣlaḥah (public good).

  • Muhāsabah Retrospective Template: Transform retrospectives from process improvement into spiritual practice - examining both efficiency and ethics, both process and character.

  • Niyyah Check-in Template: Use this at the beginning of Sprint Planning, PI Planning, or other planning sessions to establish conscious intention before work.

Frameworks:

  • Ihsan Agile Guide, a comprehensive framework embedding Islamic values in Agile delivery

  • Includes practices like Niyyah check-ins, Muhāsabah retrospectives, and the IAF role

Community:

  • Organisations piloting Islamic Agile approaches

  • Shared learning about what works in different contexts

  • Ongoing exploration of these challenges

Visit ihsanagile.org/resources for checklists, templates, guides, and case studies.

Final Thought

"The reward of deeds depends upon the intentions and every person will get the reward according to what he has intended." (Ṣaḥīḥ al-Bukhārī 1, https://sunnah.com/bukhari/1)

When we write code with conscious intention:

  • To serve Allah by serving His creation

  • With excellence and God-consciousness

  • With transparency and justice

  • Refusing to introduce gharar even under pressure

  • Disclosing constraints to those who will bear them

That code becomes more than just software.

It becomes ʿibādah. Worship through craft.

The gharar lens gives us language to recognise when our work aligns with Islamic values and when it drifts. It shows us that "technical debt" is misframed, and "technical disclosure" better captures our obligation.

What we do with that recognition—whether we continue hiding shortcuts as "debt we'll pay back," or start disclosing them as "risk requiring consent"—is up to us.

References

Accounting and Auditing Organization for Islamic Financial Institutions (AAOIFI). (2007). Shariah Standard No. 31: Controls on Gharar in Financial Transactions (including Appendix B: The Shari'ah Basis for the Standard). Manama, Bahrain: AAOIFI.

Al-Nawawī, Yaḥyā ibn Sharaf. (1996). Al-Majmūʿ Sharḥ al-Muhadhdhab. Beirut: Dar al-Fikr. See Kitāb al-Buyūʿ, chapter on Khiyār al-ʿAyb (vol. 9).

Islamic Financial Services Board (IFSB). (2007). IFSB-4: Disclosures to Promote Transparency and Market Discipline for Institutions Offering Islamic Financial Services. Kuala Lumpur, Malaysia: IFSB.

Islamic Financial Services Board (IFSB). (2020). IFSB-24: Guiding Principles for Investor Protection in Islamic Capital Markets. Kuala Lumpur, Malaysia: IFSB.

McGreal, D., & Jocham, R. (2018). The Professional Product Owner: Leveraging Scrum as a Competitive Advantage. Upper Saddle River, NJ: Addison-Wesley Professional.

Ockerman, S., & Reindl, S. (2020). Mastering Professional Scrum: A Practitioner's Guide to Overcoming Challenges and Maximizing the Benefits of Agility. Upper Saddle River, NJ: Addison-Wesley Professional.

Vogel, F. E., & Hayes, S. L. (1998). Islamic Law and Finance: Religion, Risk, and Return. The Hague: Kluwer Law International.

About the Author

Dr. David Wallace-Hare is the creator of the Ihsan Agile Framework, an open-source methodology embedding Islamic values in software delivery. He holds a PhD in Classics (University of Toronto), MSc in Charity Marketing & Fundraising (Bayes Business School), and a Professional Certificate in Islamic Finance: Shariah (INCEIF).

Essay Glossary

Islamic Finance & Ethics Glossary

Amānah (أمانة)

A trust or responsibility placed upon a person that must be upheld faithfully. Violating an amānah is both an ethical and spiritual failure.

In the essay: Developers are trustees of the codebase; hiding debt breaches the amānah owed to colleagues, users, and the organisation.

AAOIFI

The Accounting and Auditing Organization for Islamic Financial Institutions, an international body that issues Shariah standards governing Islamic finance, including controls on gharar.

In the essay: AAOIFI Shariah Standard No. 31 provides the conceptual framework for classifying uncertainty and applying it to software. Accounting and Auditing Organization for Islamic Financial Institutions

Ḍarūrah (ضَرُورَة) / Necessity Principle

The Islamic legal principle that necessity can make permissible what is normally prohibited, when severe hardship would otherwise result. However, the necessity must be genuine and the response proportionate.

In the essay: Necessity may justify taking technical shortcuts (emergency fixes, critical deadlines) but does NOT justify hiding those shortcuts from stakeholders. Documentation takes minimal time and isn't a hardship.

Gharar (غرر)

Harmful uncertainty or ambiguity in an exchange that can lead to dispute, injustice, or exploitation due to unequal information between parties. In Islamic commercial law, gharar is prohibited when it is excessive and affects the core of what is being exchanged.

In the essay: Technical debt functions as gharar when hidden shortcuts or undocumented assumptions create uncertainty for future developers or users.

Gharar Yasīr (Minor Gharar)

A small, unavoidable degree of uncertainty that does not materially affect fairness or lead to dispute. It is tolerated because complete certainty is impossible in real-world transactions.

In the essay: Fully disclosed, documented technical shortcuts with mitigation plans and stakeholder consent are treated as gharar yasīr.

Gharar Mutawassit (Moderate Gharar)

A borderline level of uncertainty that requires judgment and context. It may be acceptable or problematic depending on disclosure, impact, and patterns of behavior.

In the essay: Tactical technical debt taken repeatedly under pressure falls into this gray area.

Gharar Fāhish (Excessive Gharar)

Severe uncertainty that dominates a transaction and is likely to cause dispute or injustice. This level of gharar invalidates contracts in Islamic law.

In the essay: Undocumented, hidden, or reckless technical debt that harms future maintainers or users is equated with gharar fāḥish.

IFSB

The Islamic Financial Services Board, which issues global standards on governance, transparency, and investor protection in Islamic finance.

In the essay: IFSB standards reinforce the obligation to avoid misleading information and undisclosed risk. Islamic Financial Services Board

Ihsān (إحسان)

Excellence and God-consciousness in action — acting as if one is seen by Allah, even when unseen by people.

In the essay: Writing code with transparency, care, and accountability is framed as iḥsān in professional practice.

Jahālah (جهالة)

A state of ignorance or lack of knowledge about essential aspects of a transaction. Jahālah is the mechanism through which gharar causes harm.

In the essay: Future developers inherit systems in jahālah when technical debt is concealed or undocumented.

Maslahah (مصلحة)

Consideration of public benefit or welfare when making decisions. Maslaḥah allows flexibility where strict avoidance would cause harm or hardship.

In the essay: Strategic technical debt may be justified if it serves genuine maslaḥah and is transparently managed.

Muhāsabah (محاسبة)

Self-accountability and reflective evaluation of one’s actions.

In the essay: Retrospectives are reimagined as spaces for ethical and spiritual muhāsabah, not just process review.

Niyyah (نية)

Conscious intention behind an action. In Islam, actions are judged by intentions as well as outcomes.

In the essay: Ethical software development begins with intentional reflection before trade-offs are made.

Riba (رِبَا)

Interest or usury; any predetermined increase on a loan or exchange that creates inequality. Prohibited in Islam as it enables exploitation and unjust enrichment.

In the essay: The interest-based framing of technical debt ("pay it back with interest") normalises riba-based thinking in product decisions, treating shortcuts as internal liabilities rather than disclosed risks.

Zulm (ظلم)

Injustice or wrongdoing; literally, placing a burden where it does not belong. Islamic law seeks to prevent structures that shift harm unfairly onto others.

In the essay: Undisclosed technical debt creates ẓulm by transferring risk from the original developer to future maintainers and users.

Core Concepts

Codebase

The complete collection of source code for a software application or system.

MVP (Minimum Viable Product)

The simplest version of a product that can be released to users to test whether they'll actually use it. Contains only core features needed to validate the concept.

Technical Debt

The implied cost of additional work caused by choosing an easy or quick solution now instead of a better approach that would take longer. Conventionally framed using interest-based language as a liability to "pay back with interest."

In the essay: Critiqued as misframed; should be reconceptualised as "technical disclosure."

Technical Disclosure (New concept introduced in this essay)

The practice of documenting technical shortcuts immediately when taken, identifying who will be affected, obtaining stakeholder consent where appropriate, and maintaining transparency throughout the product lifecycle. Contrasts with "technical debt," which frames shortcuts as internal liabilities to be "paid back with interest."

In the essay: Technical disclosure reframes the stance from "Can we afford to pay this back?" to "Have we been truthful with those who will bear this risk?"

Documentation & Comments

Code Comments

Text within code files that explain what the code does or why certain decisions were made. Not executed by the computer—they're for human readers.

Documentation

Written explanations of how code works, what it does, and why decisions were made. Can include code comments, external documents, or design specifications.

TODO Comment

A comment marking something that needs to be fixed or improved later, typically written as // TODO: Fix this later

Development Practices

Definition of Done

The agreed-upon criteria that work must meet before being considered complete. May include requirements like testing, documentation, and code review.

Retrospective

A regular team meeting (typically at the end of each sprint) where the team reflects on what went well, what didn't, and what to improve.

Sprint

A fixed time period (usually 1-4 weeks) in Agile development during which a team commits to completing specific work items.

Sprint Planning

The meeting where the team decides what work to accomplish in the upcoming sprint.

Story Points

A unit of measure used to estimate the effort required to complete a work item, based on complexity and effort rather than time.

Code Quality & Testing

Automated Tests
Code written to automatically verify that other code works correctly. Allows developers to catch bugs quickly and ensure changes don't break existing functionality.

Edge Cases
Unusual or extreme situations that code might encounter, which are often harder to handle correctly than typical scenarios.

Refactor
Restructuring existing code to improve its internal structure, readability, or maintainability without changing its external behavior.

Software Architecture

API (Application Programming Interface)
A way for different software programs to communicate with each other. A set of rules and protocols that allow one application to access features or data of another.

Deprecated API
An API that is still available but marked for removal in future versions, usually because a better replacement exists.

Hardcoding
Writing fixed values directly into source code rather than making them configurable. Makes code inflexible and harder to adapt to changing requirements.

Development Workflow

Code Review
The process of having other developers examine code before it's integrated into the main codebase, to catch errors and ensure quality.

Deployment
The process of releasing new or updated software to users.

Hotfix
An urgent fix applied quickly to resolve a critical problem in production, often bypassing normal development processes.

Production / Production Environment
The live system where real users access and use the software, as opposed to development or testing environments.

Version Control / Git
A system for tracking changes to code over time, allowing multiple developers to work together and revert to earlier versions if needed.

Team & Project Management

Maintainer
A developer responsible for keeping existing code working, fixing bugs, and making improvements over time.

Product Owner
In Agile development, the person responsible for defining requirements, prioritising work, and making business decisions about the product.

Stakeholder
Anyone with an interest in or who is affected by the software project, including users, managers, and business partners.

Technical Debt Register / Technical Uncertainty Register

A documented list tracking all known technical shortcuts, including what was simplified, why, who is affected, mitigation plans, and stakeholder consent.

Note: "Technical Uncertainty Register" is preferred in Ihsan Agile to emphasise disclosed risk rather than internal debt.

Software Quality Issues

Fragile Code

Code that is prone to breaking when changes are made, often due to hidden dependencies or poor design.

Legacy System

Older software that is still in use but may be outdated, poorly documented, or difficult to maintain.

Problem Areas Mentioned

Auth Fix

An auth fix is a change that corrects a problem with authentication or authorisation—making sure the right users can log in and only access what they’re allowed to.

Authentication

The process of verifying the identity of a user attempting to access a system.

Input Validation

Checking user input to ensure it's safe and valid before processing it, preventing bugs and security vulnerabilities.

The Islamic Critique: Riba and Gharar Together

From an Islamic ethical perspective, this framework embodies two problems simultaneously:

Riba (Interest-Based Thinking):

When conventional Agile normalises interest-based language—"pay it back with interest," "interest payments," "credit card debt"—it's not just using a familiar metaphor. It's shaping how teams think about ethical trade-offs.

The interest framework asks: "Is the return greater than the cost?" This is fine for financial decisions where you bear both the benefit and the burden. But technical shortcuts often transfer the burden to others—future developers, users, communities—while the team that took the shortcut has moved on.

Interest-based thinking inadvertently encourages: "We can afford this" rather than "We should disclose this."

Gharar (Hidden Uncertainty):

More fundamentally, the interest framework creates systematic gharar. When technical debt is treated as an internal liability, shortcuts become management decisions that don't require stakeholder consultation or consent.

The result:

  • Risk is hidden from those who will bear it

  • Future maintainers inherit code in a state of jahalah (ignorance)

  • Users rely on software with undisclosed limitations

  • Those who benefited from speed no longer bear the cost

This is the classical definition of gharar: information asymmetry that enables exploitation, even if unintentional.

Why This Matters: It's Not Just Theory

This isn't abstract critique. Real consequences follow from this framing:

The Muslim-Led Zakat Calculator Team:

A team building a zakat calculator for Muslim users is under pressure to launch before Ramadan. They simplify the calculation algorithm to meet the deadline, knowing it doesn't handle complex asset scenarios correctly.

Interest-based thinking: "We'll pay back this technical debt after Ramadan when things slow down. We can afford a few sprints of debt servicing."

Technical disclosure: "We need to tell users explicitly: 'This calculator handles simple cases only. For complex situations (multiple asset types, business ownership, agricultural nisab), consult a scholar.' And we need to document precisely what's simplified and why, so future developers understand the constraints."

The difference: In the first framing, users may unknowingly miscalculate zakat (failing to fulfill a religious obligation correctly). In the second, users make an informed choice about whether to rely on the tool.

The Islamic Finance App Team:

A team building an Islamic banking app takes shortcuts in transaction logging to improve performance. They plan to "pay back" this technical debt once they have more resources.

Interest-based thinking: "This is strategic debt. We can track it and address it next quarter."

Technical disclosure: "If we skip comprehensive transaction logging, users won't have full audit trails. This affects their ability to verify Shariah compliance. We need to disclose this limitation prominently and get stakeholder approval before proceeding."

The difference: One treats it as an internal optimization decision. The other recognizes it as a risk transfer requiring consent.

Acknowledgment: What These Frameworks Do Well

To be clear: McGreal & Jocham, and Ockerman & Reindl are addressing a real problem. Teams do need frameworks for thinking systematically about technical trade-offs under pressure. Their guidance helps organisations:

  • Recognise that shortcuts have consequences

  • Track technical debt systematically

  • Make trade-offs visible rather than hidden

  • Prioritize addressing debt before it becomes unmanageable

This is valuable work that has helped many teams improve their practices.

The Islamic critique isn't that these approaches are wrong, but that they're incomplete: they focus on internal management whilst overlooking the disclosure obligations owed to stakeholders who will bear the risk.

The Alternative: From Technical Debt to Technical Disclosure

What would it look like to reframe technical shortcuts through a gharar lens rather than a riba lens?

The shift is simple but profound: what conventional Agile calls "technical debt," Islamic ethics would call "technical disclosure."

Technical Debt (Interest-Based):

  • Internal financial liability

  • "Can we afford to pay this back?"

  • Hidden until it becomes crisis

  • Measured by impact on team velocity

  • Success = debt paid off

Technical Disclosure (Gharar-Aware):

  • Risk transfer requiring consent

  • "Have we been truthful with those affected?"

  • Visible from the moment it's created

  • Measured by impact on stakeholder trust

  • Success = stakeholders informed and consenting

This isn't semantic wordplay. It changes the stance entirely:

  • Documentation becomes amānah (trust obligation), not technical task

  • Transparency becomes moral duty, not project management practice

  • Stakeholder consent becomes required, not nice-to-have

  • Success measures shift from velocity to trust

What Technical Disclosure Looks Like in Practice

Example: The Emergency Authentication Fix

A critical security vulnerability is discovered. The team needs to patch it immediately.

Technical Debt Approach:
Technical Disclosure Approach: