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.
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