Bespoke web development
Some say that in near future there won't be a need to hire a programmer: everything you need will be available from off-the-shelf products like MS Windows or MS Office. Or another theory is based on an automatic programming concept, where the software will produce software on its own, without a human intervention.
Unfortunately (but not to the programmers themselves of course!) recent past doesn't suggest we're even close to that. The reality is that customer's requirements far outpace the commercial software industry and even the small business often demands something unique and specific. And this is not to mention the increased variety of platforms: it's not just Windows anymore, there's a bunch of mobile platforms, web, Mac and Linux, all these require certain skill set and hardly can live without customised development of some sort.
If you as a business need something specific to you, would you settle for something offered as a packaged product? Sometimes yes, but sometimes it's not practical. Every business like every human is unique, why not have something built specifically for you?
How to have something built and stay within the budget?
This is where it gets tricky. With so many freelancers and software firms on the market it gets difficult to make a right choice. I suggest you stick to these points:
- The services must be affordable. If they are not, it is simply not worth to develop anything. Calculate the ROI (return on investment) and have the figure in mind. But don't underestimate either: developer's time costs money and good developer spends at least as much as that on training and new technologies. So it won't be peanuts.
- The contractor or firm should be local (in the UK in our case). The price difference between offshore and onshore software development is not that high as it's used to be (10 times or more), so it may well be worth paying a bit extra for the option to meet face-to-face, work in the same time zone and speak the same language.
- The developer should be reliable. I frequently order freelance services myself (mostly graphic design that I don't do) and I must tell you - nothing is scarier when you have a project pushing dead-line and a freelancer just disappears leaving you alone with your problems. That's why my rule #1 as a contractor is to be always reachable for the client and provide prompt updates.
The Process and Procedure
The big P words. We developers sometimes hate it, but good experienced freelancer developers know that both P help us cope with the customer's feedback and manage their expectations. The releases should be planned. The features in the releases should be properly documented. The test process should be staged and the customer should promptly sign-off the work done.
As for me I chose Scrum as the methodology to use - it's agile, it's clearly put and it provides all it takes to handle small to mid-sized projects without excessive paperwork.
Choosing a new freelance programmer is a leap of faith in many ways. Even after having a nice chat over the phone/skype, meeting face-to-face and discussing everything, there's always a risk for the customer. That's why I consider it's only fair to minimise the risk for the customer as much as I can. For example, in most cases I don't ask for a prepayment and the first stage of project (ending on my test staging server, without live deployment) is my risk.
Technologies and tools
Nobody can be an expert in every field. That's a given. So if a consultant says they can do anything - that's a red flag for you as a customer. Those freelancers who are seriously in this business never risk their reputation by signing up for a job they are not qualified for.
Two major options are to pay per hour or pay per result. You as a customer probably are probably better off paying fixed amount for a job done and don't be fooled by some coders saying it's not possible. Usually refusal to work on a fixed amount basis means lack of process, procedure and risk management.
If you like my approach and wish to discuss your custom software or web development, please feel free to get in touch!