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!

Computer buying advice

Recently, my MacBook Pro, which I purchased in February of 2008, sort of died. The computer works, but the Nvidia video card has died. Apple has extended the warranty for this, but I'm stuck in Central Asia until March, so won't be able to get it to an Apple authorized repair facility. So I have to look for a new computer.

I'm wondering whether to forgo getting another Mac go back to using a PC. I'm not a fan of Windows, and a colleague of mine has recommended using Ubuntu Linux. He's a computer wiz, so can handle a non-standard operating system. I'm not so sure that I can. Anyways, that will be another post.

I asked said colleague for advice on buying a computer, and I'm pasting below what he wrote. Now, computer buying advice is far from timeless. And the advice you should get will depend on what you need the computer for. I will be using STATA (heavily computationally intensive), watching movies (need a good graphics card). My partner will want to do lots of document editing, and will want a big screen. It will stay in the home, so portability and battery life are not priorities.

I would indeed get a Sony Vaio. I currently use a rugged IBM lenovo that was lent to me, I appreciate its 5 hours of battery in Africa. But it's not that powerful (despite its 8 gb of memory); I would need to change it within a year or two.

    My suggestion is to obtain a core i5 with nvidia GPU (From Sony). My personal choice would be for a 16 inch high definition, but I tend to like big screens more than most.

    Make sure you upgrade right away to the maximum memory possible. Not doing so is not worth it: max it out! This means using a 64 bits Os: you need 64 bits addressing to go over 4 gb of memory.

      You will want a good graphics card inside your laptop. I recommend Nvidia based with at least 512 independent memory, preferably 1 Gb with a recent GPU. I prefer nvidia to the others, especially with Ubuntu. That is what in my opinion makes the biggest difference between the lower end and the higher end laptops. Macs always have high end graphics cards.

    Ubuntu is a big jump! Congrats. The most recent version is 11.10. I use 11.04. Make sure you have the 64 bits version, and you probably want to log in the desktop edition (Gnome), not the netbook edition (Unity). It's a combo box at login.

    I suggest you shop a little, perhaps on sony vaio's web site. Compare with other companies also if you want. I'm not sure what are the models these days...

 I stumbled upon this; it might help to compare laptops and get quite good reviews on them. I wish I could find all models on this :),289826,266527,264126

This is a selection I made of very different laptop types. Hopefully comparing them will help you orient your search.