Became debt-free and financially free since age 26 through multiple streams of income generated part-time while working as a software developer. Senior Software technologist for 18+ years. I can provide expert technical & software development insights, business start-up technology guidance, and show you how to use technology to maximize your business profits.
In general, make sure you get regular updates on progress. Besides that, I would recommend you adopt the Agile methodology for the software project or have the software delivered in iterations so that you can touch and feel parts of the application. It minimizes risk and everyone can ensure the requirements are getting met early. Define the first iteration and then it'll be a deliverable in like a couple of weeks or so. Then you can gauge how things are going. Attitude of developer is also important. You don't want someone who thinks they know more than you or is better than you. Changes will be harder to make with that attitude. There's lots of other things, but those are a few pointers
You also may consider vTiger. It has very good features right up front. If customization is needed, it can be easily done. For example, we have had clients hire us to write some complex CRM for their "unique needs", but we were able to program and add modules to vTiger for a fraction of the cost that it save them a ton of money. Hope that helps.
There's a story about how one company paid $10,000 for the consultant who provided this advice. At first, the consultant told them to only pay what they think the advice is worth; so he didn't charge anything.
He told them that they should write down 3 things everyday that are the most important to accomplish for that day and not to end the day without accomplishing them. The company members adopted that approach and the revolutionized the productivity of the organization. So much so, that they gave the consultant $10,000 because it benefited the organization so much!
There it is, I just gave you that same advice for free!
Hope it helps
I have built many apps both desktop (i.e. client-server type) and now tons more web-based apps. Deploying changes is MUCH easier with a web app than desktop. That is an important consideration. I am not sure how many users for your app. If it is only in a single office, then you can always remote into the server for your updates. But if people are installing from all over the place, then you will have to "push" your changes to their various servers or provide a way that they can update themselves. With all the different computers, configurations, network issues, etc. you may get various questions if something "doesn't work" or doesn't install correctly. For a web application, I just have to make sure it supports the various browsers and I can deploy my changes easily. The web application can also ensure security too if you have many users from all over the world. Security is also the other important consideration. If you do things right, you should be ok there too.
Hope this helps