Affordances in Software Engineering

Intermediate โ€” understands affordance theory from UX/design contexts (Gibson, Norman), has intuition about how it applies to software but hasn't formalized it. Practicing software engineer familiar with design patterns, distributed systems, and code review culture.

6 modules ยท 4 hours 30 min

Scope

How code, APIs, and architectures signal intended use, constrain misuse, and shape what engineers perceive as possible. Covers affordance theory foundations, code-level affordances, architectural patterns, anti-affordances and designed friction, practical evaluation frameworks, and affordance decay over time.

After completing this plan, you will be able to:

  • Analyze any codebase, library, or system architecture and articulate its affordance landscape โ€” what it makes easy, hard, hidden, and misleading
  • Use precise vocabulary (affordance, signifier, constraint, anti-affordance, affordance decay) in code reviews, design discussions, and ADRs
  • Apply the affordance analysis framework to evaluate a system and produce actionable improvement recommendations
  • Identify affordance decay patterns in growing systems and propose mitigation strategies
  • Design code and systems that consciously optimize their affordance properties for their intended audience