A limiting condition that bounds what the product can do, when, or how, technical, legal, resource, or market.
A constraint is a fixed boundary the team works inside: a budget ceiling, a regulation, a hard launch date, a single overloaded service that throttles everything downstream. The instinct is to resent constraints as obstacles. The more useful reading is that a constraint is information. It tells you exactly where to push, and a system has far fewer real constraints than the long list of things teams complain about.
Eliyahu Goldratt put constraints at the centre of management thinking in his 1984 business novel The Goal), which introduced the Theory of Constraints. His claim was deceptively simple: every system has one constraint that limits its throughput, in the way a chain is only as strong as its weakest link. Improving anything other than that constraint produces no gain in the output that matters. The famous illustration is a hiking troop whose pace is set by its slowest walker; speeding up the others only stretches the line.
Goldratt turned this into the five focusing steps: identify the constraint, exploit it (wring maximum value from it as-is), subordinate everything else to it, elevate it (add capacity), and then repeat, because relieving one constraint exposes the next. The discipline was to resist optimising the non-constraints, which feels productive and changes nothing.
The idea spread from factory floors to software through Lean and DevOps, where the constraint is usually a stage in the delivery flow such as code review or a single deploymentDeploymentEngineeringA deployment eventView reference → pipeline. The current debate is about scope. Goldratt described physical, single-bottleneck systems; knowledge work often has policy constraints (an approval rule, a riskRiskComplianceA risk to the product or businessView reference →-averse habit) that are self-imposed and movable, which makes "identify the constraint" partly an act of organisational honesty.
A team's checkout conversion is flat. They want to redesign the payment screen, add wallets, and rebuild the cart, all at once. Applying the constraint lens, they instrument the funnelFunnelGrowthA conversion funnel tracking user progressionView reference → and find one stage where 38% of users drop: a forced account-creation step before payment. That step is the constraint. Exploiting it costs nothing structural; they add guest checkout and conversion rises 11 points in two weeks. The wallet work and cart rebuild, had they shipped first, would have moved nothing, because users never reached those screens. Only after the account-creation constraint is relieved does the next bottleneck (slow address validation) become worth touching.
In the Unified Product Graph, a constraint lives in the strategy region and acts as a boundary other entities are pinned to. A product carries its outer limits through Productbounded byConstrainthierarchy, while product_bounded_by_constraintConstraintconstrainsFeaturecross-domain, constraint_constrains_featureConstraintconstrainsInitiativesemantic, and constraint_constrains_initiativeConstraintconstrainsMetricsemantic connect a single boundary to everything it actually shapes, from a featureFeatureProduct SpecificationA product capability or featureView reference →'s scope to a target it caps. Ownership is explicit through constraint_constrains_metricConstraintowned byTeamcross-domain, which answers the question Goldratt's method forces: who can move this, and is it real. Modelling constraints as connected nodes, where a brief would bury them in prose, means a team can query which boundary touches the most work and focus there first. That is Goldratt's discipline made structural: find the one limit that governs throughput before improving anything else.constraint_owned_by_team
Type-specific fields on BaseNode
constraint_kindstringLimitation category
constraint_statusstringWhether binding, advisory, or lifted
rule_strengthstringEnforcement strictness. Reuses the governance/guideline rule vocabulary.
sourcestringFree-text origin: policy document, regulation, stakeholder, technical doc.
review_datestringRe-evaluation date (ISO-8601). Useful for regulatory or temporal constraints with sunset clauses.
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
5 edge types connected to this entity.
product_bounded_by_constraintconstraint_constrains_featureconstraint_constrains_initiativeconstraint_constrains_metricconstraint_owned_by_team