Working with a custom software development company - things to know
Here are some things we think it helps to know if you are about to start your first project with a software development company. Knowing this stuff makes a difference, you’ll get better value for money and you‘ll get better software - simpler, more focused software with fewer bugs.
- Ask questions about the technology stack. It’s doesn’t matter if you don’t know anything about software development languages or web technologies, you can still ask about the supplier’s preferred technology choice. Why PHP and not .NET? Why SQL Server instead of PostgreSQL for the database? Are there any licensing implications? How future proofed is the technology? Get answers in plain English.
- Requirements analysis and solution design takes longer than you think. Work with the software development company at the start to get the requirements right. That takes time - it could be a month at the start of a 3-4 month development. Our experience is that clients often underestimate how much work is involved.
- Get your own project manager to work alongside your supplier’s project manager. You need someone to herd your own cats and on a larger project they could pay for themselves. Give someone in your own team the time to do the job properly or appoint an external consultant project manager.
- Keep the software as simple as you can, particularly at the start. It might help to think ‘minimum viable product’ - what’s the simplest solution you can build? Manage internal stakeholders carefully, you can always split a bigger project into phases and add more functionality later.
- Go for fixed-price rather than time and materials (unless the requirements are so vague/fluid that it’s unreasonable to expect a supplier to give a fixed price quote). Link payments to milestones that represent real progress. Think about how you would pay a builder to build an extension on your house - payments at foundations laid, walls up, roof on etc.
- Set aside two weeks (maybe more on a really big project) at the end of each development phase for user acceptance testing. Organise your team to do the testing. Get the supplier to give you access to a test system and feedback issues at the end of every day so they can fixed quickly.
Most of all, good project management - from both the supplier and the client - is essential. Get a shared plan that has clear milestones that represent real progress. Beware plans that show lots of activities, stuff that happens. You want milestones that mean something tangible has been delivered/completed. That way you know straight away when things are starting to slip.