This note discusses the different dimensions on which organisations responsible for delivering working software in a professional capacity can be segmented. There are an infinite number of ways they could potentially be divided, but in this note I focus only on categorisations that could be useful in helping to make recommendations for product and engineering choices that are generally appropriate for orgs in that segment.
Most segments can be further divided into sub-segments (indented bullets below).
## By Business Model
How does the company employing the engineers make its money?
- **Product** — the software being built is itself what the company sells or is the primary vehicle through which it makes revenue. Most startups fall into this category.
- SaaS recurring subscription
- One-time purchase
- Ad monetisation
- **Services** — the company delivers custom software for other client companies and gets paid to do so
- Implementation — company designs and builds out the software, and possibly supports it too
- Advisory Consulting — company has specialised expertise in an area that client requires and advises client team on how to approach their situation without actually implementing it for them
- Training — company delivers specialised training sessions on aspects of software delivery to clients
- **In-house engineering team** — the software being built is ancillary to the company's operations and is not a profit center
## By Organisation Size
Soloists, SMBs, enterprises, etc.
- Number of total employees
- Number of software engineers
## By Organisation Structure
Who will the engineers be working with to deliver the software?
- Single team of cross-functional full-stack engineers build and operating the system
- Separate backend and frontend engineer teams
- Separate functional application development teams
- Central platform/enablement team
- Dedicated operations team
- Dedicated product management/owner roles
## By Organisation Maturity
- New bootstrapped startup
- Seed funded startup
- Growth-phase Series X startup
- Established company
## By Organisation Engineering Capability
- Experience with general software engineering practices
- Experience with core technology areas specific to software being built (e.g. cloud)
## By Application Audience
Who are the end users of the software being delivered?
- **B2B** — professional/business users
- Engineering — Audience is developers/engineers. Examples: Cloud providers, Stripe, dev tools companies
- Industry-specific end users — medical, government, financial services, etc
- **B2C** — consumers
- [The Consulting Business Model](https://commoncog.com/blog/the-consulting-business-model/)