banner

Understanding an IT company starts with understanding what it sells, what it owns, and what it is responsible for delivering.

From the outside, many IT companies look similar.

They hire software engineers.

They advertise technical expertise.

They talk about innovation, partnerships, and digital transformation.

Yet behind similar language, they may operate very different businesses.

One company builds software for clients.

Another develops a product it sells to many customers.

A third connects engineers with organizations that need additional capacity.

A fourth owns companies operating across several of these models.

These differences influence how work is sold, how decisions are made, and what engineers are expected to achieve.

This post explores four common labels:

  • software houses,
  • product companies,
  • brokers,
  • holdings.

They are useful labels, provided we understand that they do not all describe the same dimension of a business.

🧭 Start with the Business Model

Before looking at job titles or technology stacks, I would ask four questions.

What does the company sell?

Who owns the software or product being developed?

Who decides what should be built?

Who is accountable when the work does not deliver the expected result?

The answers reveal more than a company’s marketing description.

LabelWhat it primarily describesTypical commercial role
Software houseA software development services businessBuilds and maintains software for clients
Product companyA business built around its own productDevelops and sells access to, or licenses for, that product
Broker or intermediaryA role connecting demand with supplyArranges access to specialists or suppliers
Holding companyAn ownership structureHolds interests in operating companies

The last row matters.

A holding is an ownership structure. The other labels mainly describe how an operating business serves its customers.

A holding can own software houses, product companies, and intermediaries at the same time.

A single operating company can also combine several business models.

🛠️ Software Houses: Selling Software Development Services

Imagine a retailer that needs a new order-management system.

It understands its business, but it does not have enough engineering capacity to build the system internally.

It hires a software house.

The software house may provide:

  • discovery and requirements work,
  • software design,
  • implementation and integration,
  • testing,
  • maintenance and support.

Its commercial offering is the ability to deliver software development work for a client.

The client typically controls the business context and priorities. The supplier contributes engineering expertise and, depending on the agreement, delivery management.

Ownership and usage rights depend on the contract. We should not assume that every component or piece of intellectual property automatically transfers to the client.

The Contract Changes the Incentives

Two software houses can operate very differently.

One might provide engineers who join a client’s existing team.

Another might take responsibility for delivering an agreed system.

ArrangementWhat the client buysImportant question
Time and materialsEngineering work billed by time spentHow are priorities, progress, and spending controlled?
Dedicated teamReserved team capacityWho manages the backlog and accepts the work?
Fixed-price projectDefined deliverables for an agreed priceHow are scope changes and acceptance handled?
Managed serviceOngoing service under agreed responsibilitiesWhat service levels and remedies apply?

These arrangements distribute uncertainty differently.

A fixed price does not remove uncertainty. It makes the definition of scope and the handling of changes especially important.

Time-based billing provides flexibility, but the parties still need a way to judge whether the work is producing useful results.

The useful distinction is how much responsibility the supplier actually accepts.

📦 Product Companies: Building an Asset They Sell Repeatedly

Now imagine a company developing its own order-management platform.

Instead of building a separate system for one retailer, it sells the platform to many retailers.

Its revenue may come from subscriptions, licenses, usage charges, support, or a combination of these.

The company invests in a product and tries to recover that investment across its customer base.

That changes the decision-making context.

A feature requested by one customer may help many others.

It may also introduce complexity that the rest of the customer base does not need.

Product teams must weigh those consequences.

Ownership Extends Beyond Shipping a Feature

A product company needs to consider:

  • which customer problems to address,
  • how the product is priced,
  • how customers adopt it,
  • how reliably it operates,
  • how it evolves over time.

Engineering decisions can affect support costs, customer retention, and the ability to introduce future features.

Suppose one large retailer requests a custom approval workflow.

The implementation might be straightforward.

The harder questions are about the product.

Should every customer receive the feature?

Should it be configurable?

Will it require permanent customer-specific behavior?

Who will maintain it three years from now?

A product company must reconcile individual requests with the direction of a shared product.

However, the label alone does not guarantee engineering autonomy. A product organization can still have centralized decisions, short planning horizons, or teams with limited influence.

🤝 Brokers: Connecting Demand with Capacity

Return to the retailer.

This time, it already has engineering managers, architects, and an established development process.

It needs three additional engineers for six months.

An intermediary finds suitable specialists and arranges their engagement.

In this context, I use broker as a descriptive term for an intermediary. Companies may describe themselves as staffing firms, recruitment agencies, consultancies, or technology partners, depending on the services they provide.

Those terms are not interchangeable.

A recruiter placing a permanent employee has a different commercial relationship from a supplier contracting specialists to a client.

Where the Value Comes From

An intermediary may provide:

  • access to available specialists,
  • candidate screening,
  • commercial coordination,
  • contracting and invoicing,
  • replacement arrangements.

For a contract engagement, the intermediary may charge the client a rate and pay the specialist or subcontractor a lower rate.

That difference is a gross spread. It is not automatically profit: operating costs, contractual obligations, and commercial risks still need to be covered.

A recruitment firm may instead charge a placement fee.

The important question is what service the intermediary provides in return.

Follow the Delivery Responsibility

If engineers work under the retailer’s direction, the retailer may remain responsible for architecture, priorities, and delivery.

The intermediary’s responsibility may focus on supplying suitable people.

That is a different commitment from accepting responsibility for an entire software system.

Neither arrangement should be inferred from the word “partner.”

Read the actual scope.

Who manages the work?

Who accepts the result?

What happens when someone leaves?

Who resolves a delivery problem?

Those answers define the relationship.

🏢 Holdings: Owning the Businesses Behind the Work

Now imagine a group that owns three companies:

  • a software development consultancy,
  • a subscription software vendor,
  • a specialist staffing business.

The parent holding company owns interests in these operating businesses.

It may allocate capital, appoint leadership, coordinate acquisitions, or provide shared functions.

The subsidiaries may retain different brands, management teams, customers, and commercial models.

This is why “holding” belongs on a different axis.

Knowing that a business belongs to a holding tells us something about ownership.

It tells us much less about the engineer’s daily work.

That depends on the particular operating company, team, and client or product.

The Group Name Is Only Part of the Picture

For an engineer, useful questions include:

Who is my contractual counterparty?

Which company manages my work?

Am I building a group-owned product or working for an external client?

Can assignments move between subsidiaries?

For a client, the questions are similar.

Which entity signs the agreement?

Which entity delivers the service?

Does the parent make any contractual commitment?

A recognizable group name does not, by itself, establish responsibility for a subsidiary’s delivery.

🔗 Follow One Project Through the Different Models

Consider the same requirement:

A retailer needs customers to track the progress of their orders.

Several commercial paths could support it.

ModelPossible arrangementKey responsibility to clarify
Software houseBuilds a tracking system for the retailerScope, acceptance, maintenance, and integration
Product companyProvides an existing tracking platformProduct capabilities, configuration, and service commitments
BrokerSupplies engineers to the retailer’s teamSpecialist suitability, continuity, and client supervision
HoldingOwns one or more of the suppliers involvedWhich operating entity is accountable under the agreement

The customer-facing feature may look similar.

The ownership, commercial relationship, and distribution of work can be very different.

This is also why comparing hourly rates alone can be misleading.

A specialist’s time, a managed project, and a product subscription purchase different things.

🔄 Real Companies Often Combine the Models

The categories are useful, but their boundaries overlap.

A software house may develop its own product.

A product company may sell implementation services.

A consultancy may supply individual specialists alongside complete delivery teams.

A holding may own businesses that compete for different parts of the same customer’s budget.

Even within one company, two teams may have very different working arrangements.

One team owns a product roadmap.

Another works entirely within a client’s backlog.

A third maintains a service under contractual operating commitments.

The company label is a starting point. The actual engagement explains the work.

👨‍💻 What This Means for Software Engineers

For engineers, the business model helps explain the environment in which technical decisions happen.

EnvironmentQuestions worth asking
Software houseWill I own delivery, advise the client, or join a client-managed team?
Product companyHow does engineering influence the roadmap, and who owns the product after release?
Intermediary engagementWho directs my work, and what happens when the assignment ends?
Company within a holdingWhich subsidiary and team will I join, and how much does the group influence them?

I would also ask about a concrete recent decision.

How did the team choose between a customer request and technical maintenance?

Who decided the architecture?

What happened when a deadline became unrealistic?

Concrete examples make the working model easier to assess.

They also reveal whether the responsibility described during recruitment matches the authority engineers receive.

🔍 What This Means for Clients

For clients, the first step is to identify the gap they need to fill.

Do they need additional people?

A team capable of managing delivery?

An existing product?

An ongoing service?

These needs can overlap, but they require different agreements.

Hiring engineers does not automatically provide product management.

Buying a product does not automatically include every integration.

Commissioning a project does not automatically establish long-term support.

A useful agreement makes the boundaries visible:

  • what is included,
  • who makes decisions,
  • who owns the deliverables and relevant rights,
  • how success is accepted,
  • how changes and ongoing support are handled.

Clarity here supports both the commercial relationship and the engineering work.

🏁 Final Thoughts

The IT industry contains several ways of organizing and selling software work.

Software houses sell development services.

Product companies invest in products they offer to customers.

Brokers connect organizations with specialists or suppliers.

Holdings organize ownership across businesses.

These labels help us understand a company, but they cannot describe every engagement or team.

For me, the most useful questions remain practical.

What does this company sell?

What does it own?

Which decisions does it control?

What is it responsible for delivering?

Understanding those answers makes it easier to choose an employer, evaluate a supplier, and understand why an organization works the way it does.


🚀 Follow me on norbix.dev for more insights on Go, TypeScript, Python, AI, system design, and software engineering.