You have budget, stakeholder expectations, and a shortlist of firms that all claim they can modernize the same systems. The risky decision is not who can produce software. It is who can understand your operating constraints, make sound tradeoffs, ship into your environment, and leave you able to run what you paid for.
For a 2026 procurement, use a selection process that exposes how each provider actually works. Match the provider to your dominant risk, give every candidate the same decision brief, test claims with artifacts and working sessions, protect your exit path in the contract, and run a pilot through the hardest part of the system.
Match the provider model to the risk you need to retire
There is no generally best enterprise custom software provider. A firm can be excellent at integrating known systems and poor at discovering an uncertain product. Another can design a strong customer experience but lack the governance needed for a sensitive migration.
Start by naming the dominant risk in the initiative. Do not begin with a preferred programming language or a list of recognizable firms. Technology matters, but it rarely explains why an enterprise program is difficult.
| Your dominant risk | Provider model to examine | Evidence to request |
|---|---|---|
| The workflow, product, or user need is still uncertain | A product engineering partner with strong discovery capability | A discovery plan, examples of decisions changed by user evidence, a product leadership role, and a backlog that separates assumptions from validated requirements |
| The work crosses many internal and third-party systems | A systems integrator or integration-focused engineering firm | System context maps, API and data-contract examples, dependency management, cutover planning, and a reference project with comparable integration boundaries |
| A fragile legacy platform must change without interrupting operations | A modernization specialist | An incremental migration approach, dependency analysis, data reconciliation, rollback design, and evidence that old and new components can coexist during transition |
| The system handles sensitive or regulated data | A provider with mature security, privacy, and delivery governance | Named control owners, secure-development practices, audit artifacts, incident procedures, data-flow documentation, and clear subcontractor oversight |
| The architecture and backlog are already well defined, but capacity is constrained | A managed delivery squad or staff-augmentation provider | The actual proposed team, technical screening methods, onboarding plans, delivery accountability, and a clear boundary between your leadership duties and theirs |
This distinction changes your shortlist. Staff augmentation can be appropriate when you already have product ownership, architecture, security, and delivery management. It is a poor substitute for those functions when they are missing. A large integrator may be well suited to a multi-system program but unnecessarily heavy for a focused product build. A specialist can reduce technical risk while still needing your organization to own business adoption.
Write a short risk statement before you contact providers: We need to achieve this operating outcome, and the hardest uncertainty is this constraint. If stakeholders cannot agree on that sentence, the procurement is not ready for a meaningful vendor comparison.
Apply non-negotiable filters next. These can include deployment environment, data location, security obligations, integration platforms, accessibility requirements, support coverage, language or time-zone needs, procurement rules, and restrictions on subcontracting. Treat them as pass-or-fail conditions. A polished proposal cannot compensate for a provider that is unable to operate inside your mandatory boundaries.
Give every candidate a brief that cannot be gamed
Vague requests produce proposals that look comparable but are built on different assumptions. One provider may include discovery, migration, testing, and production support. Another may quote only implementation. The lower number then reflects a narrower interpretation, not necessarily a more efficient team.
Your decision brief should give every candidate the same view of the problem while leaving room for them to challenge the proposed solution.
- Current state: Describe the workflow, systems, users, data sources, ownership boundaries, and recurring failure points. Include diagrams where they exist, but mark anything that may be outdated.
- Desired business outcome: State what must become observably different. Replacing a platform is an activity; removing duplicate entry, improving decision visibility, or enabling a new service is an outcome.
- Scope boundaries: Identify what is included, what is excluded, and what remains undecided. Hidden exclusions tend to reappear as change requests.
- Known constraints: List mandatory platforms, identity systems, integration protocols, data classifications, accessibility expectations, release controls, and operational windows.
- Unknowns: Name uncertain data quality, undocumented interfaces, unresolved ownership, pending policy decisions, or dependencies on other programs. You are testing how the provider handles uncertainty, not whether it pretends uncertainty is absent.
- Internal responsibilities: Name the people who own product decisions, architecture, security, data, operations, procurement, and acceptance. If a role is unfilled, say so and ask how the provider would cover or help establish it.
- Commercial boundaries: Explain the available budget process, approval gates, target window, and any required pricing structure. Ask providers to separate assumptions, exclusions, optional work, and third-party costs.
- Decision method: Tell candidates which evidence will be evaluated, who will participate, and which conditions are mandatory. This discourages proposals designed mainly to impress an executive audience.
Require a common response structure. Each proposal should identify the proposed first phase, the questions it will answer, the actual roles needed, major dependencies, technical unknowns, delivery governance, security responsibilities, acceptance approach, commercial assumptions, support model, and exit plan.
Do not reward false precision. A detailed estimate built before the provider has seen the systems can still be a guess with professional formatting. Ask what evidence supports the estimate, which assumptions have the greatest cost impact, how uncertainty is represented, and what event would trigger re-estimation. Compare the boundaries behind the numbers before comparing the numbers themselves.
Also let candidates disagree with your requested solution. A credible provider should be able to explain which requirement it would validate first, which architectural commitment it would delay, and which part of the proposed scope creates avoidable risk. Blanket agreement is not proof of collaboration.
Test delivery behavior, not presentation quality

A proposal tells you what a provider wants to promise. Your evaluation needs to reveal how its team reasons when information is incomplete, dependencies conflict, or a release fails.
Create the scorecard before demonstrations begin. Otherwise, a charismatic presenter or attractive prototype can quietly redefine what matters. Choose criteria that reflect the consequences of your program, assign their relative importance, and define the evidence required for each rating.
- Problem fit: Does the provider understand the operating problem, users, constraints, and adoption burden?
- Technical judgment: Can the team explain architecture choices, integration boundaries, tradeoffs, failure modes, and migration sequencing?
- Delivery discipline: Are decisions, risks, dependencies, testing, releases, and changes managed visibly?
- Security and privacy: Are responsibilities embedded in delivery, or deferred to a review near launch?
- Team quality: Have you met the people who will perform the work, and do their roles match the proposal?
- Operational readiness: Will your organization receive the monitoring, documentation, deployment assets, and knowledge needed to operate the system?
- Commercial clarity: Are assumptions, exclusions, third-party costs, change mechanisms, and support obligations understandable?
- Independence: Can you retain, operate, modify, and transition the software without being trapped by undocumented knowledge or proprietary dependencies?
Have evaluators record their ratings independently before the group discussion. The goal is not mathematical certainty. It is to make disagreements visible. A security lead and a product owner may rate the same proposal differently for valid reasons, and those differences point to decisions the steering group must resolve.
Use a scenario workshop to expose the real team
Give shortlisted providers the same time-boxed scenario based on a genuine risk in your environment. For example, an upstream system begins returning incomplete records during a staged release, or a new identity requirement conflicts with the planned user journey. Ask each team to work through questions, options, ownership, validation, deployment, monitoring, rollback, and stakeholder communication.
Do not grade the workshop on whether the provider guesses your preferred answer. Notice whether the team:
- asks about business impact before selecting a technical response;
- separates known facts from assumptions;
- identifies who has authority to make each decision;
- considers data integrity, security, operations, and user impact together;
- offers reversible steps while evidence is incomplete;
- makes disagreement visible instead of hiding it behind consensus language; and
- records decisions and unresolved questions in a form another team could use.
Follow every important claim with an evidence request
Use a simple chain: claim, artifact, reference, and working explanation. If a provider claims mature DevSecOps, inspect a redacted pipeline or control artifact and ask the proposed delivery lead to explain how exceptions are handled. If it claims expertise in legacy modernization, ask for a migration decision, the tradeoff behind it, and a client reference who can discuss the difficult part of the transition.
Reference calls are not character checks. Confirm whether the people presented during procurement remained involved, where the estimate changed, how bad news was communicated, which responsibilities stayed with the client, how production incidents were handled, and what the client had to rebuild or document after handover.
Red flags include unnamed delivery personnel, heavy reliance on sales demonstrations, estimates without assumptions, security deferred until the end, proprietary components without a transition path, undisclosed subcontracting, and an unwillingness to describe a failed decision. Strong providers do not need to pretend every previous engagement was frictionless.
Protect operability, data, and your exit before work starts

The contract should do more than authorize development and payment. It should define how you inspect the work, accept it, operate it, change direction, and leave the relationship without losing control of the system.
Turn handover requirements into delivery requirements
- Repositories and access: Specify where source code, configuration, infrastructure definitions, tests, documentation, and deployment assets reside. Your authorized personnel should have appropriate access throughout delivery, not only at the end.
- Ownership and licensing: Distinguish custom work, pre-existing provider assets, open-source components, commercial dependencies, and third-party services. Record the licenses and restrictions that apply to each.
- Acceptance: Connect acceptance to observable behavior, quality checks, security requirements, data reconciliation, operational documentation, and agreed non-functional needs. A feature being demonstrated is not the same as it being ready to operate.
- Change control: Define how changes are raised, analyzed, approved, priced, scheduled, and recorded. Preserve the decision history so a later dispute does not depend on memories of a meeting.
- Security and privacy: Assign responsibility for access, secrets, vulnerabilities, audit evidence, incident notification, data retention, deletion, and subcontractor controls.
- Continuity: Address key-person changes, replacement standards, knowledge transfer, staffing visibility, and the conditions under which subcontractors can be added.
- Operations: Define logging, monitoring, alert ownership, deployment procedures, backup and recovery responsibilities, support boundaries, and escalation paths.
- Transition: Require current documentation, environment inventories, dependency registers, known-issue records, runbooks, credentials transfer procedures, and reasonable cooperation with an internal or replacement team.
Ambiguity in these areas can create financial exposure, operational disruption, security gaps, or loss of practical control over the software. Have qualified legal, procurement, security, privacy, and technical reviewers adapt the terms to your organization. This is especially important when sensitive data, cross-border processing, regulated workflows, or material business continuity risks are involved.
Separate AI used during delivery from AI embedded in the product
AI-assisted delivery needs its own due diligence. Ask which coding assistants, models, and external services the provider permits; what code, requirements, logs, or data may be sent to them; whether submitted material is retained or used for training; how access is controlled; and how usage is logged. Require human review, testing, provenance controls, and an incident path appropriate to the sensitivity of the work.
If the product itself contains an AI feature, the risk is different. Document the model or service dependency, data flow, evaluation method, acceptable and unacceptable behavior, human escalation, fallback behavior, monitoring, version-change process, cost boundaries, latency constraints, and what happens when the model or provider is unavailable.
Ask how your organization would replace the model, export relevant data, reproduce an evaluation, and investigate a harmful or incorrect output. A general corporate AI policy does not answer those product-level questions.
Use a pilot to test the hardest boundary, then decide
A useful pilot is a thin vertical slice through real delivery risk. It is not a disconnected interface mockup or a convenient feature chosen because it will look good in a demonstration.
Choose a workflow that crosses the boundaries most likely to cause trouble: identity, representative data, an important integration, business rules, deployment, observability, and operational ownership. Use controlled environments and approved data access. Do not expose production systems or sensitive data merely to make the pilot feel realistic.
The pilot charter should state:
- the business and technical hypotheses being tested;
- the risks and unknowns the work must reduce;
- what is in scope and deliberately out of scope;
- the acceptance tests and evidence required;
- the security, privacy, and access rules;
- the artifacts that must remain with your organization;
- the commercial cap and approval mechanism;
- the conditions for stopping, extending, or proceeding; and
- the handover required even if the provider is not selected for the next phase.
Evaluate the working relationship as closely as the resulting code. Look at the quality of questions, the visibility of decisions, the treatment of uncertainty, the handling of defects, the completeness of tests, the repeatability of deployment, and the usefulness of documentation. Notice whether risks arrive early enough for you to act or appear only when they threaten a deadline.
At the decision gate, do not ask only whether the pilot works. Ask whether your team understands why it works, can see how it is operated, knows what remains uncertain, and could transfer it to another capable team. A successful demonstration with no durable knowledge is weak evidence for an enterprise partnership.
Key takeaways
- Choose a provider for the dominant risk in your initiative, not for name recognition or the longest capability list.
- Give every candidate the same problem, constraints, unknowns, responsibilities, and response format before comparing proposals.
- Test claims through artifacts, scenario workshops, proposed-team interviews, and reference calls tied to comparable work.
- Make repository access, ownership, security, operability, documentation, subcontracting, and transition obligations explicit before delivery begins.
- Evaluate AI-assisted development separately from AI features embedded in the software.
- Run a controlled vertical-slice pilot through the hardest system boundary, with acceptance and exit requirements defined in advance.
Your next move is to write the short risk statement and decision brief before adding another provider to the shortlist. Once every candidate is answering the same problem and producing the same kinds of evidence, the choice becomes less about sales confidence and more about whether you can trust the team with the system after the kickoff meeting is over.

Leave a Reply