Measure your company and your project
Before looking for a software development or database consultant, it is best to do the following
- Estimate the scale of your project
- The timeline you expect
- How large your company is
- How formal you need to be
If you are a small company or have a relatively small project (e.g. you are not building an office suite), it is usually best to go with a smaller company for several reasons.
- You are more likely to get personalized attention with a small company who will see you as a larger portion of their business.
- You in general don't need to be as formal with specifications with a small company as you would with a larger.
Lesson 1: Know How to spot a bad consultant?
Regardless of what your personality is, you should first stare away from bad IT consultants. Below are some tell-tale signs to watch out for
- The consultant blows you away with a pretty proposal that has absolutely no substance whatsoever, but uses a lot of buzzwords you are unclear of what they mean. This is a sign that this consultant will spend a lot of time and charge you a lot producing elegant documents that will be entirely useless to you.
- A consultant that doesn't listen. If you tell a consultant what you are looking for in terms of application requirements or support and they come out with a quote or proposal that doesn't resemble at all what you discussed.
Lesson 2: Get a programming or database consultant that has experience doing what you want
Desktop vs. Web
If you have a web application, it's usually not a good idea to get someone who has only desktop application experience to do the job. The exception here is if you've known this consultant for a while and/or they are willing to give you a discount for their time to learn.
Database Technical Support
Most business applications nowadays have some database component. Sometimes you are stuck with the database product you are using. E.g. If you have invested heavily in money and staff learning time with Access or SQL Server, then you may want to stick with that. In that case, it is preferable to get a consultant with that kind of experience. If they have additional experience beyond that, then that is better.
Programming LanguageIf all your applications are written in a fairly modern language, then it is best to get a programming consultant who is experienced in this language to redo an app, extend an app or create a new app.
If your applications are written in an obsolete or soon to be obsolete language, then it would make sense to get a consultant that has experience with both.
Sometimes such experience is hard to find. In that case you would be better off getting a consultant who has experience with the newer language. This is because it is easier to read code and understand code in a language you are unfamiliar with, than to write code in a language you are unfamiliar with.