5 things you should know about bespoke software development
Here are 5 useful tips for anyone who is about to commission their first bespoke software development project. I think these are common sense but they may not be obvious to someone who doesn’t have a technology background or who hasn’t worked with a software development company before.
- Prepare a project brief. Spend some time thinking though your requirements and document them as simple ‘user stories’ - a short paragraph (sometimes just one or two sentences) that describes what you want the user to be able to do. Stay focused on clear requirements and avoid too much detail at this stage about software functions and design. Try to prioritise the user stories - essentials, nice to have and low priority.
- Give the brief to at least three software development companies and get ballpark fixed-price quotes. Ask questions about development time, how flexible they can be during the development (new requirements always emerge) and what support they can give after the software is complete. There’s no reason why you can’t ask each company for a mini-tender response, particularly if you’ve given them a reasonably detailed brief.
- Get a preferred supplier and ask a few more searching questions. Talk about the technology stack - do you have a preference or are they recommending one? What about about maintenance moving forwards? Will you have a separate software support agreement? Hosting is another important area to discuss. It’s easier to get your software development company to also host the software but it’s not essential. Again, there are questions to ask about exactly how hosting will work. You may have particular requirements around performance and uptime.
- Ask for a software development plan that sets out clear milestones - points in the plan where things get delivered. Link payments to these milestones. It’s just like paying a builder to build a house - there’s a payment when the foundations are done, when the walls are up and when the roof is complete. Agile software development is popular with development teams and it’s good that you get opportunities to review work in progress every few weeks but you also want to know that your new software will meet your requirements by a specific date. That’s a fixed-price project. The only reason to agree to time and materials is if your requirements are unavoidably vague - then I think the software development company is right to expect that you pay directly for developer time rather than agreed deliverables.
- Be prepared to really focus on a solid chunk of further requirements analysis and design work at the start of the project. Our experience is that this often takes longer than clients expect. It can mean that you need to get more members of your team involved. It is difficult to see how you can avoid this, particularly on a fixed-price project. This is an area where you really appreciate an experienced software development team - good software analysts will make a difference.
There’s one other point that I think is worth making. Any reasonably sized project (say 2 developers for 4 months or more) should really have a client project manager. That’s someone working for you who coordinates your team, manages your supplier and generally makes sure your team meets its obligations (answering questions, providing prompt feedback etc.) It’s doesn’t have to be a full-time role and doesn’t even have to be an experienced PM, but it does need to be done by someone who understands what the role is, has the time and is given the space to make decisions.