The Amsterdam software market splits into three businesses that look alike
Search for a software partner in this city and the results mix three kinds of company that are hard to tell apart from a website and behave nothing alike once a contract starts. There are product studios that build and operate their own software and take client work between releases. There are delivery consultancies that sell a staffed team with a lead, a process and a release rhythm. And there is a large secondment layer, firms whose real product is placing individual engineers inside your organisation for a monthly fee.
All three will happily respond to a request for a custom application. Only one of them is selling you a finished result. The secondment layer is unusually visible here because the local hiring market has been tight for years and many employers solved capacity by renting people rather than recruiting them. That is a legitimate model and often the right one, particularly if you already have a technical lead who can direct the work. It is also the reason two proposals for the same brief can differ in shape rather than in price: one describes a system that will exist at the end, the other describes people who will be available per week.
Decide whether you are buying people or buying an outcome
Before you compare anything else, answer this internally. If you are buying an outcome, the supplier carries the estimating risk, owns the sequencing and is accountable when a feature slips. If you are buying capacity, you carry all of that and the supplier is accountable only for showing up with the agreed skills. Neither is better. Confusing them is what produces the classic failure where a buyer believes they commissioned a product and the invoice trail shows they rented developers.
The tell is in the proposal language. Outcome work names deliverables, acceptance criteria and a definition of done. Capacity work names roles, seniority and availability. If a document mixes both, ask which one governs when they conflict. Ask it in writing, because the answer determines who pays for the second attempt at a hard feature.
There is a further local wrinkle. Independent contractors are a large part of the talent pool here, and the rules on disguised employment have been tightened and are being enforced again. If your arrangement puts an independent contractor under your direct daily instruction for a long period, the exposure is yours as much as theirs. Working through a firm that employs its own software engineers removes that question. Working directly with individuals does not, and that should be a conscious choice rather than a discovery.
What belongs in the brief before anyone quotes
Most weak proposals are the predictable result of a weak brief. A brief that produces comparable quotes contains the business process the software has to support, described as it actually runs today including the workarounds. It names the systems the new work must talk to and who owns each of them. It states which users are internal and which are customers, because that changes the design effort far more than feature count does. It says what happens if the project stops halfway, and what you would still want to own.
It also says what you are not asking for. A brief that leaves the boundary open invites every supplier to guess differently, and then you are comparing guesses. If you want help structuring that document before you approach anyone, start from the wider software development company directory and shortlist against a written scope rather than against impressions.
Reading an Amsterdam proposal without guessing
Local proposals tend to be short and confident. That is a cultural habit rather than carelessness, but it means a lot of substance sits outside the document. Four things are worth extracting every time.
First, who is actually going to write the code, by name and by availability, and what happens if that person leaves the firm mid-engagement. Second, what the estimate assumes about your side: decision turnaround, access to systems, availability of a product owner. Estimates here usually assume a responsive client and quietly degrade when they do not get one. Third, what is excluded. Hosting, data migration, content entry, third party licence costs and post launch support are the usual omissions, and any one of them can be a large line item. Fourth, how change is handled, and whether a change request resets a delivery date or absorbs into a buffer.
Ask for a reference where something went wrong rather than a showcase project. The useful signal is not that a supplier has happy clients, it is how they behaved in the month a build was late.
Pricing models and what each one quietly assumes
Fixed price assumes the scope is genuinely knowable in advance. It suits a replacement of something that already exists, where the target behaviour can be pointed at. It suits discovery work badly, and a supplier who offers a fixed price for a vague brief has either padded it heavily or intends to win the argument later through change requests.
Time and materials suits exploratory work and integrations where the surprises live inside someone else's system. It requires you to run the work, or to pay for someone who will. A monthly retainer suits ongoing product development where the backlog never really ends, and it is the model most local software teams prefer because it lets them keep a stable team together. Whichever you choose, agree a cap or a review point. Open ended arrangements do not fail loudly, they just drift.
Contract clauses that decide who owns the result
Intellectual property should transfer on payment, in writing, and the clause should cover source code, design files, infrastructure configuration and documentation. Many disputes are not about the code at all, they are about the deployment pipeline and the environment variables that make it run. If the supplier holds domains, cloud accounts or app store listings on your behalf, name the transfer process now.
Pay attention to reusable components. Studios reuse internal libraries, which is efficient and usually fine, but the contract should grant you a perpetual licence to use and modify them rather than leaving you dependent on the supplier for a component you cannot legally replace. Agree an exit: a handover package, a documented environment, a notice period and a rate for transition support. Agree it while everyone is still enthusiastic. Nobody negotiates a fair exit during a breakdown.
The practical side: language, invoicing and cadence
Working in English is normal and rarely a friction point, although internal documentation and code comments may not be, so say if you need them to be. Invoices arrive in euros with local VAT rules applied, and cross border buyers should confirm the treatment before the first invoice rather than after it. Summer and the end of year both thin out availability more than a plan usually accounts for, so if a launch date is fixed, say so early and check the supplier's staffing calendar against it.
If the work touches design systems or a customer facing interface, the same conversation applies to the design partners you engage, and mobile scope is often better handled by specialists listed among mobile app developers working in the city. For front end and platform delivery, buyers frequently split the work with local web development firms rather than asking one supplier to be strong at everything.
Turning a longlist of Amsterdam software companies into a shortlist
Three suppliers is enough for a meaningful comparison and more than five wastes everyone's time, including yours. Brief them identically, in writing, and refuse to give one of them extra context in a call without giving the others the same. Ask each for the same artefact: a one page view of approach, team, assumptions and exclusions. Differences will be obvious immediately.
Then weight the answers for fit rather than polish. A studio that has built the same kind of system twice before will price it more accurately than one learning your domain on your budget, even if the second deck is prettier. When you are ready to put the same brief in front of several verified suppliers at once, request comparable proposals here and start the conversation with a scope everyone has read.