views:

157

answers:

4

I'm about to get a job doing some basic design work for a client I've worked with before.

I have freelanced before, but generally, I deal with desktop applications or embedded work; this is my first time doing a web project.

What is some advice, specific to my situation, that would help me? I've been reading Clients From Hell and I'm a little bit scared after all these horror stories I've read.

+3  A: 
  • Get a contract and spec out the system to get a buy off from the client.
  • If you cannot fully spec it out then at least create 3 use cases that the client will agree to.
  • Offer no more than 3 draft designs and have the contract specifiy that further designs will be for additional hourly charge.
  • Assume that anything not spec'd out in the contract you may have to do for free.
  • Ive noticed that clients are more likely to pay more if you can itemize your charges, so that each element of the project seems to justify the total.
  • Stay away from frameworks you have not previously used. A for hire project is not the place to learn a new framework (with exception to jQuery). This has bit me a few times making the project a real drag when you find out you did everything in a way that was not a best practice for that framework.
Tim Santeford
+2  A: 

Contract, Contract, Contract, oh and JQuery! ^_^

You have to ensure the contract is fair and works for you! As Tim mentioned, get some design going using basic UML diagrams, set realistic milestones and what ever you do - don't get yourself stuck into time-frames and prices in the beginning. We all know programming is a hit and run profession, things change, especially on the web.

Charge separately, and periodically for maintenance work

Try not using too many 3rd party libraries, but if you must be sure to use libraries you can host locally. Google for example don't allow you to host many of their libraries locally and if they decide to change how it works, your project will stop working.

Byron Cobb
+3  A: 

Some other important considerations:

Hosting: If they host, you're essentially losing control and use of the code unless its in writing otherwise. For instance, if they pay for hosting and don't pay you the final bill more than likely it's not legal to turn the site off. If you're hosting and the site goes down, be prepared to work nights, weekends, holidays, and while you're sick if a server goes down or the site gets hacked. The burden never goes away. The policy I most often follow is that the client is in charge of hosting, but I offer to purchase it (in their name) set it up, and immediately hand over passwords so they're in control.

Get at least some payment up front. It proves that both parties are serious. I personally do between 25-50% depending on the client.

If it seems like a site that could get out of hand quickly or a client that's hands on, consider going hourly. It will ensure you get paid for what you work. You can always "give them a few hours" if they are good to work with, but legally they will have a much harder time not paying you for hours worked in this scenario. Not so much if you bill a set cost then try to go after "extra" work hours without some sort of formalized change request order.

Spell out support and training in writing. This can be deadly if you miss it. I once had a client that expected me to give him 30 minutes to an hour every other day after the site was done and delivered, plus email support and even virus recovery on his personal pc. Some clients know no boundaries. If this was to happen, communicate your delimma (I can't afford to give you free service) offer an alternative (support at $xx/hour) and if they don't agree, politely offer to help them find an alternative (sucker).

Finally, give a warranty. This shows your serious, and makes you a stand-up programmer. I personally guarantee that every site I deliver will 100% meet w3c standards upon delivery (not applicable to poorly formatted CMS content), and I will fix any code built under scope that causes an error. I've had to put in a few hours here and there, but this has never burned me and has gotten me a ton of referral business.

With all things including contract, it's just important to be up front, honest, and thorough. Like Tim said, if you don't plan for something and it gets out of hand, be ready to eat the extra work. But do stand up for yourself if the client is wrongfully taking advantage of you.

bpeterson76
Good points, especially about the warranty.
Pekka
A: 

If this is ASP.NET, understanding the page life-cycle is an absolute must from the background you are coming from. (Same background as myself. I think you will find that Web development is not as rewarding as the others.) Yet, user-controls are still your best friend, especially for Web development.

If you had no problems previously, then you will have no problems with this project.

With that said, user tend to view Web site development differently. The question is vague, so I cannot comment further.

AMissico
Well, mostly my client doesn't really see what's going on or get to have opinions, since I just "do my thing" and they get a working product. But they know just enough web stuff to be dangerous, and want to be involved in both design and coding.
samoz
hehe...you're in big trouble if they know enough to be dangerous...just kidding. Know that when budgeting, design and cutup can be the absolute time-killers. Code is easy, it either does what it's supposed to or not. When clients start nit-picking colors or "move that here and slide this there" then that's where the fun begins. You can avoid it all by building a color palette ahead of time (Adobe Kuler is GREAT) and doing wireframes prior to a requirements document so the layout can be put in writing. Problem solved!Don't let us scare you with stories. It's a great profession to be in.
bpeterson76