10 Questions to Ask Your Developer
1. What is your policy on copyright?
The customer owns all copyright once the project is paid for. If the developer uses internal libraries, a royalty-free, perpetual, transferable licence is granted.
The developer retains copyright and provides the customer with a licence to use the system.
Blueberry advises: If you are paying to have software written, the developer should hand over (assign) all copyrights in the system at the end of the project. A few disreputable companies try to get customers to sign a contract where they only pass over a licence to use the software. The developer is then legally entitled to ask for further fees in the future, even though the customer has paid for the development.
2. Will your system be built on top of any other platform or system?
No, the system will be all new code built with standard tools and libraries.
The system will be built on top of our fantastic XYZ platform.
Blueberry advises: Some developers try to reduce costs by building systems on top of third-party or in-house 'platforms'. The problem with such an approach is that it leads to problems with maintenance and licensing. The developer is unlikely to release source code to his wonderful platform, so if there is a serious problem it is difficult to get another company to take over. You should ensure that all source code to the whole system is available
3. Will your system use or depend on third-party libraries or systems?
Yes, but we will ensure that you can buy licences to such systems, and these costs are clear.
I'm not sure... maybe.
Blueberry advises: There are many powerful libraries available to developers, and these do save a lot of time. However, such libraries may be licensed to the developer, not to the end customer, and this either presents a future additional cost, or a maintenance issue. Similarly, the system may be designed to work with external systems like MS SQL Server, which have associated costs. The developer should make sure the customer understands all such costs.
4. Do you have source code control?
Yes. All code written by our developers is placed into a central source code control system, which is backed up off-site nightly.
What is source code control?
Blueberry advises: When software is being written by a team, the team members need to share code between each other. A source-code control system makes this easy, and is a very standard tool. All professional developers should use source-code control. There is a possible argument that source code control is not required if the project only has one developer, but we would still recommend it be used, because it ensures that code is backed up to a central location. The source code should be backed up nightly to another location, otherwise there is always a risk that it might be lost.
5. Who collects requirements from the customer? Do they have development experience?
A senior manager with development expertise talks to the customer to understand their requirements.
Our salesperson talks to the customer first, and then brings in the development expert later.
Blueberry advises: Obtaining the correct requirements from the customer is absolutely crucial to the success of any project. Whilst the best salesperson may be trained to do this, our experience is that using a person with development expertise makes this process more reliable and far quicker, because it eliminates communication errors. Of course, the development expert must have the business and communication skills to build a rapport with the customer.
6. Do you have people who can help with System Deployment and Firewall Configuration?
Yes, we have an in-house systems administrator, who can help with any necessary firewall or other systems configuration.
Your IT department should do this, or we can maybe recommend someone.
Blueberry advises: The IT department in most companies usually has very competent people, but they are often extremely busy, which can result in unnecessary delays during deployment. The skills required to install a new system can involve multiple people within the IT department, e.g. one person to configure the firewall, another to work with the database. If the development company has in-house people to do this, it can save quite a lot of time.
7. How long have you been in business?
Ideally, at least three years. More is better, but are they up to date with new technologies?
Blueberry advises: Obviously, a company that has been in business longer is likely to be more stable than a new start-up. The first three years of any business are the toughest, so look more carefully at companies younger than this. However, there are disadvantages to older businesses, particularly in technology, as they might not be up to date.
8. How many developers do you have?
Ideally, at least 6.
Blueberry advises: A company with less than 6 developers is likely to have tighter resource constraints than a larger firm. Development projects are often extended beyond their original deadline, and with a smaller company this can often mean that new projects cannot start on time. A smaller firm will also have less people to draw on to solve technical problems. We currently have 10 project managers and 40 developers.
9. What languages do you use for programming?
Visual Basic 6, Microsoft Access, Delphi
10. Do you use any form of logging in your software?
Yes, our software writes detailed logs.
No, we rely on debugging the program before we give it to you.
Blueberry advises: All programs will have bugs - this is unfortunate, but true. Programmers have very powerful tools to help remove bugs, but these tools generally only work on the programmers own computer. This is unfortunately no help in solving bugs that happen on the customers' computer. The best solution to this problem is to add code to the software so that it writes detailed logs on exactly what happens. When a problem occurs at the customers' site, the program should send the log to the development team, who can then fix it. Unfortunately, writing logs takes extra effort, and many programmers don't do this routinely.