At some point, your business is going to need to have some software development. Maybe your business is small, but existing software doesn't fit your needs. Maybe your company is larger, with significant technology resources already, but you need an outside perspective. Whatever the reason, it can be difficult to choose an software developer, especially if you aren't a technical person.
I've heard stories about selecting developers from all sorts of people. Quite a few have told me heard horror stories about how they wound up with large bills and little or nothing to show for it. Fortunately, it doesn't have to be hard to choose an software developer; I've developed four questions you need to ask when you're choosing a developer.
1: Are they a contract programmer or a software developer?
A professional software developer isn't in the business of writing code; rather, he's in the business of solving problems, and code just happens to be one of the way that he (or she) does it. Conversely, a contract programmer will want you to spell out exactly what kind of program you want him to write. He doesn't solve problems; he just writes code the way he's told, and hopes it will fix the problem at hand. With a real software developer, you wind up with a solution that leaves everyone happy.
The market is full of contract programmers masquerading as software developers. Be careful.
2: Are they focused on technology or benefits?
Some software developers can get wrapped up in their technology; it's not uncommon to see developers who specializes in "AS/400 mainframes" or "embedded systems", for example. A real software developer, though, focuses on benefiting his client, using whatever technology is necessary, rather than on what technology he's familar with. You want to hire someone that's skilled at solving problems, and that will use the technology that's best suited to your business, whatever it may be. You shouldn't have to pick a developer based on what technology he's familar with; he should be able to take care of almost any technological problem, either by doing the work himself or outsourcing to someone in his network of contacts.
3: Are they charging by time, or by project?
Amateur software developers tend to charge for their time, not by the value of the work they perform; so do contract programmers. Real software developers, though, charge based on value provided to you - that is, by project - NOT based on time. This is because amateurs are afraid that they won't be able to complete the project in a reasonable amount of time, so they want reassurance that they'll be paid for their time in any situation. Experienced software developers, though, are confident in their ability to deliver code under their estimate, they are confident in their ability to provide value, and they that they can provide value that's worth MORE than their time is. You shouldn't be making an investment decision every time you consider calling your software developer.
4: Are they trying to give a solution before they know the problem?
Some developers will offer to send you a proposal after a ten or twenty minute phone conversation. It is impossible to accurately assess your situation that quickly; they are trying to provide you with a 'one-size-fits-all' package. Real software developers will not provide you with answers, proposals, or fees until they know enough about your business to have an informed opinion. Unless your developer is willing to spend enough time to really know what your problem is, you won't end up with the solution that you really need, because your developer is making random shots in the dark.
About The Author
David Berube is a software developer and IT consultant solving business problems. He's also a prolific writer and speaker. If you'd like a powerful, innovative developer, check out berubeconsulting.com, D_Berube@berubeconsulting.com