Foundation
Name the business objects precisely
A product with vague objects produces vague code. Terms like request, order, booking, listing, asset, lead, case, and job carry different lifecycle rules. Write those rules down before deciding API names or database schema.
- Define each entity by responsibility, not by where it appears in the UI.
- Capture lifecycle states and which actor can move between them.
- Document invariants that must remain true across every workflow.
