The Argument for Custom Software Development
by, 15-Sep-11 at 02:43 PM (3223 Views)
I'd like to start this post off with a couple of questions.
1.) Have you changed background image on your computer from the default?
2.) Have you ever rearranged the icons on your iPhone/Blackberry/Android?
3.) Have you ever bought any seemingly weird gadgets because you had a specific purpose for them?
4.) Have you ever set up a macro in Excel?
5.) Is your desk arranged in a specific manner?
6.) Have you ever bought a car and a.) ticked something on the options list (for old guys who buy new cars) or b.) stuck a huge sound system in the back (for young guys who buy old cars)?
If you answered yes to any of the above questions, I'm sure you'll agree with me that we humans love customization. We know what we want, and if we don't get it, we're not quite as happy as we could be. Since we love to customize everything around us, why should our views on software be any different? After all, many of us use computers each and every day.
When the need arises, you can either have an existing piece of software modified to suit your needs (if the supplier is willing to do so), or if nothing is available, you could consider having something developed from scratch. This post is going to focus on having something developed from scratch.
Let's look at some of the reasons for having a custom piece of software developed;
- You have a business need that cannot be satisfied by existing software - it could be something simple to give you an edge over your competitors.
- Existing software is too expensive. Of course, this is relative; no-one is going to develop a SAP-like system for a few hundred bucks, but I've heard of instances where an entire industry is monopolized by one of two companies who charge exorbitant amounts for what is essentially simple software.
- An application can support one of your products. Perhaps you have a product that can benefit from a 'companion' program. This is the case with one of our customers; they've built a piece of hardware which is supported by a piece of software which we have developed.
Once you've decided that you want to have a program developed, you'll have to find someone who can write it for you. There are a couple of places where you can find freelance developers;
- Use a freelancing website like www.elance.com. Elance allows you to post jobs and developers can then bid on these jobs. Elance ensures that the customer gets their software and that developer gets their reward. As an added bonus, Elance allows you to view a history of a developer's work as well as their results on various skill tests.
- Students. For small applications, it is likely that you'll be able to find a bright young student who willl appreciate the extra income. Talk to your friends and family - someone is bound to know an IT student. One of the major advantages of hiring a student is cost; they'll charge much less than an established software house. No overheads = cost savings. With regards to pricing, I'd say that you can expect to pay anything from around R150 p/h (for a student) up to R700+ p/h (for a software house).
Lastly, there are a couple of things to keep in mind if you do decide to have software developed.
- Make sure you find a programmer who knows what they're doing. Check a history of their work. My advice to programmers would be to develop a useful application and distribute it for free. I've personally done this, and it helps one to get your foot in the door.
- Keep in contact throughout the process; the last thing you want is for your requirements to get lost in translation.
- Set everything out beforehand. Scope-creep can make things spiral out of control very quickly.
- Make sure you have everything that you'll need when the software goes operational (hardware, other software, etc.)
- Involve the people who will be using the software. Managers might think that they now how something should be done, but generally, the guy on the floor who's actually doing the work knows more about the little details.
- Don't part with any money before you've seen results. This is not to say that you should pay only when everything is done. Identify milestones beforehand and pay your developer as he/she reaches these milestones.
- Don't expect a freelancer to move the earth. If you want an invoicing system, ask a freelancer. If you want a full-blown manufacturing/financial/HR system, look at the available options, unless you can afford to wait a year or two or employ a whole team of freelancers.
Do you have any experience with custom-developed software? Please tell us about it.