Custom Software Projects

Custom Software Projects: From Business Need to an Agreed Scope

Define custom software scope through real workflows, users, data and acceptance examples, connecting discovery, R&D and prototyping to delivery decisions.

The project list in the BiCrmy demo application; all records are fictional

“Let us see purchasing requests in one panel” can start a software project, but it does not yet explain what the development team must deliver. Who creates the request? Who approves the budget? If the amount changes, does the earlier approval remain valid? Which record survives cancellation? Screens designed before these questions are answered may look tidy, yet missing decisions return as development requests once real work begins. A scope document makes those decisions visible in a custom software project.

The document does not need hundreds of pages. It needs to connect the business problem, users, processes, data and acceptance conditions. The purchasing scenario below is hypothetical. It helps explain how a business and development team can establish a shared description of the work instead of completing a generic template. The document should guide design and development while remaining capable of controlled updates when investigation reveals something important.

Find the problem behind the requested screen

Early conversations often begin with a proposed solution: a panel, CRM, mobile application or reporting page. These names suggest a direction without explaining the need. In the purchasing example, staff may track the same request in several spreadsheets. Is the problem lost information, delayed approval or duplicate orders? Each suggests a different improvement. State who is struggling to do what in the current process before turning the request into a list of features.

Walk through a transaction from beginning to end. Identify where it starts, which information is added and whose response is required. Record differences between management’s description and everyday practice. A report may request a field nobody currently records, for example. Decide how that information will be created before designing its presentation. A reporting screen cannot repair missing source information without a corresponding decision about ownership and data capture in the underlying process.

Describe the intended change in observable terms

“Increase efficiency” expresses an ambition but is not a clear acceptance condition. Which task needs fewer steps? Which information should become visible together? Which cause of delay should disappear? Seeing pending requests alongside their owners is a concrete goal for a purchasing team. Separate the desired outcome from the feature expected to support it. Building a panel is the means; improved visibility of work is the intended change.

Do not invent percentage gains when no baseline exists. Decide how current delays or errors can be observed first. Some initial goals may be qualitative: a user should understand why their request is waiting. Measurement can develop from that foundation. Realistic goals also help distinguish software work from business decisions. Unclear authority or inconsistent product definitions may need an operational decision rather than another screen. Make that dependency visible instead of expecting the system to resolve it automatically.

Define users through actions, not just job titles

“Manager” and “staff member” often describe too little. One employee creates a personal request, another reviews all requests and an authorised person approves purchases above an agreed amount. These are different access and decision needs. Describe groups through the work they perform, information they can see and decisions they can make. A shared job title may carry different responsibilities in different branches, so do not assume that an organisational label defines a complete permission model.

Access is more than seeing a screen. Creating, changing, approving, cancelling and exporting a record are distinct actions. Decide early whether someone can approve a request they created. Such rules are not minor interface details to add later; they affect how the process can be trusted. Examples in the scope document let business owners and developers assess the same situation without relying on an abstract role list that each side interprets differently.

Write the normal flow and its meaningful exceptions

The simplest sequence has an employee submit a request, a manager approve it and purchasing create an order. Real work includes missing information, returned requests, quantity changes and cancellation. Document the main flow, then ask what can differ at each stage. The exception list does not have to be endless. Prioritise situations that materially affect the business result or the integrity of the records the system must maintain.

What happens when the value of an approved request increases? Does it require another approval, or is a permitted change defined? Can users see the previous amount? This single case affects history, notifications and authorisation. “Request editing screen” does not describe that behaviour. A useful scope document exposes the business rule behind the interface. Mark unresolved questions as open decisions rather than writing them as if an answer has already been agreed.

Identify data sources and ownership

A request may contain a product, quantity, unit, cost centre and supplier. Those values may come from different places. Products might be maintained in another system while finance owns cost centres. List more than field names. Explain which information is required, when it can change and which record is authoritative. Teams may use different names for the same concept, so establish shared definitions before the interface gives those differences a permanent form.

Describe integration behaviour, not only its name

“Integrate accounting” can hide very different tasks. Which record moves in which direction, at what point and with what response to failure? How will duplicate creation be avoided? What happens if the other system completes an operation but no response arrives? These answers may require investigation. The scope should still identify the questions and the owner of that investigation instead of treating an integration name as a complete requirement.

Review current documentation, access conditions and a suitable test environment before treating integration effort as settled. A small technical experiment may be appropriate when uncertainty is high. This makes R&D a defined piece of work: an assumption to test, a result to capture and a decision to make afterwards. Distinguish the experiment from a production-ready integration. Research and product development contribute different outputs and should not silently acquire identical delivery expectations.

Include the conditions under which the system must work

It matters not only whether a user can complete an action, but under what conditions. Ask about concurrent use, devices and interrupted connections. Replace “make it fast” with a scenario that can be evaluated during acceptance. A request list can be assessed under agreed data volumes and operating conditions. The team should establish suitable targets through technical evaluation rather than inserting guessed numbers that later appear to be confirmed requirements.

Consider backup, restoration, change history, monitoring and maintenance ownership here too. Whom does the business contact after detecting a problem, and what information should the report contain? Who removes access when responsibilities change? Everything may not be developed in the same phase, but the decision should be visible. Unmentioned operational work does not complete itself after launch. Software delivery needs a workable operating arrangement as well as files and deployed screens.

Draw a coherent boundary around the first release

Separate committed work from future possibilities. Request creation, approval and basic status tracking could form the first purchasing flow, while forecasting or supplier scoring remains for later investigation. Deferring work does not make it worthless. It identifies a usable starting point and what can be learned from it. Choose an end-to-end piece of work rather than randomly removing modules until a feature list looks small enough.

Explicit exclusions reduce misunderstanding. State whether a mobile application, complete historical data cleansing or third-party licence fees are outside the agreement. Record dependencies such as access accounts, test data and business decisions. Good scope does not merely list the supplier's tasks; it also identifies inputs the business must provide. A realistic schedule depends on understanding those shared responsibilities and what happens when a necessary input is delayed.

Build acceptance conditions around observable examples

Instead of “approval module complete”, describe an operation. After the user submits all required information, the request appears in the relevant review queue. An unauthorised user cannot approve it. A returned request shows its reason. Such examples give design, development and testing teams a common outcome to discuss. Every condition need not be an automated test, but it should be observable in an acceptance review rather than depend on a general impression.

Test beyond the successful path. Define the expected behaviour when required information is missing, an external system does not respond or an action is submitted twice. It is impossible to exhaust every possibility at the start. Connect the most important decisions and known exceptions to delivery expectations. When a requirement can be traced into the interface and test scenario, “we thought it would work differently” becomes a specific discussion rather than an argument about assumptions.

Keep open questions in a decision record

Unknowns appearing during discovery are normal. The problem is letting them remain invisible inside prose. Give each open question an owner, required information and a review point. Finance-system fields may still need technical investigation, for example. Do not assume that dependent work is fixed before that question closes. The record supports the right order of work rather than existing only as a reason to stop the project.

Leave discovery with something the team can use

Bring current forms, anonymised example records, recurring problems and process participants to the first discussion. Describe a real transaction from beginning to end instead of arriving only with desired screens. The software team can turn that account into process and data maps, then assess where a prototype or technical experiment would reduce a critical uncertainty. The scope document becomes a shared output of that work rather than a form handed across the table.

When considering BiKreatif's Custom Software Projects, discuss responsibilities for needs analysis, R&D, prototyping and product development together. The useful outcome is an understanding of what will be built, why it matters and how it will be accepted, not merely a screen count. A strong scope does not promise that nothing will change. It gives both sides a basis for discussing the decisions, costs and dependencies affected when change occurs.

Frequently asked questions

Who should write the scope document?

The business contributes operational knowledge and the development team contributes technical evaluation. Developing the document together can expose assumptions neither side would recognise alone. The business explains real processes and decision owners; the team translates them into implementable behaviour and acceptance examples. Assign a document owner as well so that agreed changes remain visible rather than being scattered across separate conversations.

Can work begin before every detail is known?

Discovery, research and prototyping can begin specifically to reduce uncertainty. Do not describe an unresolved question as a fixed delivery commitment. Explain when it will be investigated and what the development decision depends on. There is a workable space between knowing everything and starting without recording any uncertainty. The important point is to make the next decision and its evidence understandable.

Can screen designs replace the scope document?

Designs help teams discuss interaction, but they may not fully describe permissions, data ownership, integration failures or acceptance conditions. Design and written scope should complement each other. A button does not explain who can use it under which conditions. Business rules need an understandable form, ideally supported by examples that can be reviewed alongside the interface.

Where does R&D fit into the project?

Use targeted investigation when a technical or usage uncertainty blocks a meaningful decision. Define the assumption, experiment and decision expected afterwards. Not every development task needs the R&D label. Distinguishing research findings from production-ready delivery keeps planning clearer and avoids treating a useful technical demonstration as if it were already a supported live feature.

What happens when the scope changes?

Assess whether the request clarifies agreed behaviour or adds new work. Review its effect on data, interface, integrations, testing and schedule, then update the document and related tasks after agreement. Banning change entirely can be as unhelpful as hiding its consequences. A clear evaluation route allows both sides to make a decision using the same information.

All articles