Is a project still custom development if it reuses an order or commerce module?
Engineering capabilities such as orders, accounts, permissions, messaging, and administration may be reused without making a project non-custom. The question is whether the agreed business workflow, data model, interface, integrations, and acceptance are delivered. The contract must also disclose reused and third-party components, licences, modification limits, and handover assets.
Rebuilding login, upload, or basic lists rarely creates business value, and sensible reuse can shorten delivery and remove known defects. It does not automatically transfer complete ownership of every underlying line of code, nor justify charging for a recoloured packaged store as fully bespoke. Copyright, licence to use, source delivery, and modification rights are distinct and depend on the contract, component source, and licence.
When decomposing features, data, and acceptance scenarios, also compare Can a custom software system keep adding features over time?; the linked guidance adds context that should be considered in the same decision.
| Route | Existing portion | Project-specific portion | Fit | Verify |
|---|---|---|---|---|
| Standard SaaS configuration | Vendor product and infrastructure | Limited fields, roles, and workflows | Common process and fast launch | Export, pricing, shutdown, and migration |
| Extension of a packaged system | Existing complete business product | Selected pages, plugins, or interfaces | Strong match to the original product | Source quality, upgrade path, and licence |
| Component-based custom work | Foundations such as identity, permissions, and orders | Core workflow, data, UI, and integration | Differentiation without rebuilding utilities | Reuse register, licence, tests, and assets |
| New development | Only languages and general frameworks | Most domain model and capabilities | Special algorithms, devices, or novel process | Cost, duration, and long-term maintenance |
Start with business facts when testing whether an order module fits. Retail may use basket, promotion, payment, shipment, and refund. A project order may use quote, contract, milestones, acceptance, and instalments. Cross-border trade adds currency, tax, customs, and timezone. Similar field names do not make the state machines equivalent. Forcing the wrong “awaiting payment–awaiting shipment” model turns every later exception into a patch.
Create a reuse register at project start: component and version, origin, internal or third party, licence, project modifications, whether source is handed over, security-update owner, and replacement cost. Open source does not mean unrestricted commercial use; licences differ on attribution, source distribution, and derivatives. Closed SDKs may charge by request, device, or year. GitHub's licensing guidance notes that visible code without a licence remains governed by default copyright rules.
Takeover depends on verifiable assets, not the phrase “the client owns the code”: a client-controlled or transferable repository, reproducible build instructions, environments and dependencies, schema and migrations, interface documents, ownership of third-party accounts, deployment configuration, test evidence, licence inventory, and known issues. Keep secrets outside the repository and let the client entity hold production accounts where practical. If Wavesteam retains a common foundation, specify the project's licence and whether it can operate and be maintained after termination.
Show reuse value in the estimate by separating foundation integration, business customization, external interfaces, migration, testing, and deployment. No fixed discount follows merely from an existing component, and “fully custom” should not hide reuse. Acceptance covers both new and reused behaviour, including state transitions, duplicate payment, inventory concurrency, refund, permission, logs, upgrade compatibility, and recovery.
Wavesteam discloses intended internal components and major dependencies, then tests fit against real client orders. If SaaS covers the core, configuration is the better recommendation. If business states, integration, or data control create competitive difference, component-based customization is appropriate. The SPDX licence list assists identification, while legal professionals should assess obligations. See the Transparent Delivery Standard for Wavesteam's asset and handover principles.