Programming & Coding
When an application no longer does what your business needs, a repetitive task consumes valuable time, or a technical problem is holding up progress, the challenge is rarely solved by choosing a programming language first. It starts with understanding what needs to change.
Provelopment provides software development, programming assistance and technical support for businesses and organisations. We can take on a defined piece of work, help improve an existing application or provide additional expertise where it is needed. The approach depends on the requirement, not a predetermined package.
You can begin by describing the problem in your own words. We'll establish what is involved, whether the work is a suitable fit and what needs to be agreed before it proceeds.
The work we can help with
Different requirements call for different kinds of development. These are the main areas in which to begin the conversation.
Develop software for a specific purpose
When existing tools don't address an important requirement, purpose-built software may be the better answer. That might mean a focused utility, a new feature or a larger application developed in agreed stages.
We begin with what the software must accomplish, who will use it and how it will fit into the work around it. Those decisions determine the scope and the technical approach.
Improve software you already use
An existing application may need an enhancement, a change in behaviour or careful attention to a persistent problem. Replacing it is not automatically the right answer.
We review the relevant code, dependencies and constraints before recommending a change. Where the cause or extent of the work is not yet known, an initial investigation may be needed before a reliable implementation scope can be agreed.
Programming assistance and technical support
Your team may need help with a defined development task, another perspective on a difficult issue or additional programming capacity for work already under way.
We can discuss the specific assistance required, the systems involved and how the work would be coordinated. Technical support may include investigation and diagnosis as well as an agreed correction or improvement.
The problem comes before the solution
The most useful starting information is often straightforward: what happens today, what you want to happen instead, who is affected and what constraints you must work within. An existing application may also involve source-code access, documentation, dependencies or decisions made by another developer.
We consider those factors before recommending an approach. Sometimes a relatively small change addresses the problem. Sometimes the requirement exposes work that should be separated into stages. And sometimes further investigation is the responsible next step.
Our aim is to make those distinctions visible, so you can decide what is worth doing and understand the basis of the work being proposed.
From requirement to delivery
The detail varies by project, but the decisions should be clear at each stage.
Understand the requirement
We discuss the desired result, the people who will use the software, the existing environment and any practical constraints. Where something is not yet known, we identify it rather than treating an assumption as a fact.
Agree the approach and scope
We define the work that can reasonably be agreed: deliverables, responsibilities, dependencies and the basis for reviewing completion. If investigation is needed first, we distinguish that work from a later implementation commitment.
Develop, communicate and review
The agreed work is carried out against its scope, with communication and review points appropriate to the project. You can assess the result against what was agreed, rather than discovering at the end that the objectives were understood differently.
Deliver and discuss what follows
We agree how the completed work will be delivered and what documentation or handover is included. Any ongoing support, further development or additional work is considered separately, according to what you actually need.
Clear agreements, including where there are unknowns
A clearly defined enhancement and an unfamiliar defect should not be quoted as though they carry the same uncertainty. If we can describe the deliverable with confidence, we can scope it accordingly. If the underlying problem is unknown, it is better to agree an investigation and its expected findings than promise a solution before the facts are available.
Changes to requirements are a normal part of some projects. They should be discussed and agreed, including their effect on scope and cost, instead of being silently absorbed or assumed. This protects both the customer and the work.
Technology and deliverables are agreed for the project
The technologies involved, the condition of an existing codebase and any third-party dependencies all affect what can responsibly be undertaken. We establish suitability and necessary access before agreeing the work. Deliverables, handover and applicable ownership or licensing terms are defined for the project; Foundation's open-source licence does not automatically apply to unrelated custom software.
Bring us the requirement, not necessarily the answer
A programming enquiry does not need to be a finished specification. Tell us what needs to work better, what you have already tried or what you would like to build. If there is a sensible path forward, we can explain the options and agree how to take the next step.