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?
Yes, but it is not proprietary, and you will get the full source code.
The system will be built on top of our fantastic XYZ platform, which revolutionises delivery.
It is common for developers to reduce individual project costs by using a common internal platform. This is a good idea when it is done carefully – making sure the customer has full ownership, and the platform does not preclude moving to a new developer. Unfortunately, many companies use platforms that are proprietary and difficult for a new developer to adopt.
Note: Blueberry uses a platform we call BBWT which is designed to prevent lock-in and is properly licenced so customers are fully protected.
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 / continuous integration?
Yes. All code written by our developers is placed into a central source code control system, which is backed up 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. Modern Source Control / CI systems make sure that all changes are captured so they can be rolled-back. All professional developers should use source-code control – most use the popular “Git” system.
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 five 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 over 50 developers.
9. What languages do you use for programming?
Microsoft Access, Delphi, C++, Ruby on Rails
Unfortunately, development technologies change very rapidly, and building a system using the wrong technology can make it much harder to support and make it age more quickly. Technologies like Microsoft Access and Delphi are now almost completely obsolete.
But the whole picture is more complex: Ruby-on-Rails is very powerful and well-loved platform which is not technically obsolete – but is used by so few developers that getting maintenance work done is a challenge. There are also new languages which are quite exciting to developers – but which we probably shouldn’t use on commercial projects until they have matured.
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.