This is the most common mistake people new to software projects make. Unreasonable expectations lead to despair and failure.
OK, so what are some examples of unreasonable expectations?
Lots of people expect to just write down a few general ideas about what they want a program to do, put it up for bid on a freelance auction site, pick a programmer, then sit back and wait for the finished product.
Unfortunately, it’s just not that simple. You need to put time and effort into planning, managing, and testing your software to get exactly what you want.
Hiring a freelance programmer is not “fire and forget” technology like a cruise missile fired at a land target from a ship. It is more like a battle tank that needs to be driven onto the battle field, properly positioned in formation, aimed at the enemy and fired at the right instant. To succeed, you need to be involved in the process.
Some people plan their project carefully and then expect everything to go exactly as planned.
If only it were so!
Surprises are the nature of the beast with software projects.
Some features turn out to be impractical; some “easy” features take forever to get right; some “difficult” features turn out to be no problem at all (just don’t bet the farm on it).
You must be prepared, determined, and flexible to complete a good-sized software development project.
Some people expect to hit an out of the park home run on their first project.
You should start with something small and easy to manage. Software projects get much more difficult with size, so get some experience the easy (and inexpensive) way. Starting with a large project is a painful way to learn how to manage a software project.
You probably have at least one small project you want done; perhaps a new look for your web site, or a PHP script to generate reports from your site’s database.
Even if you were thinking of doing the project yourself, it’s a perfect candidate to outsource. This allows you to learn the ropes on a project you fully understand. It also frees your time for other more important or more profitable tasks (most likely the reason the project is not already done ;-).
Some people expect a single programmer to create software as feature rich as their word processor, for the same price, or maybe even lower if they get one of those guys from India.
Well, that word processor was developed by a major company with a team of over a hundred programmers working to create and maintain all those features. They have been working on the same program for years.
Obviously, a freelance programmer is not going to crank out as much code as a huge team of programmers.
The word processor’s price is low because the companies that develop them sell millions of copies (hmmm, not a bad business, eh?).
For the specific software you want, the market is more limited. Perhaps you are the only one willing to buy it, so you have to foot the entire bill.
What a freelance programmer can do very well is write a custom application to solve a specific problem for you. Big software companies can’t compete on that, because they can’t sell millions of copies of your custom program.
That’s all for now, next time we’ll look at Mistake #3, one that gets experienced people as bad (or worse) than newbies.