The Workflow Abstraction
When you’re building a tool for a specific professional domain, there’s a design choice that has more downstream consequence than almost any other: what level do you abstract at?
Abstract too low — too close to the raw domain — and your tool becomes domain-specific in ways that limit it unnecessarily. A rent roll parser that only understands multifamily rent rolls does everything right for multifamily and nothing for anyone else. The domain specificity isn’t a feature for users who work across domains.
Abstract too high — too far from the real work — and you lose the domain expertise that makes the tool valuable. A generic “document extractor” that works on any document doesn’t know what matters in a lease, what to flag in an operating statement, what structure to expect in a rent roll. It’s flexible but dumb.
The right level of abstraction is usually one step above the domain-specific format, but one step below the generic document problem.
For professional document workflows, that level is often the document type rather than the asset class or industry. A lease is a lease — whether it’s multifamily, office, or retail, it has parties, terms, dates, obligations. The specific clauses differ, but the shape of what you’re extracting is similar. Abstract at the document-type level and you can build something that handles all leases well without being so general it handles nothing well.
Finding the right abstraction level is how you escape the asset-class trap without falling into the generic-tool trap. You’re not optimizing for one narrow case. You’re not building a universal hammer. You’re building something that works for the full range of cases that share a meaningful underlying structure.
The question to ask is: what do the use cases I’m not optimizing for have in common with the ones I am? If the answer is “a lot,” you’ve probably found your abstraction level. The cases you’re not targeting aren’t out-of-scope — they’re in-scope with minimal additional work once you’ve built at the right level.
Domain expertise guides you down toward the specifics. Good product thinking pulls you back up to the abstraction that maximizes scope without sacrificing depth. +++