Choosing a supplier to implement your software can be a difficult process. As the customer, how would you ensure that you are dealing with a solution provider who can manage your project through to a successful conclusion and how should you evaluate one solution provider against another?
When it comes down to it your choice will be based on a gut instinct about your chosen provider, however, here are a few things you should consider during the process.
Have Client Acceptance Tests been agreed to ahead of the project commencing?
Client Acceptance Tests are important because they define a method to ensure the project has successfully satisfied the specification. Without tests that are defined in the specification stage there are no metrics to measure the successful completion of the project by.
Have suitable milestones been set up throughout the project development process for input and feedback?
A proper schedule for reviewing development as it progresses is important so any misconceptions in functionality that are not picked up in the specification can be addressed as soon as possible. Inflecto will schedule regular meetings to demonstrate functionality as it is developed and seek feedback throughout the development process.
You are likely to be spending a lot of time in contact with the developers of your solution? Have you met the people who will actually be carrying out the work and do you have a good working relationship? Are you satisfied with their technical knowledge and their understanding of your aims for your project? What qualifications do the developers have? What past experience do the developers have?
What about the source code?
It is common and indeed normal for source code not to be released with the solution as different projects may contain common source code and software vendors need to protect their intellectual property. If the company who develops your system was to go bankrupt or close down and was unable to support or upgrade your system, would this cause you problems?
Solutions to this could include a contract where if the company was to cease trading the source code would be supplied to you so that you could go to another provider with the source code. For complete assurance a software escrow service could be used to act as a third party and in event of the solution provider breaking contractual obligations or going bankrupt the full source code will be released.
How easy will the system scale and how easy will the system be to maintain?
Over a time period it is likely that you may wish to amend your software as your business needs change or your application may need to scale as your business grows. Upgrading and changing software which is in production is often much harder than creating software from scratch and can cause the cost of the software over its lifetime to increase dramatically.
Some of the difficulties that are associated with maintaining software can be lessened by the way that your software is designed. These methods often mean that it takes a little longer to develop the system in the first instance but will lower the total cost of ownership over the lifetime of the product. Inflecto follows current best practise and uses modern methods to design software in a way that makes it inherently scalable and considerably easier for changes to be applied to the system once it has been shipped.