Slashdot Mirror


Freelance Web Developer Best Practices?

SirLurksAlot writes "My last employer had to make a series of budget cuts, and I was laid off. I have been on the job hunt since then; however in the meantime I have begun freelancing as a Web developer. This is my first time in this role and so I would like the ask the Slashdot community: are there any best practices for freelance developers? What kind of process should I use when dealing with clients? Should I bill by the hour or provide a fixed quote on a per-project basis? What kind of assurances should I get from the client before I begin work? What is the best way to create accurate time estimates? I'm also wondering if there are any good open source tools for freelancers, such as for time-tracking and invoice creation (aside from simply using a spreadsheet). Any suggestions or insights would be welcome."

26 of 438 comments (clear)

  1. Get a lawyer by plopez · · Score: 4, Informative

    Write up a standard contract. Make sure it defines what you will and won't do. Make sure that if anything is requested beyond what is listed the contract must be renegotiated including pricing. Making sure you are indemnified and held blameless. CYA.

    --
    putting the 'B' in LGBTQ+
    1. Re:Get a lawyer by teh+moges · · Score: 3, Informative

      I'd clarify this by saying just to get a lawyer at the start to organize a 'standard contract', which means you don't need the lawyers involved for every little job.

      Other then that, follow the parent's advice: Make sure the contract says exactly what you will and won't do DO NOT take a job where the client doesn't give solid, complete answers to your questions. Google 'scope creep', or learn the hard way yourself.

      Make sure you track your time, not only for your clients, but also so you can learn to judge how long it takes you to complete a project. That skill is invaluable and will save you from many nightmares in the future.

    2. Re:Get a lawyer by Chapter80 · · Score: 2, Informative

      This contract was done by the company not the contractor, and protects the company. But there may be some useful tidbits in there.

      I think the important thing is to establish the scope of work (or do it hourly), the code ownership (work for hire? or are you trying to retain some rights to use the code later?), the relationship (not an employee relationship, a contractor), the payment terms, and the warranty / support (if I were you I'd say no warranty is implied; if you want me to support it, it'll be a separate deal and more money.)

      Note, this is an EXAMPLE only. Use at your own risk. I am not a lawyer!

      Contractor Agreement

      This Agreement is made effective as of July 1, 2008 by and between [insert developer's name and address] and [insert company name and address].

      In this Agreement, the party who is contracting to receive services shall be referred to as "[company name]", and the party who will be providing the services shall be referred to as "The Consultant".

      The Consultant has a background in web page design and is willing to provide services to [company name] based on this background.

      [company name] desires to have services provided by the Consultant.

      Therefore, the parties agree as follows:

      1. DESCRIPTION OF SERVICES. Beginning on _July 1, 2008 the Consultant will provide the following services, (collectively the "Services"): web application development.

      2. PERFORMANCE OF SERVICES. The manner in which the Services are to be performed and the specific hours to be worked by the Consultant shall be determined by the Consultant. "[company name]" will rely on the Consultant to work as many hours as may be reasonably necessary to fulfill the Consultantâ(TM)s obligations under this Agreement.

      3. PAYMENT. [company name] will pay a fee to the Consultant for Services based an hourly rate of $[rate] per hour, at an expected rate of 20 hours per week. This fee shall be payable monthly, no later than 10 days after the end of each applicable month during which the services were performed. Upon termination of this Agreement, payments under this paragraph shall cease; provided, however, that the Consultant shall be entitled to payments for periods or partial periods that occurred to the date of termination and for which the Consultant has not yet been paid.

      4. TERM/TERMINATION. This Agreement may be terminated by either party upon 10 day written notice to the other party.

      5. RELATIONSHIP OF PARTIES. It is understood by the parties that the Consultant is independent with respect to [company name]. [company name] will not provide fringe benefits, including health insurance benefits, paid vacation, or any other employee benefit to the Consultant.

      6. DISCLOSURE. The Consultant is required to disclose any outside activities or interests, including ownership or participation in the development of prior inventions, that conflict or may conflict with the best interests of [company name]. Prompt disclosure is required under this paragraph if the activity or interest is related, directly or indirectly, to: â a product or service of [company name] â any activity that the Consultant may be involved with on behalf of [company name]

      7. INTELLECTUAL PROPERTY. The following provisions shall apply with respect to copyrightable works, ideas, discoveries, inventions, applications for patents, and patents (collectively, "Intellectual Property"):

      a. Consultantâ(TM)s Intellectual Property. The Consultant does not personally hold any interest in any Intellectual Property unless agreed upon in writing by both parties.

      b. Development of Intellectual Property. Any improvements to Intellectual Property and any new items of Intellectual Property discovered or developed by the Consultant (or the Consultantâ(TM)s employees, if any) during the term of this agreement shall be the property of [company name]. The consultant shall sign all documents necessary to perfect the

  2. Always bill for time & materials by duffbeer703 · · Score: 5, Informative

    Quoting a fixed price for projects is like putting a "kick me" sign on your back. You'll attract cheapskate clients who will chisel you.

    Use a standard contract that indemnifies you and covers your ass as much as possible. Always create a statement of work for each engagement and create a new revision that gets signed off for each material change.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
    1. Re:Always bill for time & materials by nine-times · · Score: 2, Informative

      Quoting a fixed price for projects is like putting a "kick me" sign on your back. You'll attract cheapskate clients who will chisel you.

      I disagree with this. You might argue that I'm a cheapskate, but if I'm going to pay a web developer, I want a real idea of what I'm going to be paying. If you quote me an hourly rate, I'm going to want to know about how many hours the project will take you so that I can calculate a total cost anyway. And I won't be happy if I have to pay more than I expected because you've estimated your time badly.

      I think the key to quoting a fixed price for the whole project is to clearly define the project first. Make it very clear what you consider to be part of the project, and what's extra. Make it clear to the customer that if they want anything extra, they'll have to pay for it.

      Remember, it's not just about legal obligations, it's about managing expectations. If you deliver what you said you would within the time frame and budget you've quoted, you're more likely to end up with a happy client who will hire you again and recommend you to others.

      It may be tempting to give a low quote in the hopes of winning business, but I'd generally rather do business with someone who quotes me $x and charges me $x than someone who leads me to believe a project will cost $0.5x and then charges $0.9x. That may seem strange since $0.9x$x, and you'd think that I'd simply want to pay less, but really it's just that there's some business value in having predictable costs.

    2. Re:Always bill for time & materials by Anonymous Coward · · Score: 1, Informative

      I work with fixed price.

      Well I used to be a freelance web developer and now a business owner (small web development company).

      So here are few advices I can give you after 10 years of experience.

      Signed contracts aren't necessary if you work with down payments (up to 30% in my case) and quotes/tender. The invoice should stipulate that it is a down payment (% of the agreed sum) referring to a tender (with date) and in my country that's enough.

      To make quotes estimate the time you think is neccessary and then multiply it by two...This is your limit (if you have to negociate). This is harder but it truly forces you to study the project. Make it very "verbose", every single feature should be described. Don't be an ass if they ask you extra features during the project...But remember this offer when things go out of hands.

      And as a technical guy you will probably give a quote based on what you think it is worth (you always think it is simple...Don't you ;-)). That's plain wrong. You should try hard to imagine what your client thinks it should be worth. That's harder, but more lucrative. And cheap prices aren't always good for selling (they might think, you are cheap because you aren't good...Or worst: naive...)...That's a real science, always sleep on a quote, don't send it just after you finish it.

      Something else if you aren't a good seller, visit communication agencies and propose your services as a freelance.

      If you had a web agency experience, try to remember the price your ex company would have sold it and leave 30% for the communication agency as a commission. Use it as a selling argument for the communication agency. Propose yourself to write the technical part of the tender (Another of your added value).

      Why? Because most communication agencies (well small and medium ones) have very poor technical expertises internally. They are usually good at visual stuffs but pretty ignorant when there is a "database" somewhere. "But" they have already customers, that's precisly the things you haven't yet.

      Do not over charge on the first contract (you either need money fast, references or to prove that you are a good sub-contractor), make it attractive. Don't act too agressively if you aren't paid on time (it will happen...It happens all the time). That's probably the trickiest part for newcomers.

      Here how I work: Leave 5 working days after the agreed date. Then "do not send email", first call them, or better ask them face to face "kindly" what the problem is (after a meeting or something). Always ask a date for the payment. If again they didn't pay you on time, turn "the annoying mode" on. In my case it means calling almost each day, always remember them directly that I haven't been paid yet, and better doing it in public. "Always" kindly, friendly but firmly each time you see him/her. If they seem to have a financial problem agree on a plan with periodic payment. Never be agressive! Never. Be annoying (really annoying :-)) but friendly.

      I have always been paid in ten years, I never had to call a lawyer (yet). A lof of payments are done with a delay +/- one month (so keep that in mind)...Once you get cash...Save it! You will have months with no revenues...Sometimes even 3 or 4 months without new contracts...Be prepared for the worst.

  3. Re:Contracts! by Anonymous Coward · · Score: 3, Informative

    I've heard bad things about SQL Ledger so i'd suggest doing a good bit of research into its problems before deciding it is appropriate for your use. This may have changed, but what i'd originaly heard a few years ago was enough to scare me.

    You can also take a look at LedgerSMB which is a fork of SQL Ledger when a number of people decided to improve it. http://en.wikipedia.org/wiki/LedgerSMB

    Personally I like the looks of TinyERP. http:/www.tinyerp.com/ its may be overly complex for your purposes, but i've been looking to migrate to it from QuickBooks for a while. (Yeah Quickbooks works but I hate it. The only reason I still have a windows vmware image.) Plus many linux distros already have packages for it and recently they added a web client.

    There was another package i encountered that looked promising, but can't recall what it is. I'd done most of my research at the time on http://www.sf.net/ (Sourceforge) and http://www.freshmeat.net/ (Freshmeat)

  4. What I'm doing by jjohnson · · Score: 4, Informative

    I figured out an hourly rate based on my skills and the prevailing rates. When someone wants me to do something, I get a clear statement of what the work entails. I give an hourly estimate in the form of a range (e.g., 20-25 hours), and tell the client that the top of the range is a cap--after that, I turn off the clock and finish the job, and count the 'lost' hours as an expensive education in estimating (clients quite like that there's a ceiling on their costs and that I'm apparently willing to take a hit for doing things badly).

    Then, when I'm estimating, I make sure that I understand the requirements clearly enough that I (almost certainly) won't ever hit that cap. I'm generous in my estimated hours, and if possible, come in at or below that floor of my estimate, which also impresses clients. I'm very upfront about the time taken being a range to handle unexpected difficulties.

    For larger jobs that I quote, I break it up into estimable pieces, and call them milestones.

    For jobs under five hundred dollars, I do the work and bill. For jobs over five hundred, I get half up front and half on delivery. For large jobs with milestones, the half up front, half on delivery is for each milestone. Milestones are structured with a clear deliverable so that the client feels like, if they stop at that point, they've got a recognizable thing for which they paid.

    So far it's worked pretty well for me. The most important part has been long discussions beforehand so that a clear statement of requirements is agreed to before work starts. Then, if the client says they want something different, I've got clear grounds for either revising my estimate or calling it 'out of scope' work with a separate estimate/bill.

    --
    Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
  5. My experiances by vw_bob · · Score: 5, Informative

    I started freelance web development more than 10 years ago. I built my company on my freelance work. So I can speak with some authority here.

    Here's my advice in bite-size nuggets:

    - Only bill time and materials. Do not ever agree to do fixed fee work or you will loose your shirt.

    - Incorporate. It's actually easy and gives you more protections.

    - When tax time comes around have a CPA do your taxes.

    - Find a basic, easy to read, even handed/fair contracting agreement that you should always try to use. Have it reviewed by a lawyer. Include these points: mutual indemnification, your *hourly* rate, terms of ownership that gives you ownership over work produced until its paid for in full. Include a clause that allows your clients to cancel at any time without warning but they still have to pay for hours worked. (More on why later.) Any contracts provided by your clients have reviewed by a lawyer.

    - You *will* eventually (probably sooner rather than later) be stiffed by a client in part or in whole. Have a lawyer you can call to write them a letter. You'll at least get some payment if you have a lawyer write a letter for you. Be sure to know how far you want to push this. The point of a lawyer is not to sue, but to get partial payment.

    - You can set your hourly rate more or less randomly. Look to see what other independent contractors are charging (as best you can) and set your rate proportional to your experiance and confidence. Raise your rates annually.

    - There are numerous ways to handle proposals. Here's what I do and what I recommend: First, spend time talking with your leads to learn what it is that they need. Write this down in a proposal format that includes the following: 1) A short summary (1 to 2 pages at most) of what the client needs. 2) How you propose to solve their problems. This pretty much says that you'll provide what's listed in section #1. 3) A list of technologies and techniques you're likely to use including languages, platforms, frameworks, database, techniques such as Test Driven Development and Continuous Integration, Source Code Control systems, etc. Provide a short blurb about each item listed and why it's good. And 4) provide a guesstimate of how long you think it will take. More on this in the next bullet point.

    - To estimate projects follow this process: 1) break the project down into major steps you'll need to follow to complete the project. This would normally be something like building infrastructure, security, each major section of the application, etc, etc, etc. This is an art and is learned through experiance. Add 33% more for meetings and project management. Add 33% more for trouble shooting and debugging. Add 33% more for post deployment support. Make it very clear to your client that this is *just a guess* based on experiance. As a part of your project management strategy hold at least weekly meetings with your client to show them what you've accomplished, tell them what you're working on, and update them on anything that has taken longer or changed in scope on the project and how that impacts your estimate. Your contact should allow them to cancel at any time. The combination of your initial guess and your weekly updates, combined with the knowledge they can pull the plug at any time gives your client confidence in your project and comfort to pay hourly.

    - Invoice bi-weekly and give a discount for payment in the first week. We give 3% discount for early payment in our standard contract. We get good cash flow and our clients save money.

    - To find leads for projects I recommend that you network. There are many professional networking organizations out there as well as your local chambers of commerce. Also, attend conferences in your technical expertise. Submit topics to those conferences and try to talk at them. Write for technical journals. Most of these are very easy to get into. In terms of sales, don't try to sell. Instead listen to the problems your leads have and tell

  6. Re:Always quote a fixed price by Kukui23 · · Score: 5, Informative

    Time and materials is essential when you have clients who can't make up their minds. Usually, start these people off with a bidded job, but take any change to the project as an excuse to concert the job to "T&M".

    T&M is the best situation for the vendor to be in. It is the worst situation for the client to be in. A bid job puts pressure on the vendor. The threat of T&M forces the client to lock down their decisions.

    This goes for just about any contract job. not just IT or webdev.

    --
    Malama
  7. Re:Always quote a fixed price by TheSpoom · · Score: 2, Informative

    I disagree. I think you should estimate as best you can for larger projects, but quote a per-hour rate as your binding price. Try to stay as close within your estimate as possible, of course, but I believe the grandparent is correct: if you quote a binding fixed price, people will increase the scope over, and over, and over, and won't pay you until you've done way beyond what the initial contract states.

    Quoting a per-hour rate makes things easy and puts forward a message that you will do things as quickly as possible, but that the client will pay for any work that you do. This attracts honest clients who are willing to pay for quality.

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  8. Suggestions from another web developer freelancer by TheSpoom · · Score: 4, Informative

    Guru.com is the best freelancing site I've seen so far. They seem to genuinely respect both sides of the equation, the clients and the freelancers. Compare that to, say, Elance, which seems to treat us like interchangeable cogs. And the built-in escrow is also very nice.

    Brush up on your English. A well-written bid makes you stand out among the rest, especially when the rest come from east Europe, for example. This isn't to say that all businesses there are bad, but some most definitely lack decent writing skills, and if your bid is easier to read, it makes you look more professional, and thus makes the client more likely to choose you.

    Bill by the hour on all but the smallest projects until you are actually running a business where it's more than just yourself and you have an idea of how much things will end up costing in the long run. Legitimate companies won't take this as a bad thing if you provide an estimate at the same time.

    Build payment times into your contract. If at all possible, get all your pay up front in escrow, but if that's not possible, make sure you state something like Net 30 days as your payment terms in the initial contract. If not, you could get shafted really easily when a client takes three months to pay you.

    Encourage repeat business. Get into a discussion with your clients about their business, and suggest areas where you could help them achieve their aims. A versatile web developer can do many things for a business.

    Place what you'll do into the contract. I don't think you need a lawyer like some of the sibling posts here as long as you're specific. Scope creep can really, really suck if you let it happen.

    Oh, and if you happen to need any help with PHP development, give me a shout. ;^)

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  9. Re:% up front and milestones by Firehed · · Score: 2, Informative

    FreshBooks.com is also good for freelancers - I don't use them (I have a desktop app, Billings, Mac-only, which I prefer) but have seen what it can do and it's pretty solid. Free to get started I believe.

    On that note, I'd read the hell out of FreelanceSwitch.com. They have lots of great advice and opinions for billing practices, contracts, invoicing, determining your worth, dealing with clients, and all of the stuff that you'd have to deal with by switching to freelance work (surprise!).

    I will say that what you charge will drastically change what kind of clients you can get. If you can produce some damn fine work, then don't charge what a high school student with some free time will, because then you'll get stingy clients who are demanding crazy requests.

    Learning to say "no" is also a good skill. Don't overdo it, but agreeing to bad terms is setting yourself up to excess stress and failure.

    Again, I'd strongly recommend reading freelanceswitch.com. I'm not affiliated with them in any way, but have found them to be a great resource in my own freelancing experience.

    --
    How are sites slashdotted when nobody reads TFAs?
  10. Re:Learn CSS by Anonymous Coward · · Score: 0, Informative

    No, tables should ONLY be used for what they're intended for: to display tabular data. To use tables for layout purposes, is BAD PRACTICE nowadays.

    Any GOOD web developer will not EVER have to rely on tables for layout, because he'll know how to do it with CSS.

    The only situation where table layout is useful, is the situation where the developer is just not smart enough to use CSS for layout.

  11. Re:Learn CSS by Stormx2 · · Score: 4, Informative

    There aren't many instances where tables give an advantage, and in the few instances it, the advantage isn't significant

    Usually tables are a hindrance for me. I think in terms of divs now. And its always a pleasure to code. I didn't get that when I used tables, really.

    Contrast tables with radical layout changes that can be made with small CSS bits. CSS was a pain before IE6, and IE6 still has issues, but for the most part CSS is an absolute joy to use now.

    Cached CSS means your HTML files are all about content. It means less bandwidth use, and cleaner code.

    Theres loads of reasons I like CSS, and not many for liking tables. My $0.02

  12. Re:Contracts! by Anonymous Coward · · Score: 2, Informative

    Signed contracts may not be enough in the UK.

    If you are doing business with a small client, make sure you get written confirmation that the director(s) will personally underwrite your invoices to his company. If the client company has no money, then there is little you can do to recover debts unless the director's have been negligent, or you have this personal guarantee.

    (I have recently been burned by this.)

  13. After five years of just about paying the bills... by mdavids · · Score: 3, Informative
    • Don't try to do everything yourself. Subcontract to other developers with complementary strengths who play nice with others: a couple of graphic designers, maybe a copywriter, sysadmin, or sales/accounts/office admin genius.
    • Don't try to support too many products/platforms. If you use a different tool for every project, just keeping up with security updates will either become a full time job, or else you will get hacked at some point (I did). Life got a lot easier for me when I decided to specialise in Drupal.
    • Get yourself a VPS or two. Don't bother with shared hosting - it's too expensive and limited. Your clients' hosting fees should pay for the effort _you_ put into keeping their sites ticking over, not for your hosting provider's cPanel licenses.
    • About 20% of your time will be spent on technical work. The rest will be negotiating and hand-holding. You've got to develop some social skills.
    • Insist on using a professional graphic designer (unless you're a graphic design genius yourself). No matter how adamantly a client initially insists that the look of their site isn't important, they will change their mind.
    • Pick your clients carefully. Don't be afraid to say no. Unless you're a scam artist, say no to anybody who proudly proclaims their computer illiteracy. If they don't understand what you do, they won't appreciate it. Likewise avoid clients who think they need a website, but don't know why. Ask them what they want to achieve with the project.
    • You probably won't find small/medium clients who will be happy with paying per hour. Demand a 50% deposit at commencement of work, plus timely delivery of whatever you need from them to complete the job.
    • Don't take on anything that you think will take more than a fortnight's work, for which you should quote four to six weeks. Every project takes longer than you would expect, so if you expect something will take a couple of months, you may be out of business before you get paid. Split large projects into smaller stages if necessary. Even the best clients (not to mention developers) will have a tendency towards feature creep. Make it clear that additional ideas, no matter how brilliant, are for later stages of development. Throw around some buzzwords like "agile" and "iterative".
    • Don't expect to do more than four billable hours a day. Don't let yourself burn out, and keep it interesting. If you don't do a lot of reading and stretch yourself with the occasional hobby/charity project with features that paying clients won't generally ask for, you'll be a miserable dinosaur in three years.
    • Mind you, don't do discounts/freebies unless you really believe in the cause. If you wouldn't do a fun run, sell raffle tickets, or shave your head for them, don't do a website for them. Be clear about the limits of what you'll do.
    • Did I mention you should develop with Drupal? Check out this awesome presentation on catering to small clients with Drupal.
    • Catch up on the Rissington podcast. They're more graphic design focused, but have lots of useful tips for dealing with clients and organising your business, amusingly delivered, and advice about cheese.
  14. Re:Contracts! by Anonymous Coward · · Score: 5, Informative

    I have to disagree. I do a fair bit of freelance stuff on the side and I have never (not once) had trouble getting paid. At first I was very cautious but it just has not been an issue. Even on jobs where I'm basically dealing with an email address in another country the check has always cleared.

    I terms of contracts don't waste your time. A contract is only worth anything if you can enforce it. Are you really going to spend thousands in legal fees going after a few thousand in wages. Just make sure they pay you as milestones are delivered and don't worry too much.

  15. Re:Thoughts on freelancing. . . by 71thumper · · Score: 2, Informative

    As someone who has "purchased" literally millions of dollars of consulting working from both large firms and single individuals over the past decade, I heartily recommend this post.

    The major thing I look for is an estimate, and then constant, regular tracking against that estimate. If something starts to unwind or get out of scope, I want to know early and often because that allows me to make my decisions.

    My bosses -- in fact, anyone's bosses -- don't like surprises. So we work together so there aren't any.

  16. Re:Always quote a fixed price by Daniel0 · · Score: 2, Informative

    FYI, materials can still be digital, such as stock photography, icons, etc. Like intellectual property stuff you need a license to use.

  17. Re:Contracts! by dwarg · · Score: 5, Informative

    I second this. As someone that had trouble getting paid when I started out, I have to acknowledge it was my own fault for doing work for either friends, or friends of friends that were just starting out. Or sometimes taking a chance on a shady character or bad referral. Unless you want to spend a lot of time and money in court, signed contracts won't help you.

    In addition signed contracts will scare off more legitimate customers and cost you more time than they are worth. Just make sure you are dealing with a company that is a viable business, write a good bid/estimate, use common sense and MOST IMPORTANTLY require a fractional payment up front (1/3 for large jobs and 1/2 for small jobs.).

    Also, to elaborate on your question about fixed bids versus hourly rates, the answer is both. Most clients are going to want an estimate and you are going to be stuck to something near that number after you pull it out of your ass. So keep track of your hours so you can make better estimates in the future. And make sure both you and your client understand expectations and deliverables so you can increase the dollar amount *WHEN* your client starts moving the goal posts. You'll also want an hourly rate for any down-the-road maintenance or ancillary services you might provide. After a few years in business 80% of my income comes from 4 clients that provide me with a steady stream of work, billed at an hourly rate. Those clients started off as fixed bid projects that grew and grew until I was an important enough part of their business that they had to keep me around. And I don't know about you, but I would rather have a steady stream of work from known clients I trust than be making cold calls or spending money advertising to find new work. Which reminds me, the other 20% of my work comes from referrals from those 4 clients.

    First rule of freelancing:
    When you find good paying clients, treat them like gold and they will return the favor.

    Good Luck!

  18. Re:Contracts! by Sanat · · Score: 2, Informative

    Read carefully what DWARG has written here for it is sage advice.

    Dale Carnegie used to say that you had to have "the right to talk about it" meaning that the information is from personal experience garnered in the trenches and not from reading a book or guessing.

    I have the right to talk about computers for I have been in the business professionally since the early 60's and yet DWARG concisely and eloquently speaks of his "Right to Talk" in his process of interacting with his customers and potential customers.
     

    --
    And in the end, the love you take is equal to the love you make
  19. Re:Learn CSS by Anonymous Coward · · Score: 2, Informative

    Say what you want about Flash, but Flash developers are always in high demand. If you get in with an ad agency for instance you can end up making a ton of money.

    You may want to consider just doing a Flash ad banner here and there to supplement your income. Great budgets and quick timelines.

    I agree with the bit about JPEGs and PNGs, though GIFs have their place too...

  20. Re:Learn CSS by Hooya · · Score: 4, Informative

    Pick one from here.

  21. Re:Contracts! by sjames · · Score: 3, Informative

    And make sure both you and your client understand expectations and deliverables so you can increase the dollar amount *WHEN* your client starts moving the goal posts.

    That cannot be emphasized enough! Once the client sees their original spec in action, it WILL occur to them that it's not exactly what they need even though it is what they asked for. You must have a policy and procedure in place so that you can accommodate that without ending up doing 3 projects for the price of one.

    The procedure should include a discussion of how much the change will cost. A little 'economic feedback' is a great way to keep change requests from becoming the death of 1000 cuts.

    For little things that really aren't a bother and really will make the client happy, you're always free to waive the charges.

    One thing to keep in mind. I've found (oddly enough) that the more cost conscious the client is from the start, the more perfection they seem to expect. The guy who pounds on you endlessly to get you to drop the estimate another $10 will be the one who wants to see the site in every possible shade of red (only to settle on the first proof you offered) and expects an AI based log parser thrown in at the end for free.

  22. Re:Good Advice by kachakaach · · Score: 2, Informative

    A lot of folks are providing good advice about contracts, and rates and the like, but the process of costing out a large web development job, or even a smaller one, is not black and white. The client frequently does NOT know what they want, does NOT have the content to fill the site, and does NOT appreciate the programming effort required to achieve the objectives set out. In order to provide a quote you can live with, you need to provide quotes on phases of work, with each phase feeding the next quote.

    Out of frustration with the inevitable question, how much will it cost me to make a web site, I developed a process I called the 3 Cs of web site development, to stimulate a meaningful conversation between myself and the client.

    New Web Site Development Process - the Three Cs:
    Conceptualization - Content Development - Construction

    The development of a professional web site is a complex process, and is a great deal more involved than just programming. I recommend that when a web developer works with a client, they both consider the three 3 Cs of initial web site development: Conceptualization, Content Development, and Construction. (In addition, after a web site is developed, there are also maintenance and update issues to consider.)

    Conceptualization
    The first phase, Conceptualization, is often overlooked. However, you should consider this to be the most important of the three phases and the one that will most affect the quality and effectiveness of all development efforts that come after. In this phase, a client may give you a complete site concept diagram, technically feasible, well organized, and annotated (blue moon kind of rare) or you may find yourself in a situation with clients and their staff needing to be interviewed, current marketing and informational materials to be reviewed, and target market(s) to be identified, in order to suggest a new site design (all of this takes time and costs money). The end deliverable of this phase should be the flowchart or storyboard that the client approves. This flowchart will identify the structure of the new site, the degree of interactivity desired, and provides a summary of the content intended for each page. The development of this site flowchart is something you should be able to provide a quote for, after an initial consult with a prospective client.

    Content Development
    The second phase, Content Development, involves identifying or creating the text, photos, graphics, sounds, video, and other various media that will be included in the site. Some of the text may have already been drafted by the client, or it may involve all original writing. Photos may already exist and can be scanned, or a photographer may be required. There may be audio/video recording or digitizing or a variety of other content-related activities to produce the actual final content for the pages to be developed. The end deliverable in this phase is the actual text and graphics, and all other media required for inclusion into the web site. Lack of content from the business client is a common problem that holds up new web site development projects. Separating this phase of the web site development into itâ(TM)s own activity helps the client understand their choices, they can provide you with the text, photos, videos, etc, or they can pay you to develop them, but content does not develop itself, it is a billable activity. Once you have the flowchart, developed in phase one, you can go thought the content needed, as shown on the flowchart, and note who is providing it, you or the client. Once this exercise is complete, you can provide a quote for your portion of the service for this phase two activity, Content Development.

    Construction
    Finally, in the third phase, Construction, the web site will need to be built (programmed) using the flowchart or storyboard as the "blueprint" and the text and graphics and other media as the content of the various pages created. There may be a whole variety of different technologies required to achieve the cl