Business Software Development

How to Hire and Manage a Custom Software Development Company: 3 Tips for Business Owners

Hiring a custom software development company shouldn't mean simply paying a technology vendor and waiting months to find out what you got.

If you're a business owner evaluating custom software to improve your operation, you probably have many questions: How much will it cost? How long will it take? Will it actually work the way we need it to? What happens if we discover mid-project that something has to change? Who makes the decisions? What should the contract say? When should I make the payments?

And maybe the most important question of all:

How can I reduce the risk of investing in a software project that later doesn't meet what my business needs?

After many years working on software projects, there's something I consider fundamental: the success of a software development project doesn't depend only on the company writing the code. It also depends on how the client organizes, documents and participates in the project.

So I want to share three tips that I consider especially important for a business owner who is about to hire a custom software development project.

1. You need a project owner on your side

This is probably one of the most important tips. When a company hires a software development firm, it usually assumes the vendor will have a project manager and, therefore, the project will be managed. True. But one part is missing.

You also need someone who represents your company.

That person doesn't have to be a professional project manager or a technology specialist. It can be a manager, a department head, an administrator, an operations lead or a trusted person who knows the business well. What matters is that they have the authority to coordinate with the vendor and make certain decisions.

Why is it so important?

Because a software development company may know technology very well, but it doesn't necessarily know your business. The software firm may know how to build a CRM. But you know how your sales team works, how sales are approved, what information you need to make decisions, what exceptions exist, which customers require special terms, which processes are truly critical and what problems your business has today.

That knowledge lives inside your organization. That's why, when you build custom software, you need someone who can translate business knowledge into project decisions.

PMI has noted that requirements definition should involve the relevant stakeholders and that they should be aligned on the project scope before work on requirements begins.

Picture this scenario

Your company wants to build a system to manage orders. The software firm asks: "What should the system do?" Sales says one thing. Operations says another. Finance adds new conditions. The general manager asks for an extra report. And then the owner shows up saying: "But I also need to see this."

If no one is coordinating those decisions, the project can quickly turn into a collection of requests. That's why I recommend having one person represent the client. Not to tell the vendor how to code, but to help answer questions like: Do we really need this? Who will use this feature? What priority does it have? Who must approve it? Was this in scope? Does this change affect the scope? Can we defer it to a second phase? What business process are we trying to solve?

The client-side owner does not replace the vendor's project manager

They are different responsibilities. The development company should manage its technical execution and its project. But on the client side there must be someone who can represent the business, provide information, coordinate users, validate decisions and approve deliverables.

This participation is not a formality. PMI notes that requirements must be elicited, defined, documented, prioritized, tested and controlled, and that requirements management also involves stakeholders and their responsibilities.

My recommendation

Before hiring a custom software development project, ask yourself: who will be the person representing my company during the project? If the answer is "I don't know, we'll see who can do it," I would define it before starting.

2. Document what you're actually buying

This tip sounds obvious, but in software projects it's where problems often begin. I've seen situations where the client and the vendor start the project with a general idea of what they want to build, but without sufficiently documenting what exactly finishing the project means.

And that's when a very dangerous phrase shows up: "We'll talk about that." Talking is necessary, but in a software project many of those conversations should end up as documentation. Why? Because six months later no one remembers the same conversation the same way.

Software can't be evaluated just by saying "make it work"

Suppose the contract says: "Sales module development." What does that mean? Does it include customers? Products? Quotes? Approvals? Discounts? Taxes? Printing? ERP integration? Reports? A mobile app? Notifications? Training? Data migration?

The phrase "sales module" can mean completely different things to two people. That's why documenting is so important. IEEE explains that software requirements are the basis on which the system's design, implementation and validation are later built, and it highlights qualities such as completeness, consistency, traceability and verifiability.

What you should document in a software project

There is no single document that works for every project. Depending on size and complexity, you may have a contract, a Statement of Work, a requirements specification, prototypes, diagrams, user stories, acceptance criteria, a schedule and other documents. But at minimum I would try to clearly document these elements.

Scope. What will be built? And something equally important: what will not be built? The latter is often forgotten. The boundaries of the project are as important as its features.

Requirements. What should the system do? Requirements should describe, clearly enough, the needs the solution must satisfy. There may be functional, security, performance, integration, availability, usability, audit or compatibility requirements, among others. You don't necessarily need to turn a small company's project into a 300-page document, but you do need the important decisions to be clear enough.

Business processes. This part seems especially important to me for businesses. If you're building software to improve a process, don't document only the screens — document the process too. For example: request → review → approval → execution → invoicing → closing. Then ask: who performs each step? What information do they need? What happens if it's rejected? What happens if information is missing? What exceptions exist? What business rules must be met? Because a system shouldn't just digitize screens: it should solve a business process.

Prototypes and designs. When useful, also document prototypes, wireframes, screen designs, flow diagrams, process diagrams, data models, sample reports and sample documents. A picture can prevent many arguments. PMI even recommends using models or prototypes when necessary so users can visualize the solution and catch inconsistencies or problems before moving forward.

And there's another document you shouldn't underestimate: the contract

The contract shouldn't be limited to saying: "The company will develop a system for X dollars." For a custom software project, there should be enough clarity on aspects such as scope, deliverables, responsibilities, schedule, milestones, payments, acceptance criteria, changes, intellectual property, support, maintenance, confidentiality, client dependencies and closing conditions.

The American Bar Association recommends carefully reviewing the Statement of Work, because it typically details the deliverables, phases, schedule, milestones, pricing, responsibilities, assumptions and other relevant terms of the technology services engagement. Stanford uses a similar structure in its own contracting processes: requirements, milestones, tasks, schedule, budget, deliverables, acceptance criteria, exclusions and responsibilities are part of a well-defined SOW.

It doesn't mean you have to copy a university contract. It means there's a fairly clear logic behind good project documentation.

3. Don't make the first big payment without knowing exactly what you're funding

This can be an uncomfortable topic. But I believe a business owner should ask this question before starting a software project: why am I making this payment, and what deliverable, milestone or phase am I funding?

I'm not saying every software project must have exactly the same payment schedule, nor that there should never be a deposit. Depending on the project, the vendor, the contracting model and the initial effort required, an initial payment can be perfectly reasonable. The problem appears when the client hands over a significant amount of money without clearly defined scope, deliverables, milestones and acceptance conditions. That increases uncertainty for both sides.

Payment should be tied to the project

A possible structure could be: kickoff → analysis and definition; milestone 1 → approved design/prototype; milestone 2 → first working version; milestone 3 → core features; milestone 4 → testing and fixes; milestone 5 → go-live and closing.

I'm not saying this is the right structure for every project. It's just an example. What matters is that there's a reasonable relationship between money → work → deliverable → acceptance. PMI identifies milestone-based payments, acceptance conditions and change control as important elements in fixed-price contracts. Stanford also states in its SOW models that when payments depend on deliverables, they should be tied to defined milestones, and that both completion criteria and who will review and accept the deliverables must be specified.

Paying for "progress" is not the same as paying for an outcome

Here's a difference I consider important. A vendor might say: "We've already worked 300 hours." But the client's question should be: "What verifiable deliverable do those hours correspond to?" Because in software we can work many hours without necessarily having finished something the client can use.

So, especially for phase-based projects, it's useful to define what is delivered, when it is delivered, who reviews it, how it is tested, what "done" means, what happens if it doesn't comply and how observations are fixed. In other words: you shouldn't only define when you pay; you should define what it means for the work to be accepted. PMI has noted that acceptance should be based on previously defined criteria and that deliverables should be verifiable against those criteria.

What if I want to change something during the project?

This also needs to be documented, because changes will appear in virtually any software project. Sometimes because the client discovers a new need, sometimes because a user finds a problem, sometimes because a technical constraint appears, sometimes because the business process changes.

The problem isn't changing. The problem is changing without controlling the change. For example: "While we're at it, let's add commissions to the sales module." Then: "And it would be good to connect it to the ERP." Then: "We also need a mobile app." Then: "Can we add AI?"

Each change may seem small, but accumulated they can completely transform the original project. That's why there must be a change control mechanism. PMI recommends establishing processes to communicate, evaluate and approve changes to requirements, along with document control and traceability mechanisms.

A software project needs two teams

Here's an idea I consider very important for any business owner. When you hire a software development company, you often think: "They're responsible for the project." In reality, you have two teams.

The vendor's team, with its developers, architects, designers, QA, specialists, project manager and analysts. And the client's team, with its users, process owners, manager, business specialist, project owner, people who must provide information and people who will approve the results.

The project needs both sides to work. ISO/IEC/IEEE 12207 provides a framework for software life cycle processes and covers the acquisition, supply, development, operation, maintenance and retirement of software systems and services, including stakeholder participation. It is also specifically applicable to custom software systems.

That's important because a custom software project isn't simply "client buys software → vendor codes." It's a working relationship where both sides have responsibilities.

The client can also make a software project fail

This may sound harsh, but it's important to say it. When a technology project goes wrong, we often immediately think: "The software company did a bad job." And that may be true. But not always.

It can also happen that no one on the client side makes decisions, that the client doesn't provide information, that users don't participate, that requirements change constantly, that there's no approval owner, that internal processes aren't defined, that key people don't have time to review, that features keep being added or that the scope was never really agreed.

PMI identifies precisely the need to define stakeholder roles and responsibilities and to manage requirements in a structured way. That's why, when a company hires software development, it isn't just buying programming: it's taking part in a project.

How should a company prepare before hiring?

If I were a business owner about to invest in a significant custom software project, before signing I would ask:

  1. What business problem am I trying to solve? Don't start with technology. Start with the problem.
  2. Who will be responsible for the project inside my company? Define a name and responsibilities.
  3. What is the scope? What's included? And especially: what's excluded?
  4. What documents describe the solution? Requirements, processes, prototypes, designs, diagrams or any other document that fits the project.
  5. What are the deliverables? Not just "system development." Define what you'll receive.
  6. How will we know a deliverable is done? Define acceptance criteria.
  7. How will changes be handled? What happens if you want to add something?
  8. How will payments be made? Where appropriate, tie payments to clearly defined phases, milestones or deliverables.
  9. What depends on my company? Information, users, system access, decisions, testing, approvals, infrastructure, etc.
  10. What happens when the project ends? You should be clear about code, documentation, access, infrastructure, data, intellectual property, warranties, support and maintenance.

You don't need to know how to code to manage a software project well

Here's another point I want to make clear. If you're a business owner thinking: "I don't know anything about programming — how am I supposed to control a software project?", you don't need to become a programmer. You need to understand what the project must deliver and how to verify that what's delivered meets your business needs.

Your main responsibility isn't to say "use Laravel," "use PostgreSQL" or "build it in React." That's part of the technical analysis and design that specialists should handle, unless your organization has specific technology requirements. Your responsibility as a business owner is much more important: explain what your business needs, what outcome you expect and take part in the decisions that affect the business. Technology must serve that objective.

What if I don't yet have everything figured out?

Then don't try to invent it all before talking to a specialized company. This is also a normal situation. Many companies know perfectly well what their problem is, but don't yet know what the technology solution is.

For example: "My sales team wastes a lot of time preparing quotes." That's a problem, but it isn't yet a software specification. From there you have to analyze how the process currently works, where time is lost, what information they use, what systems exist, which tasks are repetitive, what business rules exist, what could be automated and what should still be done by a person. Only then can we start defining a solution.

If you want to measure the current cost of those manual processes, you can estimate it with our process automation ROI calculator. And if what you need today is to issue a quick quote, you can do it with the free quote generator.

The goal isn't a contract full of pages

Let me add another clarification. Documenting doesn't mean filling the project with bureaucracy. A small project doesn't necessarily need the same documentation as a complex enterprise system. Documentation should be proportional to risk and complexity.

But there's a huge difference between "I don't want bureaucracy" and "I don't want to put in writing what we're agreeing to." The first can be reasonable. The second can become a problem.

ISO/IEC/IEEE 12207 defines life cycle processes applicable to different types of projects and approaches, including agile and iterative approaches, and does not require a single development methodology. That's why we can work in an agile way and, at the same time, document the important decisions. Agility doesn't mean the absence of documentation. It means avoiding documentation that adds no value and keeping sufficiently clear what we need to manage.

Three tips that can save you a lot of trouble

If I had to summarize this entire article in three recommendations for a business owner about to hire custom software development, they would be:

  1. Have an owner on your side. Someone who knows the business, can make decisions and coordinates with the development team.
  2. Document what you're buying. Scope, processes, requirements, deliverables, responsibilities, acceptance criteria, exclusions and changes.
  3. Don't pay without knowing what you're funding. The payment schedule can vary by project, but there must be clarity about what work, milestone or deliverable each payment corresponds to.

Custom software development shouldn't be a leap into the void

When a company decides to build custom software, it's usually making a significant investment. Not only of money, but also of time, people, information, business knowledge, management attention, user participation and operational capacity.

That's why I believe a good custom software development project should begin long before the first line of code is written. It starts by understanding the problem. It continues by defining the scope. Then requirements and processes are documented. Responsibilities are established. Deliverables and acceptance criteria are agreed. How changes will be managed is defined. And finally, a clear way to move forward and make payments is set. Then, yes: start coding.

Because developing software isn't simply building screens. It's transforming a business need into a solution that can be used, validated and maintained by the organization. And the more important the investment, the more important it is that both sides know exactly what they're building, who must do what, what counts as done and how decisions will be made along the way.

That, to me, is one of the most important principles when a company decides to invest in technology: don't fully delegate the management of your software project just because you're not a technology company. You can hire specialists to build it, but the project is still yours.

If your company needs to modernize processes, integrate disconnected systems or automate tasks, it can also help to look at our digital transformation consulting and custom CRM development when the process to solve is commercial.

Frequently asked questions

Who should lead the project on the client side?

Someone who knows the business and has the authority to make decisions and coordinate with the vendor. They don't need to be a technology specialist, but they are the bridge between what the business needs and what the development team builds.

What is an acceptance criterion?

It's the condition that defines when a deliverable is considered complete and correct. It should be defined before development starts, in a verifiable way, so you can tell whether it meets what was agreed.

Is it normal to pay a deposit on a software project?

It can be reasonable if there's a justified initial effort and the scope, deliverables, milestones and acceptance conditions are clearly defined. The problem isn't the deposit itself, but paying without clarity about what you're funding.

Do I need to know how to code to manage a software project?

No. You need to understand what the project must deliver and how to verify that it meets the business needs. Technical decisions belong to the specialists, unless your organization has specific technology requirements.

What if I want to change something during the project?

Changes are normal. What matters is managing them with a change control mechanism: assess the impact on scope, time and cost, and approve them explicitly before executing them.

How much does custom software development cost?

It depends on scope, complexity, integrations and the processes to be solved. That's why it's best to define the problem and scope first, then ask for a proposal. A common starting point is a pilot project to validate with low risk before a larger investment.

Thinking about custom software for your company?

If you have a process that currently runs on spreadsheets, email, WhatsApp, disconnected systems or manual work, you've probably already identified an opportunity to improve it.

The next question shouldn't be only: "How much does it cost to build the system?" You should also ask: "What do we need to define to make sure the system actually solves our company's problem?"

At Blionsoft we build custom software solutions for businesses, starting from the business problem, the processes and the real needs of the organization. If you're evaluating a technology project, we can help you turn that need into a project with a clearly defined scope, processes, features and phases.

Because before coding, there's something far more important: knowing exactly what problem we're trying to solve.

References

  1. ISO/IEC/IEEE 12207 — Systems and software engineering — Software life cycle processes. ISO
  2. ISO/IEC/IEEE 16326 — Software life cycle processes — Project management. ISO
  3. Project Management Institute — Creating clear project requirements. PMI
  4. Project Management Institute — What a project manager really needs to know about requirements. PMI
  5. Project Management Institute — Framework for delivering higher quality Statements of Work for outsourced software development. PMI
  6. Stanford University — Statement of Work (SOW). Stanford
  7. American Bar Association — Seven Tips for Better Technology Services Agreements. ABA
  8. IEEE Technology Navigator — Software Requirements. IEEE

← Back to blog

Related Posts

Ready to transform your business?

Let's talk

We analyze bottlenecks and improve your current operations with digital transformation and artificial intelligence.

Book your free consultation