Some companies come to us having had poor experiences with getting custom software development projects completed on-time and in-budget.
There are several factors that we consider the most important in successfully completing a software development project on time and in-budget. With this, we include the completed software doing what it’s supposed to do without error. And by the end of the project, everyone still remaining friends. So, we thought we would put our experiences into a blog series for you here.
Here is part one – getting started.
A) Joint responsibility – sink or swim together
- Both the client and software developer need to hold joint responsibility for the project. The development company can’t do it alone. We see custom software development as a partnership between the client and ourselves. It is a collaborative project which will only succeed with full co-operation and partnership between willing parties. We don’t see a software development project as a client/vendor battle of budget and scope parameters.
It should be harmonious cooperation to a common aim.
- Clearly identify the roles and responsibilities of both the software development company and the client. As an early step, this creates a firm foundation for successful outsourced custom software development. Establishing protocol early on eases the way for a smooth project journey and successful completion.
- Add integrity, communication and technical skill to the software development project, and you will have a successful and happy partnership for both the client and the development partner.
B) Undertake thorough initial scoping and design – don’t skimp on the early stages or it will haunt you later
Whether you are using Agile, Waterfall or a hybrid model such as our own Flexible Development Methodology, the initial scope and design work is key in ensuring that the software does what it’s supposed to at the end of the process.
The time and cost estimates are based on this phase of work. So, getting the development project itself done on time, and in-budget, will depend greatly on the initial scoping and design work being done well. Taking the time needed, not rushing, and getting the detail right at this stage is critical.
Get the scope and design right and your project is off to a flying start.
- Be precise. The developer can’t leave gaps of, “This is roughly how it will work” or, “I think perhaps this new tech can do that…” And the client can’t say, “It should hopefully work something kind of like this…” The developer needs details in order to get started!
- The first stage of a new project should be an initial outline scope and high-level budget estimate. Typically, this can be done in a few hours of work, to give the client a reasonably accurate budget indication which will give a go-no-go milestone straight away. I.e. is the deliverable within the budget expectations, or not?
For this, the development company needs enough information to form that estimate. This is typically in a scoping document from the client. Or it will come out of a teleconference or meeting with the right people. This gives enough information to the technical expert undertaking the system scope documentation to understand what is required and how to go about it.
- The client’s responsibility is to make sure the development company has enough information. After all, the client is the expert in their business and the experts in what the software actually needs to do.
The custom software solution should be the embodiment of unique requirements given by the client. Delineating exactly what is needed and wanted, what functionality and business requirements the software should address and how the solution will achieve this, is a vital cooperative effort at the design stage of the project.
Clients need to ensure that all the stakeholders that understand the business requirements and that have an interest in the software, such as managers and end-users, are available for design workshops with architects and tech leads. And, that they can and will put in enough time to pass on the knowledge needed so that the business requirements can be translated into a software system design.
You would be surprised just how many projects are less effective or require extra work at the end of the project because stakeholders did not have the time to contribute fully to the early system design.
- An important element of the design phase is the User Interface and User Experience UI/UX design. This is how the software will look, how users will navigate through it and how each element will interact as business processes.
From a client perspective, things to think about regarding interface design include getting end-users involved at this stage for their review and input. Along with simple factors, such as providing corporate design guidelines and examples of software that key stakeholders and sponsors like. These will provide a helpful initial guide for the visual design.
- With some projects, an initial Proof of Concept is required to show what the software is going to look like, and how it will work in principle. It is vital that the client knows what to expect from the development before getting started. Additionally, it is essential that the software development company knows they can provide the solution the client wants to create. A Proof of Concept (POC) is the perfect step to ensure both.
This step is not always needed, for example in re-engineering an existing system, or where the project is simply not big enough to require or justify it. But, when a POC is required, this is not to be disregarded.
C) Review and sign off – time to take the plunge!
Commercially, completing the design phase provides an opportunity to refine and validate the budget, the project plan and a go-no-go milestone for the sponsors.
At this point, a 100% complete design shouldn’t be expected – there should be factored in contingency, assumptions, and variables. This allows development to get started as soon as realistically possible without getting bogged down in a ‘paint the Forth Bridge’ Waterfall design process.
This will give a budget to sign off on, and a project plan; meaning the developers are ready to start coding in earnest!
This covers briefly our approach to the initial stages of a custom software development project. And some pointers to what you need to be thinking about and doing in the early stages to help ensure your project is completed successfully.
Here at Ballard Chalmers, we have an estimated 95% rate of completing work on time and in-budget. And over 90% of our work is for long-term clients. Nothing speaks more on our ability to complete high-level jobs on-time, in-budget and with satisfied customers than that.
In the next blog in the series – part 2, we will look at the development phase in more detail.
If you want to learn more about our approach to software development, here is some recommended further reading:
By Andrew Chalmers, Managing Director at Ballard Chalmers