Skip to content
Software Delivery 11 min read

How to Run a Software Project So It Actually Finishes

By Peter Bamuhigire

Most failed software is not badly coded. It is badly governed. This guide gives non-technical leaders the controls that keep a project moving until it ships.

Project manager reviewing a Gantt chart and deliverables schedule for a software project
Back to Blog

Short answer

A software project finishes when it is governed like a business change, not treated as a coding assignment. The sponsor needs a written scope, a change process, milestone-based payments, visible progress evidence, one accountable client-side owner, and the discipline to stop new ideas from quietly entering the project as unpaid, unscheduled work.

Most failed software projects do not collapse because the code was impossible. They collapse because nobody protected the project from vague decisions, late approvals, moving requirements, and payments that rewarded time passing instead of useful work completed.

If you are the sponsor, you do not need to become technical. You do need to control the conditions around the technical team. Your job is to make the project finishable.

Start with a written scope people can say no to

The first project document should not be a beautiful proposal. It should be a decision tool. A good scope says what the system must do, what it will not do in this phase, who will use it, what data it needs, which reports matter, what integrations are included, and what will count as acceptance.

If nobody can use the scope to reject a new request, the scope is too weak.

For a stock system, "manage inventory" is not scope. "Record purchases, sales, adjustments, branch transfers, reorder levels, stock counts, and a monthly valuation report for three branches" is scope. The second version can be tested. It can be priced. It can be changed deliberately.

Put change control in writing before anyone asks for a change

Changes are not the enemy. Uncontrolled changes are. The Association for Project Management defines change control as the process through which requests to change an approved project baseline are captured, evaluated, then approved, rejected, or deferred. The UK Government Project Delivery guidance makes the same practical point: change is inevitable, but each change should be assessed for its effect on scope, time, cost, risk, and the agreed baseline before it is allowed into the project.

For a software sponsor, the rule is simple:

  • every new request goes into a change log
  • the developer estimates the effect on cost, schedule, and risk
  • the client owner accepts, rejects, or parks it for phase two
  • approved changes update the scope and the next milestone

This does not slow the project. It prevents the slowest failure of all: a project where every meeting adds "just one small thing" until the original budget no longer matches the work.

Software project team discussing scope, decisions and delivery planning
Scope decisions need one channel and one owner. Otherwise every meeting becomes a new source of requirements.

Tie payments to deliverables, not calendar dates

Date-based payment sounds clean, but it can create the wrong behaviour. The calendar moves whether the work is clear or not. Deliverable-based payment keeps both sides focused on evidence.

A healthier structure is mobilisation after signing, then milestone payments after approved wireframes or prototype, the first working module, user testing and corrections, and final deployment with handover and support setup. The word "approved" matters. It should mean the deliverable has been checked against acceptance criteria, not that somebody casually said "looks fine" in a meeting.

This protects the client from paying for invisible progress. It also protects the developer from endless unpaid revisions after a deliverable has already met the agreed standard.

Make the schedule verifiable

A software schedule should not only show dates. It should show what can be inspected at each date.

Weak milestone: "Development phase complete."

Verifiable milestone: "Users can create suppliers, record purchases, receive stock, and view the purchase register in the test environment."

Verifiable milestones change the tone of project meetings. Instead of asking, "Are we on track?", the sponsor asks, "Can we see it working?" That is the right question.

Name one client-side owner with authority

Many software teams are delayed by the client more than by code. The developer waits for sample data. The finance manager is unavailable. The operations team disagrees about the workflow. The director introduces a new requirement through WhatsApp. Nobody is sure who can approve the screen.

You need one named owner on the client side. This person does not need to be the managing director. They do need the authority to collect decisions, protect the developer's focus, arrange access to staff, chase missing data, and say, "This is phase two."

GOV.UK's service team guidance separates delivery roles clearly: product and service ownership keep the work aligned to organisational priorities, while delivery management removes blockers. Even in a small private business, the principle holds. Someone must own the business decisions. Someone must keep obstacles from stopping the team.

If everyone owns the project, nobody owns the delay.

Review working software, not slide decks

Progress reports are useful, but they are not proof. A software project should regularly show working increments: a demo in a test environment, sample records created during the demo, screenshots of completed screens, a list of open issues, decisions needed from the client, and the next milestone with acceptance criteria.

Software delivery team reviewing project work on screen
Useful progress is visible: a screen, workflow, data record, report, test result, or working module that can be checked.

This keeps the discussion practical. It also exposes problems early. If the team cannot demonstrate anything useful after several weeks of work, either the project is still in discovery, the scope was too vague, or progress is not being made.

Protect the team's time

One of the sponsor's least glamorous duties is protecting the project team from the organisation. Do not turn every staff member into a feature requester. Do not let users bypass the client owner with private instructions to the developer. Do not schedule workshops and then send people who cannot make decisions. Do not ask the developer to "just check" unrelated IT problems during project time.

Every interruption has a cost. It may not appear on the invoice, but it appears in the schedule.

Watch for drift before the project stalls

Project drift has visible warning signs: meetings discuss new ideas more than current blockers; the developer asks for the same decision more than once; the client keeps promising data "tomorrow"; milestone dates move but the scope does not change; users reject screens because they were never involved earlier; payments are due but acceptance criteria are unclear; nobody can explain what will be delivered in the next two weeks.

Do not wait for the project to fail loudly. Intervene while it is still recoverable. The intervention is usually a reset meeting with three outputs: current scope, open decisions, and a revised milestone plan. Anything outside that scope becomes a written change request or a phase-two item.

Use a weekly control rhythm

The sponsor should not attend every technical discussion. A simple weekly control rhythm is enough for many SME projects: what was completed, what was demonstrated, what decision is needed, what is blocked, what changed in scope, cost, or schedule, and what will be ready next week.

APM describes project controls as the discipline of managing scope, time, cost, risk, change, reporting, and decision-making. For a non-technical sponsor, the weekly rhythm is how those controls become visible.

Do not confuse "agile" with "anything can change"

Agile delivery does not mean the sponsor can change direction every week without consequence. PMI's recent Pulse of the Profession work emphasises flexible, fit-for-purpose delivery approaches, but flexibility still needs business alignment and active reassessment of project parameters.

In plain language: good teams can adapt, but adaptation still has a cost. If you want agility, fund it properly. Use short cycles, regular demos, prioritised backlogs, and clear decisions about what moves in and out. Do not use "agile" as a polite word for unmanaged scope.

The sponsor's control checklist

  • Is the scope specific enough to test?
  • Is there a written change process?
  • Are payments tied to accepted deliverables?
  • Does each milestone show something we can inspect?
  • Who owns decisions on our side?
  • What data, staff time, and approvals must we provide?
  • How will we know the project is drifting?
  • What happens after launch?

Finishing is a governance result

Software does not finish because everyone is optimistic at kickoff. It finishes because the sponsor creates the conditions for finishing: clear scope, controlled change, protected time, visible milestones, timely decisions, and payment discipline.

That is control without needing to manage the code.

If you are planning a custom system, ERP rollout, workflow tool, reporting platform, or business application, treat governance as part of the build, not an administrative extra. The earlier it is designed, the less expensive the software becomes.

For help structuring a software project before development begins, see our software and business systems services or contact Peter Bamuhigire to discuss the project scope, milestones, and governance model.

Sources used

PB

Peter Bamuhigire

Technology and Business Consultant with over 15 years of experience across more than 10 African countries. Founder of Chwezi Digital Solutions, based in Kampala, Uganda.

Discuss Your Project Governance

Ready to discuss your project?

Every engagement begins with a conversation. Book a consultation to explore how Peter's experience can serve your organisation.