Saturday, December 17, 2011

Some advice for working with a web developer to develop a website

I am looking to have a website developed. I can actually program in PHP and have developed a not-so-simple social website myself, but I still haven't program with objects and I'm not that efficient (and I can't make things look good). Since I don't comparative advantage in developing websites, I'm working with a firm to do that for me. I've spoken to a couple of firms that design and develop websites, and received a couple of quotes. I asked my computer whiz colleague for advice on dealing with website development firms (I sent him one of the quotes that I received), and I'm pasting below his advice.

Looks great indeed. A few points:

    -There is no descriptive of your project. This means they eyeballed the cost, and have large safety margins. It's not a complex project, so it's not a major downside to eyeball the project as a whole instead of making an estimation by item.

    -They seem responsive, or at least tell you they will be. That is an important part. Communication is always key to good work relationship.

    -They offer two rate options: hourly and flat, which is a good signal. If it were me, I would go for hourly and guide them through the project: for sure the project will look more like what you want it, and it should end up cheaper (see my first point). But perhaps it does not matter enough to you, and you think they have better ideas than you on how the website should be. In that case, go with fixed rate.

    -I you want to go hourly, I would recommend you get the functional analysis before the actual coding happens:

    -graphical appearance (actual work. Do you have a logo?)
    -workflow of the data process (web page by web page),
    -schematic drawing of each interface,
    -data dictionnary.

Only then should you approve to start the coding. They wont like so much paperwork, but it is a good practice and protects everyone. I would also suggest to do as much work yourself as you can: draw schematic interfaces on your word processor and share with the programmer before he starts with the paperwork. The more you guide, the better (and cheaper) the project will be.

The alternative to guiding them with the hourly rate is to let them propose their stuff with the fixed rate. Do it if you are not risk averse, both on quality and time to completion. You can get surprises, both good and bad. Just a word of caution: there is also an outside risk of having a project absolutely not what you wanted and they ask for more money, arguing it was not in the contract. If the functional analysis is not complete, all bad things can happen. The devil is always in the details, and turnkey projects are not always as turnkey as we hope they will be...

Also, remember that coding is only a small part of the project. Calculate

    1/3 analysis and preparation
    1/3 coding
    1/3 implementation: Adjustments and changes, debugging, actual setup of the server ready for real data, etc.

Also, the work is not over even on the launch day. Expect problems, adjustments, etc... The more analysis you do, the easier the implementation. If they tell you 6 weeks, expect 3 times as much for your real launch day. No kidding. Get ready: it will take 3 times as much time as they say it will, always.

You should ask for the alpha version: the first version that allows you to see how the project works, with most of the interfaces ready, and then there is the beta version, the first complete version. Find friends and family to play around your beta version and try to crash the program: the more people who try the beta version, the better.

Analogous to what you are about to do is to make renovations in your home. Talk to home owners about their experience renovating, and you hear about horror stories. It's the same kind of problems in renovation and hiring a programmer: you can expect to handle (sometimes frustrating) issues on a regular basis for this project, turnkey or not. Fortunately, it's a small project, bet even then problems arise! There are financial risks involved, for the value of what you put it. Asking a contractor to make work for you is never a fully safe bet. Worse case scenario is you loose all of what you put in, and it happens in real life. Watch your back :)

But also sometimes you find the golden helper. No problems, goes out of is way to help, and you get what you want and on time. Rare, but they exist. Like in renovation: it's not always a catastrophe! It depends a lot on the rapport you will establish with the guys actually doing the work.

Finally, think servicing on the longer run. You will probably not want to do it yourself. Budget a minimum of 15% per year, (unexpected problems, updates of platform software creating problems with your code, crashes etc...) excluding expansion of functions, and also excluding amortizing for the next version of the project. Expect a complete rewrite from scratch in 2 to 5 years, depending on the speed at which your business changes, and the quality of the initial work.

Good luck!

No comments: