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."

438 comments

  1. Contracts! by nurb432 · · Score: 5, Insightful

    First of all be sure you get signed contracts, or you will be stiffed more then you get paid.

    Plenty of OSS timekeeping apps out there. Check out SQL-Ledger for a complete solution with accounting.

    --
    ---- Booth was a patriot ----
    1. Re:Contracts! by ushering05401 · · Score: 4, Insightful

      Same note, different angle, make sure what you are getting paid for is something you can do not only ability, but time-wise.

      Talented novice freelancers are often oversold freelancers, which leads to unhappy customers.

    2. 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)

    3. 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.)

    4. 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.

    5. Re:Contracts! by orasio · · Score: 1

      I always thought that TinyERP was great, its only handicaps being its name, and the lack of a nice and pretty web client.
      Right now they have a good web client, and they changed their name to OpenERP. I have no excuse now.

    6. Re:Contracts! by Anonymous Coward · · Score: 1, Interesting

      Aaaah yes I reminisce about the old .com boom days when that was really a problem for me, 20 hour/week part time job, part time college student, and 2 side freelance gigs, amazing I ever slept...and yes the freelance gigs in particular were pissed, an experience I'm not repeating...

    7. 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!

    8. Re:Contracts! by lysergic.acid · · Score: 1

      i really don't have much experience with accounting software myself (i know that we use MyInvoice at work, but i'm pretty sure that it's a piece of crap, and it's also proprietary). but i just wanted to point out that the Wikipedia page on LedgerSMB also had a link to a very thorough comparison of accounting software (both proprietary and open source). it might be worth checking out--and who knows, maybe some slashdotters can help fill out a few of the question marks in the tables?

    9. 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
    10. Re:Contracts! by ShieldW0lf · · Score: 3, Insightful

      I would recommend that if you're going to be doing a project that is going to take longer than a month for anything larger than a small business, you sell them on the importance of good, formal requirements gathering. Tell the owner that he doesn't really understand his employees day to day problems well enough to tell you what he needs, and that he should pay you by the hour to interview an individual in the organization that will be using your software for each particular role and give him a document specifying precisely what he needs. Explain to him that this understanding allows him to be in control of the project he is paying for. If anything were to happen to you, he would be able to present the document to another programmer and they would be able to pick it up and get to work and give him what he needs. If he's smart, he'll be thinking that having the liberty to replace you is a smart move, while you should be thinking that this document is going to be paying work all by itself, and also allow you to negotiate a fair price for your work without having false expectations, a failed project and a black mark on your name.

      --
      -1 Uncomfortable Truth
    11. Re:Contracts! by wibs · · Score: 5, Insightful

      I agree to a large extent but it depends a lot on the client. I say this as a fulltime independent web developer.

      I once spent a month in negotiations with a client over a contract, until finally I walked away. The only thing that would have been acceptable to them was essentially a non-binding resolution governed by the state of Utah, their corporate home, suffice it to say I am not in Utah and it would have made even an effective contract impossible for me to enforce because I don't have the time or money to fly somewhere to fight over payment for one gig. A few months later I heard that they had stiffed the person they eventually found to do the job, and now more than a year later they still haven't made any progress but have lost the benefit of any referrals.

      Point is, a contract wouldn't have saved me there, and it certainly burned some goodwill with the client. But it also showed me what kind of people they were, and the struggle ended up steering me away from a bad situation.

      In general I agree with everything else said. Keep very detailed accounts of your hours and how you use them. Treat your good clients like gold - and I mean that. Send them Christmas cards, with handwritten notes - nothing sappy or long, but let them know you're a human being and you appreciate their faith in your work. If you love them, they will love you back. Always get money up front (this depends on the client and the project, but it's generally within 25%-40% for me).

      I have made a gut call and not even mentioned a contract with a few clients. Just remember that to a stand-up client who intends to pay you money for the work you do, a contract shouldn't be a scary thing. If it is, that means you're presenting it wrong, it's written poorly, or something about them isn't aboveboard. Maybe they're just trying to keep the government out of their accounting, or maybe they want to be able to walk halfway through if they get a change of heart without having to pay anything. Whatever it is, it's important you find out before it hurts you.

      Ideally, I have 2-3 major projects going at once and a handful of smaller ones with less demanding timelines, and almost all of my business comes from a fairly small circle (20 people or so) who pass around referrals. I think maybe the biggest thing I haven't seen mentioned is that us independent web developers and designers and coders and whatever are not competitors - even in bad economic times there's plenty of work out there for us, if anything it's the expensive agencies that will lose contracts to flexible independents. Cherish your network of trusted associates, it's through them that you build a reputation and grow your business. And the next time you've been offered some work that doesn't fit into your schedule, pay it forward and refer someone else.

      With good clients and bad, the most important thing is getting a feel for them as people. Show respect, get respect. Do a good job, get paid for it. Pretty simple, really.

      --
      If you get nervous, just remember that there are a few billion other people who don't really give a damn.
    12. Re:Contracts! by timnbron · · Score: 1

      I'll third that. I think we scared off a lot of customers with contracts and extortionate hourly rates (designed to cover sales, accounts, admin, cat food, the works). The customer who were happiest (and most profitable) were the ones we just charged at a (lowered) hourly rate for everything. If I'd been in charge, I would have cut the hourly rate in half, but charged them for everything, not just the time it took the techie to code it.

      Our biggest bane was customers who would try to get the cheapest price, add extra features by stealth, expect the capabilities of Google, Flickr and Facebook combined, and, ah yes, fix their computer for free. If we'd just charged them a plain hourly rate, we'd have been laughing.

      Sure, you need to give an idea of total cost. But make it plain that it's an estimate, not a quote!

      --
      There are some who call me ... Tim.
    13. Re:Contracts! by Registered+Coward+v2 · · Score: 4, Insightful

      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.).

      While I agree with all of the rest of your excellent advice, I differ here. A simple contract, that clearly spells out the deliverable, due dates, etc., helps both sides understand what is being done for what cost. As the work progress, you talk with the client to ensure they are getting what they expect and to keep the project on track. That way, there are no surprises and both sides are happy. I've never had a client balk at signing a contract; in fact most want one and get nervous about starting work without one. Be professional about it and clearly lay out what is to be done when, for what cost, and what support you get from the client and I suspect you'll have no trouble. Once you have a solid relationship you can work on spec but until then a contract helps both sides.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    14. Re:Contracts! by BradMajors · · Score: 1

      Even if you have signed contracts you will still get stiffed. When I have had signed contacts I USUALLY got stiffed usually by very small amounts, but once for a very large amount.

      The problem is collecting the money is not that easy and anything more than a simple matter over a small amount of money will cost thousands of dollars in legal fees. Also, if you use the legal process over a small amount you will never get another contract with that company.

      Now instead, I come to an understanding with a few sentences in an e-mail and use other methods to protect myself.

    15. Re:Contracts! by Anonymous Coward · · Score: 0

      I've also never bothered with contracts. It's another expense and it isn't as friendly to your clients to have them sign contracts. Of course, all of this depends on the type of work you do, the country you live in, how well you can read people, etc., as I'm sure there are cases where going without a contract would be silly.

    16. 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.

    17. Re:Contracts! by olesaltyballs · · Score: 0

      I'd like to add something to this. In the event a client necessitates a signed contract, here is an example one I use when dealing with bands:

      Throwing out the obfuscating legalese, this document expresses the terms agreed upon between xxxxxx xxxxxxx (client) and xxxxxx xxxxxx (web guy). These terms include the following:

      One (1) Flash application, including audio, video, and image components to be provided by the client.
      One (1) php forum for the fans. Preferably a free one, unless the client would prefer to pay the licensing costs for vBulletin or such.
      One (1) mailing list to keep signees informed on events.
      One (1) online storefront to manage sales of merch.
      Maintenance of www.xxxxxxxxxx.com.
      The project shall be delivered upon _______ ___, ____.

      If for any reason these terms cannot be kept by either party, the client has the right to a partial refund to be decided by the web guy provided there are no punches thrown, mexican standoffs, etc, and provided the web guy has the funds to relinquish. The web guy will delete all files no longer under his authorization for use, and will not use any original artwork used for www.xxxxxxxxxx.com in future projects except with permission from the client.

      With the client's permission, the web guy would like to be able to use www.xxxxxxxxxxx.com for future portfolio use upon completion of the project. Most people allow use, because it's pretty much a win-win situation for everyone, but should the client wish to deny permission, www.xxxxxxxxx.com will not be used for portfolio purposes. If the client gives the web guy permission, please sign below.

      ________________________

      If these terms are agreed upon, the signatures of both parties should be placed below on the following lines. If these terms are not agreeable, then the web guy will be sad, and draft a new document should the client request, or the client can draft one at her behest.


      Informal and humorous can win confidence, especially in creative types. Even clients who have decided against my services due to price or time enjoy a more "human" entity to interact with, and have referred me to others who needed my services. I will admit this method doesn't work for all clients though, it's best to determine if the client would appreciate an informal contract before trying this :)

    18. Re:Contracts! by Anonymous Coward · · Score: 0

      ( "stand-up client" just = "upstanding client" right

    19. Re:Contracts! by lalena · · Score: 4, Insightful

      Exactly.

      And if that scares people, then call it a "Statement of Work" instead of a contract.
      All you need to do is write out exactly what you are providing, by when, and for how much.

      Then, if the project does suffer from feature creep you can always point to the statement of work to show it wasn't in the original estimate.

    20. Re:Contracts! by Alpha830RulZ · · Score: 1

      While a contract is possibly overkill, a good Statement of Work is worth it's weight in, well, neutrinos, or whatever. Just the act of discussing it with your client will clear up a lot of ambiguity, that will help everyone stay happy.

      The SOW should cover:

      1) what you are doing for the client in terms of tasks

      2) What you will deliver, and what the conditions of completeness are

      3) When you will deliver it.

      4) What the client needs to supply you, and when, in order for you to meet your commitments

      5) what you will be paid, and by when.

      6) any assumptions that you are making (client has a web server ready to receive the work, etc)

      In more complicated projects, I find it's also useful to start the SOW with a background section that provides a grounding for why the work is being done, and a business objectives section to clarify what the objectives are that the client is trying to meet. Again, these help mostly in making sure that you are communicating well with your client.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    21. Re:Contracts! by Anonymous Coward · · Score: 0

      Well guys, this is easier that in looks. What you should do is set up a demonstration site that is totally under your control. Try to get a 50% deposit up front. That's especially important for lightly capitalized freelancers because you have to keep all your basic infrastructure (food, rent, computers, ISPs) satisfied until project completion. Use the demo site for the approval process. Then, upon approval, get the balance before deploying to a customer controlled site.

      Last bit of advise, its a lot easier to retain a satisfied client than it is to try to attract an unending stream on new clients. bend over backwards to make sure your client is happy. Even if that means it takes a small hit on your profits.

    22. Re:Contracts! by Baddas · · Score: 1

      More than that, being oversold means you need to charge more. It's a win-win!

    23. Re:Contracts! by coryking · · Score: 2, Interesting

      If you cannot afford Quickbooks, you have no business doing freelance web design. You are a business, you a not a fucking hippie charity.

      Quickbooks is a god damn scam for sure--they "upgrade" every year and do crap like stop supporting one year old software and force you to upgrade at full price so it runs on vista. But dammit, you are a business person and so you should think like one. Your accountant uses it, you can invoice your clients with PDF files, and it works. It is only $190 tops and if you can't afford something you use for billing, quit now while your ahead.

      Guess what, this is business. Just because the software is free doesn't mean you save money. Quickbooks is the *only* accounting software worth your while. You dont bill your clients to fuck around with SQL Ledger or some other bullshit. You bill them for web design. Pay the money and STFU. If you think if is worth your non billable hours to fuck around with getting open source software to work with your accountant and getting it to *just work* by all means use it, but really just pay the fucking price and be done with it.

      Seriously. Not all things are appropriate for open source. Accounting software is one of those things. I hate intuit with the passion of a thousand suns, but I have better things to do with my non-billable time then fuck around with software I use to invoice billable hours. Welcome to reality.

    24. Re:Contracts! by coryking · · Score: 1

      Yes. Watch for rate chiselers. The people who are cheapskates are the ones who want the sun and the moon. Funny enough, the people you bill at the highest rates are usually the easiest going and the most apologetic when they have issues. Always, always bill higher rates, not lower ones. The people who pay you more understand the value you provide better and don't dick around with you.

      It is the hardest thing to learn. What you made at an hourly rate as an employee has *no* baring on what you should bill as an hourly rate. If you billed what you made as an employee, you'd be better of working at McDonalds. $40/hr might sound like the shit, but it is really minimum wage (or worse) for a contractor.

    25. Re:Contracts! by Anonymous Coward · · Score: 0

      I started out with quickbooks (even bought the pro version) and frankly outgrew it within a few years.

      Quickbooks absolutely sucks unless you only have a few clients. Once you get beyond that you'll spend your entire weekend just managing invoices estimates and other things in it. I'd rather be working on getting new business or making clients happy.

      Fuck its doesn't even support international currencies. If youre only one person and like doing everything the hard way then quickbooks is where its at.

      Why I hate quickbooks (a few):
      1. No international currency support
      2. Doesn't support custom designs for invoices/estimates (their version of "custom" sucks and the result is very amateurish)
      3. MICR? (if you don't know that that is don't worry about it)
      4. Automating anything for data into or out in a real-time fashion costs $$$$ for addons
      5. Not web enabled
      6. Single user
      7. POS module costs $1,000 (and it a piece of shit)
      8. Upgrades can be flakey and potentially cause problems

      Honestly the only real benefit of quickbooks is it does the math for you and keeps you from making mistakes. Doing everything by hand (once you understand waht quickbooks is really doing) i've nearly decided is quicker. (Ok, and in the US, quickbooks offers automatic integration with banks and many no longer charge through the nose for that pleasure)

      I'd be willing to bet you've never even tried to use OpenERP (or any other software). If you had you wouldn't be having a pissing contest over Quickbooks. It does 90% of what quickbooks does and about 200-300% more. Oh yeah, and it just works.

      Frankly if you want to spend money on an accounting package you could look at OSAS. Thats the cheapest package i've found worth paying for for those that need it. (And i've played with MS/GreatPlains/Dynamics GP before and it sucks too).

      Now all of this isn't to say that things like SQL Leger and the other free software out ther don't suffer many of the same problems. But quickbooks isn't the answer to all the worlds problems.

    26. Re:Contracts! by PCM2 · · Score: 2, Insightful

      If you cannot afford Quickbooks, you have no business doing freelance web design. You are a business, you a not a fucking hippie charity. Quickbooks is a god damn scam for sure--they "upgrade" every year and do crap like stop supporting one year old software and force you to upgrade at full price so it runs on vista. But dammit, you are a business person and so you should think like one. Your accountant uses it, you can invoice your clients with PDF files, and it works. It is only $190 tops and if you can't afford something you use for billing, quit now while your ahead.

      Please, get off your high horse.

      1. Nobody said anything about not being able to afford it. They said OSS.
      2. I generate invoices with an Excel spreadsheet -- no fuss, no muss. My business has so few material costs that Quickbooks is overkill for me. What expenses do you need to track for Web development, exactly?
      3. Your paragraph about how badly Quickbooks sucks and how much hamstring you with bogus upgrades and poor support kinda undermines your righteous indignation at people who choose not to use it.
      --
      Breakfast served all day!
    27. Re:Contracts! by coryking · · Score: 1

      No high horse, just saying that as a business person you shouldn't be afraid to pay money for the software you use. If you make more money using Excel, that is awesome and more power to you. For me, I use a rusty old copy of Quickbooks 2006 running on a VMWare guest that has XP on it cause the bastards wanted full freight to upgrade to 2007 that claimed to run on Vista, Since nothing was interesting in 2007 and Quickbooks runs fine under VMWare what the hell, right? Quickbooks also comes with a nifty timer appliation that I use to track my billable hours and imports them right into an invoice which I then fire off as a PDF email attachment to my clients. Excel doesn't do that :-)

      My point (in this irresisable thread I'm commenting on after wine + dinner party) is that paying for software isn't something to be ashamed of. We are all business people and are looking after the bottom line. If you make more money using Excel, more power to you. If you think you can make more money dicking around for hours with SQL ledger, hey, good for you. Me? I'll stick with Quickbooks 2006 under VMWare. Maybe in 2010 I'll upgrade to something that runs under whatever Microsoft releases in 2010 ;-)

    28. Re:Contracts! by PCM2 · · Score: 2, Interesting

      I hear you; I'm just saying it's not the perfect fit for everybody.

      I should probably add at this point that in the field in which I work (freelance writing), we work for flat fees. There's no time tracking. The client tells us, essentially, how much work they want, when they want it, and what they're going to pay us for that work. We negotiate, then we say yes or no. After that, the essence of the business is A.) being able to know what the client really wants and to deliver that, consistently; and B.) being able to do it blazingly fast. Since they're paying us flat rate, the faster we can do a high-quality job, the more money we make. It's not an easy road if buying a boat is your goal, but if you can find your niche and a few reliable clients, you can do quite nicely.

      --
      Breakfast served all day!
    29. Re:Contracts! by Anonymous Coward · · Score: 0

      Haha, retard.

    30. Re:Contracts! by Anonymous Coward · · Score: 0

      If you love them, they will love you back. Always get money up front

      Are you sure you are talking about software development?

    31. Re:Contracts! by Anonymous Coward · · Score: 0

      Having worked for three years as a trainee accountant in a small accounting firm that only really deals with self employed and small businesses, I have first hand experience on _how bad_ Quickbooks is! There are plenty of cheaper and easier to use solutions on the market that work remarkably better!

      For a freelance web developer starting out, a couple of spreadsheets and some word templates for invoices will absolutely suffice!

    32. Re:Contracts! by Fred_A · · Score: 1

      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.

      This matches my experience and what I've seen, with ratios going from 50/50 to 90/10 (usually around 60 or 70 /40-30). It's indeed the best situation to end up with, letting you know what kind of income you can expect, which is always a big variable when freelancing.

      As an aside, I've never really had a problem with the contract. I use it to specify the scope of the intervention and/or to specify my rates. Just so everybody agrees on everything when we get started.
      But then it's in Europe where people may be used to more formal paperwork.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    33. Re:Contracts! by Anonymous Coward · · Score: 0

      Geez, can you post after the meds have kicked in please?

    34. Re:Contracts! by easyTree · · Score: 2, Funny

      Haha, retard.

      If you're gonna make such an insightful comment.. could you at least wrap the original comment in some <blockquote>'s so we don't need to scroll?

    35. Re:Contracts! by Lumpy · · Score: 1

      Get a old version of quickbooks. QB6 is good enough for anyone without a payroll.

      Or if you are on a mac, get a copy of "billable" works absolutely great for freelance work and does not need you to learn accounting.

      There are no useable free Linux accounting systems. and the copy of QB6 I run cost me $49.95 off ebay. and no you do not need the latest version unless you are running a payroll and want to track it in QB.

      --
      Do not look at laser with remaining good eye.
    36. Re:Contracts! by Lumpy · · Score: 1

      Exactly. i simply pull the plug on the site.

      you no pay? your site disappears. works great.

      Plus unplugging the site magically get's a check sent.

      --
      Do not look at laser with remaining good eye.
    37. Re:Contracts! by Lumpy · · Score: 1

      The wisest words right there...

      Just walk away.

      If ANYTHING about a client bugs you, walk away. Trust your gut and get out of there.

      There is always another client around the corner.

      --
      Do not look at laser with remaining good eye.
    38. Re:Contracts! by dwarg · · Score: 1

      It occurs to me, after reading the replies, that I may have been too strict in my interpretation of the word "contract." Whether it's a proposal, estimate, statement of work, or a contract I think we all agree that legal liability isn't necessarily as important as clearly describing the project and making sure everyone is on the same page before work begins. Doing so should give you a good sense of who you're dealing with and protect you from problems down the road. Regardless of what you call it, you need to do some preparatory work before you jump into a job with a new client.

      Also, I like this post's point about referrals. I haven't developed a referral network for when I'm overbooked and it would be a nice insurance policy against those occasional quiet times. He's definitely right that there is more than enough work to go around. Unfortunately, I tend to be a bit reclusive and have lost touch with all my old dot.com buddies. I should probably look them up again.

    39. Re:Contracts! by Anonymous Coward · · Score: 0

      Wow... I think you just flagged yourself as someone who has not only never worked as a contractor, you have probably never seen a contract. A contract defines the rules for doing business between parties (... How disputes are handled, payment terms, etc.) Project expectations are outlined in a statement of work, not the contract.

    40. Re:Contracts! by colmore · · Score: 1

      I work for a three man shop, and we're just now getting to the point where we can fire bad clients.

      It makes a world of difference.

      --
      In Capitalist America, bank robs you!
    41. Re:Contracts! by tehcyder · · Score: 1

      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.

      Are you joking? I have worked in many small businesses, and have never ever come across this. As an accountant I would recommend that any potential supplier who expected this was told to take his business elsewhere.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    42. Re:Contracts! by Anonymous Coward · · Score: 0

      > Welcome to reality.

      Welcome to a short scripted terminal app backed with an sqlite db. Took me a day to write, I've run it for 4 years, it exports invoices to pdf and mails them out just fine.

    43. Re:Contracts! by Anonymous Coward · · Score: 0

      First of all be sure you get signed contracts, or you will be stiffed more then you get paid.

      Plenty of OSS timekeeping apps out there. Check out SQL-Ledger for a complete solution with accounting.

      The most important thing I have found is this:

      Depending on your hourly rate estimate, I typically double it. That puts me in the profit area.

      Always Always Always remember to use change orders, or you'll get nickle and dimed to death.

    44. Re:Contracts! by jcoleman · · Score: 1

      There is no such thing as "good formal requirements gathering." You are right that the owner does not understand his employees' day-to-day problems...but you need to go one step further and recognize that the employees don't understand them either. They won't know what they want until they see your interpretation of what it is they think they want. Rapid development/prototyping needs to be one of your essential tools. You really need to take a look at the agile manifesto and negotiate this type of relationship in order to be successful as an independent developer. It's not the document that will win him, it's the shippable product increment he gets along with the bill.

    45. Re:Contracts! by Anonymous Coward · · Score: 0

      Wow... I think you just flagged yourself as someone who has not only never worked as a contractor, you have probably never seen a contract. A contract defines the rules for doing business between parties (... How disputes are handled, payment terms, etc.) Project expectations are outlined in a statement of work, not the contract.

      I can see why you posted as an AC - you really have no understanding of contracts or consulting. While a SOW certainly can cover project expectations they can just as easily be written into a contract; as I have done numerous times. In fact , SOW could be considered a contract as it indicates offer, which is followed by acceptance and consideration.

    46. Re:Contracts! by drkrimson · · Score: 1

      A contract is only worth anything if you can enforce it.

      Here in Belgium there is such a thing as a legal-insurance, costs about 300 euros a year. If you have a non-paying customer or get sued by a customer or have a valid reason to sue a customer or supplier, they will go after them if you can prove your case.
      If i've been informed correctly an acknowledged order form (that makes mention of your terms) from your client via email can be enough for them to start making a case.
      Luckily I have never (in the past 10 or so years) had cause to use them.
      I assume though, that just the threat of that call by the lawfirm and/or collection agencies should be enough to spook most small/midsize companies or persons into paying.

    47. Re:Contracts! by ShieldW0lf · · Score: 1

      There is no such thing as "good formal requirements gathering." You are right that the owner does not understand his employees' day-to-day problems...but you need to go one step further and recognize that the employees don't understand them either. They won't know what they want until they see your interpretation of what it is they think they want. Rapid development/prototyping needs to be one of your essential tools. You really need to take a look at the agile manifesto and negotiate this type of relationship in order to be successful as an independent developer. It's not the document that will win him, it's the shippable product increment he gets along with the bill.

      I disagree. I think agile development is wasteful, leads to a lack of long term planning and a ridiculous amount of refactoring that could have been avoided. It also is hard on the users, because instead of being delivered a system that suits them, learning how it works once and using it to do their job for years to come, they're trying to get their work done with a system that is in a constant state of flux. The real world cost of that is dramatic, because you're paying every single employee to waste time getting their bearings on a daily basis.

      Good requirements gathering is hard. Most people don't have the critical thinking skills to do it, and most critical thinkers don't have the people skills to do it. But it's still the best way to produce software if you're capable.

      --
      -1 Uncomfortable Truth
  2. 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 omb · · Score: 2, Interesting

      Does someone want to post a standard US contract of this type. Ie simple!

    3. Re:Get a lawyer by PCM2 · · Score: 1

      I haven't done any freelance coding in a long while, but when I did, most of my clients had a "standard contract" of their own. In this case, it may be advisable to retain a lawyer who can go over other people's contracts for you and let you know whether they contain the stuff you need. One thing many young people don't understand is that a "boilerplate" contract is almost always subject to change, if you ask. If you object to a certain clause, ask them to modify it or delete it altogether. If they're completely inflexible then it may be a red flag. In my experience, however, any time I told somebody something like, "This clause is bullshit, it says I have to choose arbitration over court if I have a problem with you, but it says nothing about what you can do to me," they have always agreed to my changes. Writing a contract to your own advantage may be kinda sneaky but it's not really the same thing as screwing the other guy, and it doesn't really pay to get so offended that you turn down work. Instead, just learn to expect a little legal wrangling and watch your back.

      --
      Breakfast served all day!
    4. 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

    5. Re:Get a lawyer by visionbeyond · · Score: 1

      Having stumbled into contract work after the Internet bubble burst, and remained with a steady flow since then, my view of contracts has changed back and forth over the years. There is a lot of good advice in the postings, and I don't think that an enormous amount of time should be devoted or needed for any contacted work. Other than the definite legal protection a contact provides, I believe more than anything else it insures that both you and the client are on the same page, with the same vision and expectations. That natural course of any good project is inevitably going to mutate into something completely different. Anyone that's done even one contract, or project working full-time for a company, knows how bad feature creap can be. Outlining exactly what is expected and what will be included very clearly is key to you being able to stay within your projected estimate. Something as simple as a form, if not defined, quickly can turn into dynamically generated content dependent drop list with per field javascript validation and pre-submission login/password availability checking with ajax calls (as a simple example). Once each elements additional time is added, for all the things that weren't made clear in it's definition, you'll find yourself quickly way over your estimate. More than whether you decide to require a signed contract, or are just spec-ing out a project, they key element to being a successful contact programmer (in my humble opinion) is clear communication. You'll need to fully understand every element to come up with a cost estimate anyway, I've found that bulleting features, blocking logic flow, and quick short listings of functions not only make coming up with an estimate easier (as you can do a time allotment for each point), but also keeps you on track throughout the project and have a clear picture of the wide scope right from the start. Having you and the client both see, understand, and discuss each step of the development will remove most points that can easily become deal breaking issues or law suits later. Expectations need to be the same for both client and developer and most clients won't appreciate or understand why one seamingly simple element is actually the hardest logic point, or why the what they perceive to be the most complex piece is just simple display of calculation of compiled database data (for example). Having a simple, but clear contract no only protects yourself, it protects the client and if done correctly, makes it so there are no surprises and extra things that always find there way to sneak in. Lastly, and that 1-2 hours for creating the outline (which you can use as a contract too) in your total hours. The client will appreciate it, help them feel like they "are in the loop", helps alleviate any concerns or doubts, and clearly shows professionalism on your part. When you think about it, as long as it's kept within relative reason of simple and to the point and in proportion to the volume of the project, can it really hurt you in any way? -Davey

  3. Well by Anonymous Coward · · Score: 0

    The best thing to practice for is a new career.

  4. Pirate an obsolete version of Dreamweaver... by John+Hasler · · Score: 2, Funny

    ...and you're good to go. Just look around the Web a bit. If they won't pay take down their sites: you'll own the domains.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  5. Learn CSS by Anonymous Coward · · Score: 4, Insightful

    For the love of god, do NOT make your websites using any of these:
    - tables (for layout, I mean)
    - Flash
    - Java

    Also, learn to code for Opera/Safari/Firefox first, then add conditional CSS for IE6 and IE7.

    Take time to learn the real-life differences between JPEG and PNG. You shouldn't have a photo in PNG anymore than a logo should be in JPEG.

    And last, know the limits of bandwidth and clients. Not everyone uses a high-speed cable connection on a Quad-core computer.

    posted anon because of the freakin' Adobe Flash fanboys.

    1. Re:Learn CSS by Greg_D · · Score: 1

      No, he means applets.

    2. Re:Learn CSS by vipz · · Score: 2, Funny

      Pretty sure GP meant Java applets. You know, the little grey boxes from the 90s? :)

    3. Re:Learn CSS by localman · · Score: 4, Insightful

      Table layout is still very useful. I've seen some ugly, brittle CSS layout hacks that could have been solved with a very simple table layout. Yes, tables can be abused. Yes, in Netscape 4 they rendered painfully slow. Yes, CSS removes much of the need for tables. But dismissing tables entirely as a layout tool is pretty foolish.

      Just my $0.02.

    4. 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.

    5. 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

    6. Re:Learn CSS by vux984 · · Score: 5, Insightful

      For the love of god, do NOT make your websites using any of these:
      - tables (for layout, I mean)

      1) using tables for actual tables of course is perfectly ok (as you implied by saying 'for layout'
      2) I would suggest "avoid" using tables for layout as much as possible, but don't discount them.

      When faced with a situation where a table will just work in every browser you intend to support with minimal table html markup, and doing it with CSS requires divs nested in divs nested in divs nested in divs with all sorts of css hacks, and then STILL needs a javascript to run after the page renders to fix the widths and heights etc...

      Yet its trivial to do with a table, without any javascript or browser hacks.

      I just use a table.

      Pure CSS is gold. But in my opinion browser hacks and javascript for layout are WORSE than tables. If you need them to avoid tables and make your "pure CSS" work, the cure is worse than the disease. (and really its not "pure CSS" anymore if you are using hacks and javascript)

      As for flash and java. I again agree to a point. For most sites you absolutely don't want to make them essential for your site to operate, but there is nothing wrong with using either appropriately. And depending on what the site is, it might be appropriate to make them essential. homestarrunner.com without flash would be pretty pointless.

    7. Re:Learn CSS by harry666t · · Score: 4, Insightful

      http://giveupandusetables.com/ :)

    8. Re:Learn CSS by SanityInAnarchy · · Score: 1

      When faced with a situation where a table will just work in every browser you intend to support with minimal table html markup, and doing it with CSS requires divs nested in divs nested in divs nested in divs with all sorts of css hacks...

      Or you could just use CSS to make those divs behave like table cells -- which will work everywhere but IE.

      homestarrunner.com without flash would be pretty pointless.

      Certainly everything homestarrunner is doing could also be done in svg/canvas and Javascript.

      --
      Don't thank God, thank a doctor!
    9. Re:Learn CSS by Anonymous Coward · · Score: 0

      The only thing worse than tables are divs used to make tables.

      I'm not saying you do it, but I've seen it before. You tell someone to stop using tables and they essentially replace all their /s with

      s.

    10. Re:Learn CSS by rickb928 · · Score: 1

      If you make an all-Flash site, it won't show up on my G1. Mighty frustrating if you do this for a sports bar site I only look for when I'm scouting a place to see the game that has WiFi.

      They didn't get my business today. Too bad for them.

      Flash is the Web's PowerPoint, Which is the new Solitaire. Avoid for real work. Use sparingly, and where appropriate. Like cartoons, or intros intended to annoy people looking for information, not entertainment.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    11. Re:Learn CSS by Oligonicella · · Score: 3, Insightful

      will just work in every browser you intend to support

      "which will work everywhere but IE"

      Reconcile please.

    12. Re:Learn CSS by Anonymous Coward · · Score: 0

      Both of these points are reasons to use tables and flash.

      If the website doesn't work in internet explorer, its unlikely to be of any use to the customer, and you've just given 2 places in my opinion, to stick to a cross-browser way of doing things

    13. Re:Learn CSS by Anonymous Coward · · Score: 0

      DON'T use tables for layout? Why? Just as the W3, you have absolutely nothing that substantiates why this choice should not be made, more than a vague "'coz it's not what they are supposed to be used for."

      You saying that it's "wrong" to use tables for layout is as silly as people who pretend to be knowledgeable C programmers saying "don't use goto!!! bad!!!" - it's just like saying that a pair of scissors are bad, dangerous, and should at all cost be avoided, just because you might run around with them, fall, and stab yourself. Don't fear the damned tool, just learn how to use it and how to avoid its eventual pitfalls. (try grep the linux kernel sources or whatever for 'goto' - that'd make you gawk.)

      Tables render and function identically on all browsers, the solution works everywhere, contrary to common and dirty CSS hacks that do not render identically everywhere - if they're even supported everywhere. You silly bandwagon jumper you.

    14. Re:Learn CSS by The+MAZZTer · · Score: 1

      http://shouldiusetablesforlayout.com/

      (Not that your link doesn't have good points, but I like mine too.)

    15. Re:Learn CSS by HeronBlademaster · · Score: 1

      The only reason I still use tables for the layouts I do (I'm not a web guy, so my sites are side projects) is that I have yet to find an easy way to get a footer to work correctly with a multi-column layout using CSS.

      I found a tutorial on a site once but it required far more code than a simple table-based layout. Any hints, guys?

    16. Re:Learn CSS by Stormx2 · · Score: 1

      If you have two columns

      ...

      ...

      and menu is "float: left;", then adding a footer is super easy

      ...

      and set "clear: left;"

      is that what you mean?

    17. Re:Learn CSS by Stormx2 · · Score: 1

      What the hell? Even when I select "plain old text" it doesn't use it. Nice one, slashdot! Using [] for tags. Ghod I hate new /. :|

      If you have two columns

      [div id="menu"]...[/div]
      [div id="content"]...[/div]

      and menu is "float: left;", then adding a footer is super easy

      [div id="footer"]...[/div]

      and set "clear: left;"

      is that what you mean?

    18. Re:Learn CSS by Anonymous Coward · · Score: 0

      very clever site, and i definitely know the feeling that the site alludes to.

      still, it should be pointed out that neither Golden State Communications (the company the site designer works for) nor the author's blog actually employ tables in their layout. even the giveupandusetables.com layout only uses a gratuitous single-celled table.

      as the background blog post explains, the site is meant only as a lighthearted joke.

    19. Re:Learn CSS by daniel_newby · · Score: 4, Insightful

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

      CSS is terrible at sharing horizontal space. Consider a two column page: a sidebar on the left aligned to the left of the page, an elastic-width content column on the right, and a fixed-width margin separating them.

      With a table, the code looks like this:

      <table class="bare-layout-table"><tr>
      <td><div class="sidebar"><% sidebar %></div></td>
      <td><div class="content"><% content %></div></td>
      </tr></table>

      Is that really so bad? All of what you normally consider style is set by CSS. The table is just there to position the content horizontally at sidebar right edge + margin, regardless of how wide the sidebar is at the moment.

      If you use raw divs for this, then you have to lock the sidebar to a fixed width, and manually give the content a horizontal position. Every time the sidebar is resized, you have to pull out a pocket calculator and recalculate, looking up the desired margin from whatever non-machine-readable place you stashed it. This is not good engineering, it is guru full employment. It is X Windows modelines brought to the web.

      float: left is not a solution either. Oh, it will seem to work for a few toy tests. But think what happens if the content ever gets so much as a single pixel wider than you hoped: it gets reflowed vertically below the sidebar to give it that extra pixel. The poor user is left staring at a blank space where the content should be. In the modern context of resizing fonts and single-pixel fixups in Javascript, this effect is almost to be triggered eventually, probably by a junior employee who cannot even recognize what they have done. Quite a number of major websites blow up in this fashion. One feels an urge to pat the designers on the head and take away their crayons.

      That's what the grandparent comment means by "ugly" and "brittle". Good engineering is about making the computer automatically do the hard work, not following the "semantic markup" demagogues off a cliff. Even if it is a damn stylish cliff and all the cool kids are doing it.

      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.

      CSS is pretty great for controlling typography**. Unfortunately, it provides no way to make block elements simply share horizontal space.

      **But try indenting/outdenting your headings a certain number of ems when they use non-100% fonts. It's pocket calculator time. If you change the indent/outdent/percentages, you have to manually fix-up everything. Dammit, CSS! Learn some arithmetic!

    20. Re:Learn CSS by Anonymous Coward · · Score: 0

      You all seem to be misunderstanding what Web *Developer* means.

      Please stop referring to writing HTML and/or CSS as 'coding'. Thank you.

    21. Re:Learn CSS by grumbel · · Score: 1

      My experience is exactly the opposite. Tables are trivial to understand, logical and robust. Div layout on the other side is completly counter-intuitive, fragile and just plain ugly on the code side. Now from a pure philosophical point of view I absolutely agree, layout and content should be separated and tables don't allow that, while div do. But I really wish there would be a way to define table-style layout logic on the CSS side, since trying to get those div boxes in the right location in a way that is robust is just plain annoying and tons of webpages fail at that (try to browse with fontsize set to 200%, most pages will result in overlapping text and other crap). Tables, duo to their logical structure and recursiveness are far easier.

      And of course in days where all the content is in a database anyway, where nobody writes plain HTML any more, its questionable how much benefit there really is from separating layout and content the way its done with HTML/CSS, especially when it just doesn't work in practice (again, try to browse with 200% font size).

    22. Re:Learn CSS by bishiraver · · Score: 1

      It's not a question of how they render. It's more a question of two things:

      Google pagerank, and semantics.

      From what I understand, part of what helps your pagerank is the ratio of content (words) to markup. CSS in an external file doesn't count towards this, afaik. So, when three divs will do the job with some CSS, instead of 80 characters of table tags, go with the divs.

      Semantic-wise, tables can give screenreaders problems. They give no semantic structure to the page - and neither do divs, which is why they should be left for pure layout purposes, and other elements such as the paragraph, strong, emphasis, headings, list items (I've seen several sites in my day they used a table to emulate an unordered list. ugh) and so forth should be used in lieu of styled spans and divs.

      Tables also DO render slower. There is a performance hit, especially if you're doing a lot of DHTML where the canvas needs to be redrawn a lot.

      And contrary to popular belief, CSS hacks aren't really necessary anymore. The few bugs you have to work around can be put in a separate css file and included with an IE conditional comment. No bughacking needed.

    23. Re:Learn CSS by HeronBlademaster · · Score: 1

      What about with a third column on the right (e.g. an ad column or whatever to the right of the content)? Does it still work the same?

    24. Re:Learn CSS by Anonymous Coward · · Score: 0

      And contrary to popular belief, CSS hacks aren't really necessary anymore. The few bugs you have to work around can be put in a separate css file and included with an IE conditional comment. No bughacking needed.

      Finally, ONE reply from someone who is NOT talking from its ass.

      Unfortunately, we are the few who really understands how it works. I bet you also have a print stylesheet and that your website is usable without images, without CSS and without javascript. I do too.

    25. Re:Learn CSS by tixxit · · Score: 1

      I think the biggest pro for using divs is when you have to move something around. Tables are only easy for getting the initial layout just right. For something you actually have to maintain, divs just make sense. A little more work early on makes messing around w/ the pages design loads easier later on.

    26. 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...

    27. Re:Learn CSS by timnbron · · Score: 1

      Tables and divs both have their uses. I wish that I had one method that had the capabilities of both, but until then, I choose the most appropriate. Some of my younger colleagues would spout endlessly about the beauty of divs and CSS. I almost believed them until I saw their code!

      --
      There are some who call me ... Tim.
    28. Re:Learn CSS by vux984 · · Score: 1

      I think the biggest pro for using divs is when you have to move something around. Tables are only easy for getting the initial layout just right. For something you actually have to maintain, divs just make sense. A little more work early on makes messing around w/ the pages design loads easier later on.

      The table advocates here are advocating *minimal* use of tables. Generally its just 1 table in the page template that handles the 2,3 or 4 columns that the rest of the site gets laid into. Divs and CSS are used for everything else within those columns.

      So moving things or doing maintenance around is really no easier or harder due to having used tables.

    29. Re:Learn CSS by BronsCon · · Score: 1

      Anything I create with CSS uses em-sizing, so when you browse with 200% font size, everything scales: text, images, and the space they are in.

      Nothing overlaps, nothing looks out of place. Try learning how to properly use CSS before you make such blanket statements.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    30. Re:Learn CSS by grumbel · · Score: 1

      The basic layout of a webpage really doesn't change all that often and moving stuff in a table is just a bit of copy&paste, but more importantly divs really don't help, quite the opposite is true. The CSS code that gets the divs into the correct positions is quite often extremely hardwired and inflexible, since one div depends on others with hardcoded positions, float instructions, clear instructions and all kinds of other hackery, so moving div around requires fixes in lots of other unrelated divs. Divs are only really nice on the HTML side of things, since there its just a box that doesn't depend on anything, in the CSS on the other side its as ugly as it can possibly get.

    31. Re:Learn CSS by CHJacobsen · · Score: 1

      In many ways, using tables for layout is a way of tricking your employer. There are loads of reasons not to use tables for design purposes.

      A few examples:

      * Ease of redesign, and ability to create multiple layouts (for example: having a separate print-layout)

      * Accessibility, compatibility with speech synthesis.

      * Semantic philosophy. Ensuring compatibility with future web application evolution. Increasing product lifespan.

      As you've noticed, these are all non-obvious issues. Your employer will not notice the problem until the job is long done.

      While table-design might save time and money on the short term, it will cause problems in the long run. If you value your reputation as a developer, and your conscience for that matter, you should avoid table-design.

    32. Re:Learn CSS by DarkAges · · Score: 1

      One reason to avoid tables except for tabular data is to improve accessibility. Screenreaders don't read tables in a way that makes sense to the user, unless the tables are really presenting tabular data. Some sites (especially government) require highly accessible Web pages.

      The accessibility issue is a good reason to go easy on the Flash, as well. Since Flash MX, there's been some accessibility shoe-horned into the application, but it's still not very good at it. Using Flash for your menu buttons, with no alternate access, is a huge no-no.

      Whenever I come across a site that requires me to allow scripting to see the page (be it JavaScript, Flash, or whatever), I usually just move on. There isn't much that I want to see that badly, and I can't help but wonder what their motive is...

    33. Re:Learn CSS by Mansing · · Score: 2

      Use tables for tables of data, not for layout and style.

      Use style sheets for style and layout, and not for tables of data.

      It's not that hard, folks.

    34. Re:Learn CSS by diego.viola · · Score: 1

      You should have said:

      "Posted anon because I don't have balls."

    35. Re:Learn CSS by grumbel · · Score: 1

      Nothing overlaps, nothing looks out of place. Try learning how to properly use CSS before you make such blanket statements.

      My statement refers to other peoples webpages, almost all of them break when you browse with non-standard font size, not just some few isolated ones, but almost all of them. I never had those problems back in the day when everybody was doing table based layout stuff.

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

      Pick one from here.

    37. Re:Learn CSS by Stormx2 · · Score: 1

      clear:both; will clear both left and right floated divs.

    38. Re:Learn CSS by BronsCon · · Score: 1

      Amen. A project I'm currently working on uses CSS/XHTML and em-sizing, to allow it to scale, with separate screen and print stylesheets to allow lists to be printed without ads and menus; I also have stylesheets for mobiles that support them (and hide nonessential elements on those platforms), using tables only for mobile devices that don't support CSS.

      the whole project is designed with accessibility in mind. I'm testing it in lynx, alongside other browsers and it works flawlessly.

      Any JavaScript used on the site will be purely a luxury option; the site will be fully functional with no JavaScript before any is added, as well as after.

      Does it take a little longer? Yes. Is it worth it? If your client wants the site to be as accessible as possible, yes.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    39. Re:Learn CSS by Hooya · · Score: 2, Interesting

      Well, without going into the specifics, (and i'm over-simplifying it a bit) divs are the reason we're hiring right now when everyone else is looking at a bleak economy.

      To expand that a bit, separating the concerns (of a programmer from that of a graphic designer) has allowed us to bring the polish to our web based app and has freed the programmer from trying to make things look pretty. we now have divs, with the graphic designers working the CSS and the programmers working the divs. it's all 'brown-boxed' so our clients love us since we can completely re-brand it as well with minimal effort.

      while there are times when tables are certainly the 'easy way out', having CSS driven layout has paid off in the long term for us.

      so much for "semantic markup" demagoguery. it works. for us. YMMV.

    40. Re:Learn CSS by HeronBlademaster · · Score: 1

      Nice, thanks :)

    41. Re:Learn CSS by mini+me · · Score: 1

      CSS supports tables* with display: table/table-row/table-cell. No need to mess up your HTML with tables, unless it really is tabular data, of course.

      * Internet Explorer doesn't. Shocking, I know.

    42. Re:Learn CSS by Xenographic · · Score: 1

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

      Tables are good for tabular data (e.g. a chart or matrix of features). For site layout, you use CSS. It's not exactly a difficult concept, really, unless you come across one of those people who hate tables for reasons of ideological purity.

      It's the same with goto, really. You don't use it to replace while/for/if and friends. You DO use it when it's needed (e.g. finite state machines).

      They're both perfectly good tools for people who know how to use them.

    43. Re:Learn CSS by wibs · · Score: 2, Insightful

      I can't believe I'm seeing this argument again. Here. Now. In 2008.

      Maybe I'll fire up IE6 to really complete the feeling I'm getting.

      The counter arguments are everywhere, and this discussion has been dead for years now, so I won't bother repeating them. I sincerely hope you're not charging anyone for HTML.

      --
      If you get nervous, just remember that there are a few billion other people who don't really give a damn.
    44. Re:Learn CSS by Kent+Recal · · Score: 1

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

      You're either talking tongue in cheek or you haven't worked with reasonably complex layouts, yet. Something as supposedly simple as a 3 column layout still requires fairly nasty hacks (google for "holy grail") and establishing new columns inside such a layout gets *really* painful at a point, especially when you're talking liquid layout (no absolute pixel values) or when floats are involved (and those are involved in every layout).

      The underlying problems here are so nasty that actual, full-blown CSS frameworks (YUI, blueprint) have been invented, for the sole purpose of supporting the creation of a (theoretically) infinitely sub-dividable CSS grid layout. Sound familar? It should, they basically bring the old table into CSS-land...

      Unfortunately these frameworks have a few problems of their own. First and foremost: they usually blow up hard when you don't play exactly by their rules. Need to place an additional box in a way that wasn't foreseen by the framework template? Tough luck.

      So where does that leave us?
      My recommendations would be:

      • Stay away from the frameworks. A reset.css certainly won't hurt but don't use their template and grid stuff unless you're absolutely sure the framework can handle all your layout needs down the road. The only way to be sure is: Sketch up your whole site upfront, which is generally a good idea anyways...
      • By all means use CSS for the base layout of your site. The holy grail examples really work (and, btw, are the only CSS way to get a n-column layout).
      • When it comes down to the nitty gritty details, e.g. when you need another two columns inside the content pane of your site (but only on certain pages - we all know how it goes...) then don't be afraid to fallback to tables when CSS and MSIE give you the obligatory headache.

      These recommendations come straight from the trenches. There may be higher-level CSS gurus out there that will swirl up any kind of CSS layout without a blink, for those these recommendations obviously don't apply. But for everybody else: Stick to your priorities. It's really easy to waste half a day on an obscure CSS problem that could have been solved in 5 minutes with a table. And then a few days later someone tells you that safari (the one browser you haven't tested) or his iphone (the one device you really want to support) has found yet a new unpleasant way to render your carefully crafted pile of CSS hacks...

    45. Re:Learn CSS by windsurfer619 · · Score: 1

      It would be pretty hard to make YouTube without flash (and not suck). Just sayin' those aren't hard rules.

      I certainly do agree that flash for the sake of flash is a terrible sin.

    46. Re:Learn CSS by TheSpoom · · Score: 1

      Certainly everything homestarrunner is doing could also be done in svg/canvas and Javascript.

      ...if there was an animation system that was nearly as complete as the Flash product.

      (Which, don't get me wrong, would be awesome. But don't discount Flash, the app... it's had a lot of time to evolve to meet the needs of animators.)

      --
      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
    47. Re:Learn CSS by Anonymous Coward · · Score: 0

      And contrary to popular belief, CSS hacks aren't really necessary anymore. The few bugs you have to work around can be put in a separate css file and included with an IE conditional comment. No bughacking needed.

      Erm... that's a hack, dude.

    48. Re:Learn CSS by eWarz · · Score: 1

      there is no need for tables in a layout scheme. float:left and display:block are your friends. I've never seen a single thing that has been done in tables that cannot be done in divs.

    49. Re:Learn CSS by Anonymous Coward · · Score: 0

      which will work everywhere but IE.

      Everywhere except for 75% of the market? I'm sure clients will be busting down my door, armed with that knowledge!

    50. Re:Learn CSS by FLEB · · Score: 1

      And contrary to popular belief, CSS hacks aren't really necessary anymore. The few bugs you have to work around can be put in a separate css file and included with an IE conditional comment. No bughacking needed.

      Just because they aren't bug-fixes toward standards-compliance doesn't mean they aren't hacks. For instance: double-wrapping explicit-width content columns so you can have margins and padding without over-expanding the size. (For as anti-standard as it is, the IE box model got that one right, IMO.) Having to use "top: 50%; margin-top: [height/2];" instead of a "vertical-align" or vertical "margin: auto" to vertically center a block element. (Okay, you could use table-cell rendering, but that makes no logical sense, either.) That's unintuitive, hacky. Using floats for multi-column layout is hacky in and of itself, especially when you find that you may need to float and clear a legitimately floated object deeper in the hierarchy. (The CSS float model could use some work, too-- it needs "levels" of float clearing, so you have more options than just clearing every previous float on the page.) The fact that the 100% height of the root element isn't, at minimum, 100% of the viewport (and, the root element can't use percentage min-heights) has been cause for no end of hackery, often ending in some JavaScript to get things to go full-height. (It could be seen as a poor implementation decision, as I believe the W3C docs don't get specific in that regard, but it's still a lousy choice.)

      Now, I'm not saying that there should be a return to table-based layouts. Those had their own problems and tended to be just as kludgy and finicky as CSS. CSS, however, does have some real flaws that should be acknowledged, and ought to be weeded out when they can.

      As it stands, I'll just keep on learnin' the hacks, keep on desiginin' the pages, and hope IE6 withers to the point that implementable forward progress in CSS becomes feasible.

      --
      Information wants to be free.
      Entertainment wants to be paid.
      You just want to be cheap.
    51. Re:Learn CSS by Kent+Recal · · Score: 1

      You sure won't mind posting some URLs of your masterpieces?
      Having done quite a few liquid layouts myself I can only second what grandparent said.

      Getting it right in a way that does *not* cause stuff to overlap, truncate or wrap in funny ways when font size is increased is very hard.

      Sure, for a trivial layout everything is simple. Try it on a 3 column layout with reasonable design (boxes, panes, columns, background-images) and some actual content.

    52. Re:Learn CSS by Anonymous Coward · · Score: 0

      Eh... wouldn't the motive be to effectively display their content - after all there are lots of situations where you can't get anywhere without using Flash - eg video, educational software, high end websites, games etc.

      It's worth remembering that people using Flash on their websites aren't particularly bothered that you don't want to see their content - people carping on from the sidelines of the internet may be quite numerous and vocal around here, but out in the real world you're few in number and of little consequence i'm afraid to say.

      Look at the stats for the number of people with the plugin and tell me i'm not right - are they all puritanical poseurs running flashblock?

    53. Re:Learn CSS by Anonymous Coward · · Score: 0
      1. Fire up IE6 all you want, but any bad feelings you get from it are because you're too stupid to put it in standards mode, whereupon developing for IE6 is just fine. But you'd know that if you had any real web dev experience and weren't just trying to sound like one on Slashdot to voice support for something that's a religious view of yours.
      2. I love to see people get all frustrated when they believe something dogmatically but still lots of reasonable people aren't convinced. And can give very good reasons why. So you pretend you're shocked, when you know damn well you zealots have failed, for a long time now, to seal the deal. See also: global warming pushers.
    54. Re:Learn CSS by mlingojones · · Score: 0

      Wait, what? Who said you have to lock the sidebar to a fixed width? If you have an elastic layout, just make the sidebar elastic and it'll scale up right alongside the content. If it's a fixed width layout, your divs should probably be a fixed width anyway. The only real place to run into problems is in the padding and borders: people often forget that they get tacked onto the width of the element.

      CSS is only horrible at making block elements share horizontal space if you don't know how to make block elements share horizontal space. Fixed, elastic, and fluid two-column layouts are easy. Three-column layouts are harder, but it can be done in any of those configurations, and without sacrificing semantically correct code or scalability.

    55. Re:Learn CSS by jalefkowit · · Score: 1
    56. Re:Learn CSS by Anonymous Coward · · Score: 0

      An IE conditional comment is just that: an HTML comment. Nothing else but IE will look and parse the damn things, because they're comments.

    57. Re:Learn CSS by BronsCon · · Score: 1

      I'll try to remember you when I launch the public beta... and yes, I have header, top navigation, 3 columns, footer and disclaimer. There is actual content in the columns.

      It does help to know what you are doing. I'm all for requiring a license to build or remodel (excuse my usage of those terms, I'll get to the point shortly) a website (for someone other than yourself), just as we require contractors to be licensed to build or remodel a house.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    58. Re:Learn CSS by Kent+Recal · · Score: 1

      I'm eager to sae. Otherwise I'll remain sceptical.

    59. Re:Learn CSS by Anonymous Coward · · Score: 0

      For the love of god, do NOT make your websites using any of these:
      - tables (for layout, I mean)
      - Flash
      - Java

      Also, learn to code for Opera/Safari/Firefox first, then add conditional CSS for IE6 and IE7.

      Take time to learn the real-life differences between JPEG and PNG. You shouldn't have a photo in PNG anymore than a logo should be in JPEG.

      And last, know the limits of bandwidth and clients. Not everyone uses a high-speed cable connection on a Quad-core computer.

      posted anon because of the freakin' Adobe Flash fanboys.

      When you say Java I hope you are referring to applets and not the language in general. Many high scale websites and web applications use java and it's a perfectly legitimate programming language for web development. For small jobs its way overkill though and I would suggest something more simple and to the point like php.
      For larger websites java+spring framework make a great pair.

      All of the rest mentioned in the parent quote I will agree with though

    60. Re:Learn CSS by Count+Fenring · · Score: 1

      Yes, bad CSS exists, and yes, there are layout options that are much easier to do with tables. That still doesn't necessarily make it a good idea to do them with tables.

      The "CSS for presentation, never tables" thing isn't entirely about "What is simplest to do the page layout in." Part of it is that CSS is meant to control display, and tables are meant to impose a semantic meaning on the content inside them.

      Also, on a practical level, unless you're shifting the table's creation out to PHP/Perl/Other Scripting Language, doing layout with tables means that, if you want to alter that layout, you have to do it for each separate page. And the only place I've really seen table-generation coming from scripting languages is in producing actual tabular data, although your mileage may vary.

      Feel free to use tables; it's not like it will destroy the intarwubs or anything. But I feel that dismissing tables entirely for non-tabular data isn't foolish; it's a reasonable decision, especially now that most browsers support CSS reasonably well.

    61. Re:Learn CSS by Anonymous Coward · · Score: 0

      BS. You code for the most popular browser and make the other conditional. Why would anybody code for the minority of users? Ig. Nor. Rant.

    62. Re:Learn CSS by Qzukk · · Score: 1

      Anything I create with CSS uses em-sizing, so when you browse with 200% font size, everything scales: text, images, and the space they are in.

      How's that working for you with user-provided content? Has anyone named Supercalifragilisticexpialidocious logged in yet, or do you force everyone to not type more than 10 letters just in case it's too long? (Quick! How many ems is your username in the font I'm browsing with?) (And no, the answer is most emphatically not "just use 50em and everything will fit!")

      Don't get me wrong, I think using tables for layout is a travesty, but until CSS actually gets to the point where I can fit boxes to the arbitrary text they contain, claiming that CSS can replace tables is equally heinous. Someone else suggested that it was time for CSS to learn arithmetic, and I agree.

      Half of what everyone whines about in CSS can be eliminated simply by letting page authors do { height: heightOf(contentdivid); } Suddenly, all the javascript kludges and hardcoded column heights go away. Throw in { width: widthOf("Some Text"); } and I'll go home a happier man. Make my nipples explode with delight by giving me float:all-the-way-left; so that blocks wrap to a new line rather than wrap to the edge of whatever just happened to be sticking down a pixel (such as when mixing <select> and plain <input> in a form)

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    63. Re:Learn CSS by earthbound+kid · · Score: 1

      Tables, divs, whatever, but please at least do this when you use tables:

      <table class="bare-layout-table"><tr>
      <td class="sidebar"><% sidebar %></td>
      <td class="content"><% content %></td>
      </tr></table>

      Do not clutter up your page with useless, meaningless extra divs.

    64. Re:Learn CSS by daniel_newby · · Score: 1

      Wait, what? Who said you have to lock the sidebar to a fixed width? If you have an elastic layout, just make the sidebar elastic and it'll scale up right alongside the content.

      Let me try again less carelessly. Ideally you want the browser to automatically draw the sidebar just wide enough to fit its widest contents. But with divs alone, you have to specify a defined, hard-coded (I said "fixed" before, wrongly implying units of pixels--sorry) position for the content column. Therefore the left sidebar width has to be hard-coded too, which makes it hard to plug arbitrary widgets into it, especially images. The values may be hard-coded using friendly units like ems, but they are still hard coded.

      Widths can also be defined as a percentage of the parent element. That tends to blow up sidebars when the window is narrow, and make ridiculous sidebars on super-widescreen monitors.

      The only real place to run into problems is in the padding and borders: people often forget that they get tacked onto the width of the element.

      I want a LOLcoder picture of a CSS geek sitting at a computer using a pocket calculator with the caption "COMPUTING -- UR DOIN IT WRONG". Or maybe "SOMEWHERE A KNUTH IS CRYING".

      CSS is only horrible at making block elements share horizontal space if you don't know how to make block elements share horizontal space. Fixed, elastic, and fluid two-column layouts are easy. Three-column layouts are harder, but it can be done in any of those configurations, and without sacrificing semantically correct code or scalability.

      I just don't get the relevance of "semantic correctness". Everything from the template to the user output terminal is pure presentation, a collection of practical tools to create output documents. If the implementation is comprehensible and maintainable, which it will be with judicious use of the technique I recommended above, then it is Plenty Good. Not a single piece of software anywhere in the chain cares one iota about the meaning or interpretation of table contents: it's just another rendering instruction.

      I mean, really. Postscript is an entire Turing-complete language. People can and have written application software in it. (Maybe they shouldn't have, but they did!) Yet we all blithely crank out whatever garbage Postscript it takes to render our documents without a microscopic thought for the internal semantics. When's the last time you upbraided the secretary for not generating semantic Postscript? LaTeX lets you define your own semantics on the fly, but nobody gets too grumpy when you use unorthodox markup to make an interesting layout. So why the sudden semantic HTML religion? As far as I can tell, it's just a bad case of Silver Bullet Syndrome.

    65. Re:Learn CSS by Anonymous Coward · · Score: 0

      Your two cents is totally unhelpful and wrong. Table layouts are not necessary. Every solid web designer can do everything that can be done with tables, and more, using CSS. Stop propagating bad practices.

    66. Re:Learn CSS by Bill,+Shooter+of+Bul · · Score: 2, Insightful

      If it takes more brain power to use divs, than tables, than css is a step backwards. What you meant to say is that the web developer who uses tables for layout hasn't taken the time to learn an easier, more flexible method.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    67. Re:Learn CSS by Anonymous Coward · · Score: 0

      Evolve or die. 1998 isn't coming back. Time to embrace the present.

    68. Re:Learn CSS by scuba0 · · Score: 1

      I can honestly say that flash is in most cases the work of the devil. It can create cool stuff but most often it is done badly and the page gets very heavy for some small details, especially ads. The last is also a big reason why it is so popular to block this kind of contents.

      Or when hole pages is created in flash just because it is cool when noone would have noticed any difference if you had used css/images besides the effect of slower page and that flash has started.

    69. Re:Learn CSS by BronsCon · · Score: 1

      So, your personal experience and ability is the be-all, end-all of web design?

      Wow. Amazing.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    70. Re:Learn CSS by Anonymous Coward · · Score: 0

      Tables and divs both have their uses

      Yeah, they do. Tables for tabular data. Divs for block containers.

    71. Re:Learn CSS by passthecrackpipe · · Score: 1

      uh, yeah - welcome to the real world. I just finished a lenghty re-design where i was 100% dedicated to not using tables for layout. I require header, 3 column with left and right column fixed width, center column fluid, and footer, with minimum page height to be the browser window and columns being full height. I couldnt cut it, so i hired a CSS expert - the guy was really good, but still the layout failed half the test cases. (we are not writing some blog, we are writing a for-pay publishing platform. our test cases are all based on real usage scenarios). When asking for advice, the advice was either "do it so and so" which is what we were already doing, or, my personal favorite, "why do you need this layout, it sucks". Whenever i hear the last argument, in whatever context, I know that the technical approach i chose will not be able to cut it, and here are the "cover up" brigade. Throughout this ordeal, our template pages became increasingly incomprehensible and difficult to code with. DIV's nested to stupid levels, etc. I made the decision to swap to tables for our layout. It took me about 30 minutes to effect this change, and stuff Just Works(tm). There are serious and real problems with CSS layouts, and unless these are adressed, tables will continue to see use, especially by people that have a job to finish. My boss doesnt care how i do the site layout, he trusts me to make the right decisions. part of that decision tree is to ensure that i strike a balance that involves cost and time to market somewhere.

      --
      People who think they know everything are a great annoyance to those of us who do.
    72. Re:Learn CSS by Anonymous Coward · · Score: 0

      [posted A.C. because i've already moderated several comments here (but didn't mod any "-1 disagree"!).]

      Ideally you want the browser to automatically draw the sidebar just wide enough to fit its widest contents.

      No you don't. You want the contents to fit the sidebar. If you care about the way the page looks, you really don't want the sidebar resizing itself any time someone edits its contents.

      I know it's a different medium, but check out columns in a newspaper some time and imagine what that would look like if its columns resized themselves randomly.

      You want to be in control of the content in the sidebar. If the site's properly designed, the content will always fit the sidebar, not the other way round.

      But with divs alone, you have to specify a defined, hard-coded (I said "fixed" before, wrongly implying units of pixels--sorry) position for the content column. Therefore the left sidebar width has to be hard-coded too, which makes it hard to plug arbitrary widgets into it, especially images.

      No it doesn't. If you really can't control the size of the images, you can give the images a width in percent (of the sidebar) - then they'll always fit and you'll never have to worry about it.

      Widths can also be defined as a percentage of the parent element. That tends to blow up sidebars when the window is narrow, and make ridiculous sidebars on super-widescreen monitors.

      Hey, i thought you were advocating randomly resizing sidebars up above...

      If you define column widths as percentages and don't define min-width and max-width attributes, the page is going to look awful in some window widths. But if you use them, it won't. The same goes for the whole of the page content in most sites - pages that fill wide screens are often too wide to read comfortably.

    73. Re:Learn CSS by bishiraver · · Score: 1

      By hacks, I meant abusing bugs in a browser's parsing of CSS to hide rules from some browsers while allowing other browsers to see them.

      You know, things that aren't in the standards and cause things like quirks mode to activate.

    74. Re:Learn CSS by Waccoon · · Score: 1

      CSS could really use expanding spacers. It's a staple of almost all GUI toolkits, why is it so hard for CSS to do it?

      I find it pretty ironic that "new" HTML and CSS designs are supposed to be widely accessible, but it's virtually impossible to have things properly aligned side-by-side in a truly resolution independent document. You have to hard-code all kinds of pixel measurements to keep things from breaking or even overlapping. That defeats the whole point! Horizontal unordered lists can only do so much.

    75. Re:Learn CSS by Anonymous Coward · · Score: 0

      Seriously if you need conditional statements your either writing for IE5 (1999 anyone) or just plain bad at writing css.

      Also don't get me wrong i really don't like flash all that much and most of my animations i build with jQuery, but there are some things it's really useful for. The whole "if you use flash you must make shitty websites" attitude is so old and out of touch.

    76. Re:Learn CSS by Tordek · · Score: 0

      Yep, you just add it above the footer and float it left.

      The only bad part is some slight sizing gymnastics involved: since the box model says that width is the width of the _content_, and padding and borders are added outside that, you've gotta be careful by making all your widths add up to 100% or less (or, a bit easier, to a certain pixel width).

      Look for the Holy Gray of Layout for a "perfect", 3-column, percentage-based layout.

      --
      Tordek, Dwarven Warrior - Juegos de Rol en Argentina
    77. Re:Learn CSS by Tordek · · Score: 0

      Sorry, Holy _Grail_.

      --
      Tordek, Dwarven Warrior - Juegos de Rol en Argentina
    78. Re:Learn CSS by Kent+Recal · · Score: 1

      Did I say that? Don't think so.
      I just said that I'm highly sceptical about your claims, you're free to prove me wrong anytime.

      Furthermore I didn't say that it's impossible. Yes there are liquid layouts without bugs, some even look decent. They are just very, very rare because of the reasons I mentioned - it's ungodly hard to get any reasonably complex liquid layout to render correctly in all browsers. Thus your claim that all of your layouts are liquid and "just work" is dubious at best. You either found some magical CSS templating bullet or spend a lot more time on hacks than you're willing to admit.

      As said, I love to learn and would be very curious to take a look at one of your stylesheets. If it lives up to your claims then it must be a real goldmine and you should maybe release it as a CSS framework.

    79. Re:Learn CSS by josefresco · · Score: 1

      Tables are fine for layout on small sites, save yourself time/money and don't shackle yourself to CSS which was never made for how it is used today (just wait for CSS tables when they are finally supported to make the jump) Flash is also fine as long as it is used in a complimentary manor and not the basis for the entire site. Flash is a tool, it's not evil or good, just a tool, use it. Java blows.

    80. Re:Learn CSS by Anonymous Coward · · Score: 0

      If you don't know about &lt; (<) and &gt; (>), should you really be giving advice about HTML?

    81. Re:Learn CSS by DarkAges · · Score: 1

      In most cases, you're right that the motive is to effectively display content, and there are times when I allow it through. Obviously, the examples you present will require scripting to run.

      However, I find it arrogant and unprofessional to present the visitor with a blank screen and no explanation of why scripting is so "critical" to the site's entire Web presence. The developer has picked a funny way to ask for the visitor's trust.

      You've got to know your target audience. If it's the general population, it would be a courtesy (and the law, in some cases) to have a screenreader-accessible site. Read up on accessibility - there's a reason that the creators of Flash are trying (albeit with limited success, so far) to provide alternative text and captioning to what is essentially a multimedia programming language.

      I have nothing against Flash or any scripting - I use it at work, where the users (students) can't turn it off. It has a place. I've used modeless dialog boxes, which are generally used for annoying ads on the Internet, but are really very nice for small standing reference boxes, when you're going through an IMI-format lesson.

      I have the Flash plugin. I also have the NoScript plugin, which allows me to leave it (and all scripting) turned off most of the time. If that makes me a puritanical poseur, then fine. Hopefully, I'll be a puritanical poseur without a rootkit.

      People carping from the sides of the Internet do bring about change. They're often the "computer person" that their friends and relatives turn to, to scrub jacked-up computers. I believe that the vocal minority is probably responsible for FireFox's growth to 20% market share, in the face of Microsoft's view that Internet Explorer is all we'll ever need.

    82. Re:Learn CSS by mraiser · · Score: 1

      Applets and Flash have their place, (OK, Flash has a place anyway), but for the most part the parent post is right-- don't use them. JavaScript, on the other hand is a must. Server side Java (by which I mean JSP), C# or even VB (by which I mean ASPX) is probably also required. What worries me most, is the original poster's question about how to learn time estimation. First of all, if you have to ask, don't do anything fixed bid-- EVER. Unfortunately this limits you severely if your rate is above $60/hr. My advice would be find two partners: A salesperson and a Project Manager. If one of them has grey hair and looks good in a suit, make them President!

    83. Re:Learn CSS by Anonymous Coward · · Score: 0

      I use CSS and tables.
      I develop interfaces in Flash/Flex.

      I make plenty of money. Thanks for all the flash haters because you give me a niche market.

    84. Re:Learn CSS by pak9rabid · · Score: 1

      Table layout is still very useful. I've seen some ugly, brittle CSS layout hacks that could have been solved with a very simple table layout.

      I couldn't agree to this more. I'm currently working on a web project at my work, where I tried until I was blue in the face to make divs + CSS work for the layout of a page I was creating. To this day I still haven't found a solid way to lay out elements in a horizontal fashion while still providing the flexibility that tables rows give you (IE, trying to inline or float divs horizontally that contain block-level elements without it just completely fucking up the horizontal layout). Not to mention trying to make that code work across all the popular browsers without hacky workaround code. Until these annoyances are dealt with for good, there's still going to be a need for tables as a layout mechanism.

    85. Re:Learn CSS by Anonymous Coward · · Score: 0

      Yes, it can be done. Sure. I can also write code in QuickBasic. But tables are much easier to write and maintain than crazy CSS. Especially across browsers.

      Pure CSS is like Pure Java. It's purity for the sake of some weird quasi-religious reason.

    86. Re:Learn CSS by Anonymous Coward · · Score: 0

      RE: "For the love of god, do NOT make your websites using ...Flash"

      Actually, I make a lot of money creating Flash sites. There are plenty of people who want animation or very high end design. High design is expensive, and the right client is expecting to pay for it. They don't care about your nerd opinions: they want embedded video, they want custom interfaces, and they want movie-trailer quality design. A big honking "this sites validates XHTML" banner is a sure sign of an amateur.

    87. Re:Learn CSS by localman · · Score: 1

      I can't believe I'm seeing this argument again either. Dogma vs. pragmatism arguments in computer science predate the web by a very long time. Pragmatism always wins.

      I've heard all the theoretical discussions again and again. Yet I continue to come across certain layouts that require a tiny amount of intuitive tables vs. oodles of hacky CSS to get the same effect. I have close friends who hate me for my stance on this, and who will "correct" my bad design by delivering to me the most gawd awful yet "correct" HTML to replace a simple table layout: stuff that is impossible to comprehend.

      Having a small amount of table code does not break the content/layout dichotomy either. Certainly no more so than a bunch of nested div tags.

      Hey: remember when the three column layout with a header and footer was called the "holy grail" of CSS? I realize the holy grail has been found, but the fact that it was a quest when the same thing is a natural and totally obvious layout with tables gives an indication of how limited the CSS box model is for horizontal positioning.

      I sincerely hope you're not charging anyone by the hour for HTML.

      Cheers.

    88. Re:Learn CSS by RobertM1968 · · Score: 1

      Yeah, minus the fact that different versions of IE will render just slightly more complex versions of that differently than Firefox, Safari and Opera (who all agree on how it should be rendered). As is the case with many div attributes. So, no, the code isn't that simple except in the most simplistic of uses - thus saying "Go 100% DIVs!!!" is a bad idea.

      Yes (using entirely div's), it can be done, but in slightly more complex cases, a table is far easier to do, far quicker to do, a little bit less code (or a tiny bit more at worst) and works in IE5/6/7/8, Firefox 1.x and up, Opera, Safari and more.

      Heck, there are even some differences in the way that FF 1-2 and FF3 render certain CSS and html code (Amazon's associates page comes to mind - which is (or was) a mess in FF3 (maybe they have finally fixed it to be FF3 friendly)), while the minor table code needed for what the poster discussed will work in all using the simple, generic, long since established HTML code.

      I use DIVs a lot. I enjoy their flexibility. I hate having to make sure I have every damn IE hack for certain improperly supported DIV attributes or in the javascript code that modifies those attributes. For me, it makes a lot more sense to mix and match the two depending on what outcome I want.

      IE8 is adding to that complexity - because as "standards compliant" as they want to pretend it is, it simply isnt - not unless you enable a certain menu option for "compatibility" - and if you dont, certain things that worked fine in IE5, IE6, and IE7 (like certain SMF forum "functions" (ie: certain submit buttons and pop-ups)) will not work properly in IE8.

      So, with tables still working and not "broken" in IE8, why not use them (mixed with DIVs where appropriate and safe to use) for layout instead of having to worry about what new attribute or piece of code IE8 or some other browser will break?

      .

      More simply put... a web designer should use the tools (language components included) best suited to (a) what they want to accomplish, (b) what time frame they have, and (c) what is the least failure-proof across browsers. Inotherwords, dont rule out tables (or anything else that is still part of the html spec and so fully supported) because some book or website or guide someplace says that you should (in favor of some newer coding methods). Use your brain instead and pick the best method for what you need to accomplish.

    89. Re:Learn CSS by RobertM1968 · · Score: 1

      This site:

      http://www.aibuiltpc.com/

      Works wonderfully as all divs using code like the gp poster indicated in FF2, FF3, Safari, and Opera and is a total mess in IE6, works in IE7 in compatibility mode (or is otherwise a different kind of mess than IE6). Adding more complexity to it would make scrollbars appear or (when they were supposed to be there) disappear in IE6 - as well as move whole div sections to the wrong place.

      I could have fixed it by adding a bunch of IE6 specific classes and a browser detect in Javascript... and the meta tag that IE7 requires...

      Or, I could opt for a very simple table layout with a couple divs in it that work in all browsers without a bunch of extraneous code specifically to fix IE issues (in the hopes that IE8 doesnt require yet more fixes or metatags or such).

      So... which is smarter to choose? Div's because everyone says so, or the far easier method (to maintain as well as to code) that mixed tables with div elements that work cross-browser?

      Yes, it is easy enough to fix for all and still use divs for everything (and yes, I know how)... but it was also far easier to simply use a few tables and be done with it... now, and for the future (unlike some other sites I have done that have required changes for IE7 because I went the all div route).

      Anyone who is a decent freelance web developer will tell you that the quickest, easiest, and most cross-browser capable method of coding a site is the best. They will not tell you that you should only use one subset of html/css/xhtml over another regardless of those requirements.

    90. Re:Learn CSS by zummit · · Score: 1

      > For the love of god, do NOT make your websites using any of these:
      > - tables (for layout, I mean)

      http://giveupandusetables.com/

      You know, we've all been there. We want to make it work with CSS. But sometimes it's just not worth the effort. The hacks and conditional comments ruin our clean markup. And we spend hours trying to make a simple layout work. Occasionally, we have to remind ourselves that we've done enough and it's time to move on.

      If you're wasting time fighting with CSS -- and we know you are -- we've got just the tool you need. Download the Give Up and Use Tables timer. We've scientifically determined the maximum amount of time that you should need to make a layout work in CSS: it's 47 minutes. When your time is up, we'll even give you the table code you need. Take three minutes to build a table. And ten minutes to get a donut. Bill the client for an hour. Done.

    91. Re:Learn CSS by aclub · · Score: 1

      psshhhhhhhhhhhh

    92. Re:Learn CSS by BronsCon · · Score: 1

      I use supplemental stylesheets for IE6 and IE7, both contain 4 or 5 entries. Otherwise, it displays correctly, as is, in every browser on browsershots.

      I'm too busy transforming a 1979 RCA console TV into a computer case (with shelf for A/V equipment) right now to argue this, though.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    93. Re:Learn CSS by Anonymous Coward · · Score: 0

      homestarrunner.com is pointless on my iPhone.

    94. Re:Learn CSS by Smivs · · Score: 1

      there is no need for tables in a layout scheme.

      Sorry to be a troll, but there's no point using anything if no-one can see it. Have you checked your 'homepage' and 'sig' links lately? I'm getting a 403 error message on them. Just trying to be helpful.

    95. Re:Learn CSS by hobo+sapiens · · Score: 1

      No, I think he meant Java. Who in their right mind would want to code a site in Java unless forced to by some PHB at Conglom-O Corporation?

      --
      blah blah blah
    96. Re:Learn CSS by Foofoobar · · Score: 1

      Actually CSS isn't consistent in table creation across browsers and across versions. You will get variations from one browser to the next and you end up using twice as much code trying to get cross browser compatibility and getting CSS tables to render the same when HTML tables work just fine. Plus for what you think you are saving in loadtime, you are ending up having to load anyway in a bulky CSS sheet designed specifically for your table design meant to be cross browser compliant (as well as all the tags you end up using in the HTML).

      If your layout requires heavy table design, you should design the table as a template and 'include' the sections separately so you don't continually have to rewrite the layout code. Tables work the same in all browsers (if you understand how they work) and can require less code.

      Mind you, you should NOT use tables EXCLUSIVELY! You SHOULD try to strip out some of the repetitive elements if you can but most often, those elements are specific to the layout and cannot be stripped out for reuse as they are not reusable and are specific to that bit of code.

      --
      This is my sig. There are many like it but this one is mine.
    97. Re:Learn CSS by hesaigo999ca · · Score: 1

      I tend to agree ...when you see how nice the javascript floating divs made by many of today's major companies for ads (on mouse over it pops up a nice display with ads for XXX) these are purely able based on DIV technology. They , alone are making quite an impact for advertising where there was none before.

    98. Re:Learn CSS by Anonymous Coward · · Score: 0

      Just you being cheap!

    99. Re:Learn CSS by Walter+Carver · · Score: 1

      You are still thinking in tables. With CSS you can think outside of the "grid" type of layout. However you can still do elastic layouts. Also google for "faux columns", you will that too I think.

    100. Re:Learn CSS by Walter+Carver · · Score: 1

      It's kind of lame to answer again but here it goes. I see that another slashdoter gave this very handy link with layouts. Can you find here what you were looking for? http://blog.html.it/layoutgala/

  6. Try AxoSoft by Anonymous Coward · · Score: 0

    They have a very good bug tracking tool (Ontime) that supports hierarchy and the 1 user license is free.

  7. a problem I have... by Anonymous Coward · · Score: 0

    I seem to always get approached by nut-jobs who want me to make a website for them and are willing to pay for it. The problem is they often want me to work on a project that is either horribly conceived or just half-baked. And most of the time, they have some design in mind that I think is complete junk. I've been thinking about making the tag-line for my business to something like "building a steaming pile of shit to your exact specifications since 2001." What are you supposed to do in those cases? Just hold your nose and take the check? try to tell them that their site is completely unworkable?

    1. Re:a problem I have... by Anonymous Coward · · Score: 1, Insightful

      The answer to that is another question - how badly do you need the check? If next month's rent depends on it, hold your nose and take the check. Principles don't pay the bills.

    2. Re:a problem I have... by Cylix · · Score: 2, Insightful

      The trick is to get them to believe your idea is their idea. Some reading on confidence cons will probably help.

      Sometimes you can just get by with, I like the base concept, but what do you think about these improvements.

      Most times I've dealt with in house projects its always been as you described. In the end, it's not my dime, but I try to mitigate the damage as much as possible.

      --
      "You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
    3. Re:a problem I have... by genik76 · · Score: 1

      Confidence cons are like ATM machines.

    4. Re:a problem I have... by Hooya · · Score: 1

      I once offered to volunteer for the local chapter of a well known charity. They wanted me to "password protect" the donations page. Think about that.

      They wanted the doner to 'register' via phone to obtain a password.

      I just slowly backed out and then, since I was just volunteering, I quit entirely.

    5. Re:a problem I have... by Anonymous Coward · · Score: 0

      I'm not saying that you should lie, but since you are the expert here, and you can start conversations where they'd have no idea what you're talking about (which is usually something to be avoided). You could always try and find some true principle or reason that will stretch. For example, if they want a really bad colour scheme, you could talk about how important color is to making a site that is easy to read and suggest something else. This is actually the part I hate most about freelancing because I really don't like being manipulative and deceitful, yet I also don't want to do crap work just to make clients happy, nor do I want to burn bridges over such things. I guess you can also put some effort into choosing your clients more carefully, that is not always possible, or an easy thing to do. I think there are some good articles around about these kinds of problems (alistapart.com might have some).

    6. Re:a problem I have... by Anonymous Coward · · Score: 0

      Mmmm... doner...

  8. Just some answers by rho · · Score: 3, Insightful

    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?

    1. Maximize what you get from the client. Do hourly or fixed-quote, whichever is most appropriate. If you have the luxury of choosing only high-paying clients, well, nice to meetcha, Santa. How's the skiing in Hell?

    2. Half up front. No exceptions.

    3. Years of experience.

    --
    Potato chips are a by-yourself food.
    1. Re:Just some answers by FredFredrickson · · Score: 3, Insightful

      Always do hourly. Scope-creep will instantly ruin any fixed quotes you have. Even without scope-creep, the client will take a few looks, make you re-do everything because of some stupid reason.

      Always bill hourly.

      And, yes, upfront is good. I personally prefer pre-paid time blocks.

      --
      Belief? Hope? Preference?The Existential Vortex
    2. Re:Just some answers by rho · · Score: 1

      Scope-creep is a separate issue. I'm assuming that you've already established scope, which is a matter of specificity in the quote.

      You did explicitly lay out what you will do, right? And that nothing further beyond what you did lay out is implied or can be inferred?

      Maybe contracts should be on the comp. sci. curriculum.

      --
      Potato chips are a by-yourself food.
    3. Re:Just some answers by eBayDoug · · Score: 0

      Half up front no exceptions. Take the client's money with your merchant account so your customer can be assured he can chargeback if you flake.

      --
      Learn About Outsourcing. http://www.pioutsource.com
    4. Re:Just some answers by cexshun · · Score: 1

      This is why, in my contracts, I include 3 change requests. They can request 3 _specific_ changes to the design, and this is included in the quote. However, all other changes are billed out at an agreed upon hourly fee.

  9. 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 Anonymous Coward · · Score: 0

      I agree setting a fixed price is a bad idea. Clients always want modifications to be made after seeing your finished work. In some cases these modifications can take as long as the whole project.

      In order to not be screwed over by cheap skate clients you should bill by the hour. By all means give your clients estimates on how many hours things will take.

    2. 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.

    3. 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.

    4. Re:Always bill for time & materials by dubl-u · · Score: 2, Interesting

      And I won't be happy if I have to pay more than I expected because you've estimated your time badly.

      That's a reasonable attitude to have. But it turns out 99% of the time, the client will see any change in cost as the result of bad estimates, rather than any other possible factor. Which is why I only work by the hour unless it's on a project and with a client where I have lots of experience.

      I think the key to quoting a fixed price for the whole project is to clearly define the project first.

      There are three downsides to this.

      One is that you have to spend a lot of time and money hammering out the project definition, and unless the project is a very simple one, there will still be surprises. And then you will spend a lot more time arguing over whether or not what is delivered is technically "in spec". Fun!

      Another is that canny developers will use this approach to totally screw you. They'll let you define the project, quote you a very attractive price, and then rape you on the overcharges for scope changes that were likely from the beginning.

      A third is that as a client you can't evaluate long-term maintainability. For pre-planned, fixed-price jobs, the developer's financial incentive is to reach the finish line and hand you a christmas-paper-wrapped turd. You see the shiny surface and sign off. And now you're the proud owner of a totaled code base, and any significant modifications would be best done with a total rewrite. But you'll object to that, so over time you pay your new devs twice as much to fix your project than a clean rewrite would have cost.

      I think a much better approach for any non-technical purchaser of custom software, especially web-based software, is to pay by the hour, but structure things with regular, frequent deliverables. If your dev adds a couple new features a week, then you can quickly tell how good he his, and boot him if he's a fuckup.

      Also, if you are spending more than you are comfortable throwing away, then get a professional to check how maintainable the work is. Frequent milestones help mitigate that risk, but they don't eliminate it.

    5. Re:Always bill for time & materials by ibbie · · Score: 1

      Mod parent up.

      I've done contract programming / web development, and these are things that a lot of novices* have to learn the hard way.

      * Note that you can be an expert programmer, and a novice contractor. It's a whole different world when you work for yourself. It can be rewarding, and very informative, but the pitfalls can mean the difference between making your bills or sleeping in your car.

      --
      The wise follow a damned path, for to know is to be forsaken.
    6. Re:Always bill for time & materials by Anonymous Coward · · Score: 0

      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.

      Amen to that. I started doing freelance billing per-project a fee slightly higher than what an average programmer would charge. I thought this was smart because I thought I was a programming Jedi and I'd finish fast, thereby spending less time and making more. But every time, it would take longer than expected, the client would change their mind, and they would move the goal post. So my advice: 1) charge a fair hourly rate--that way you don't get ripped off and the client knows that changing the requirements will cost _them_ money and 2) get the full requirements explicitly defined in writing before starting any programming--that way you'll have a good record to judge whether a change in expectation is enough to warrant a change in price.

    7. Re:Always bill for time & materials by stephanruby · · Score: 1

      I think the key to quoting a fixed price for the whole project is to clearly define the project first.

      Thinking you can clearly define a project first is like thinking that you can clearly and objectively measure the coast of North England. Measuring a ragged coast line may sound like a perfectly reasonable thing to do, but it's a standard fractal problem. The more you go into details (the more you zoom in), the more jagged lines and decision points you're going to find and the longer the coast line is actually going to be.

    8. Re:Always bill for time & materials by nine-times · · Score: 1

      Sorry, but I don't buy that. I mean, yes, you can get very detailed and all, but if you're good at what you do, you should be able to come up with some kind of estimate about how long a given project with set goals will take as well as what materials will be needed. I'm not saying your estimate will be perfect, but that's why it's called an estimate.

  10. % up front and milestones by jimbudncl · · Score: 2, Insightful

    Even in the current economy, you're an asset. Don't under value your services; the worst mistake you can make is letting your clients get used to being billed for less than you're worth.

    Aside from that, bill a percentage up front when you've all agreed on the specifications. Also, set milestones and bill another percentage when you meet them. This keeps you in the black and sets up expectations which help your client perceive you as a professional (now, be sure to _meet_ those milestones!).

    As for time tracking... I'm sure there are good free solutions, but I haven't used any yet. I did use Quickbooks Online and it works, especially if you'll be working with others. Hopefully you'll be back at work somewhere soon! Working for yourself can be stressful.

    Good luck!

    1. Re:% up front and milestones by Skal+Tura · · Score: 1

      For time tracking, toggl is a good solution.

    2. Re:% up front and milestones by jimbudncl · · Score: 1

      Nice, I'll have to look at that. Time tracking makes me ill, and I avoid contact with it at all costs.

      Also, I just realized Quickbooks Online is only IE compatible... therefore I retract my recommendation ;) It's been years since I've had to track my time.

    3. 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?
    4. Re:% up front and milestones by Anonymous Coward · · Score: 0

      I can vouch for FreshBooks. Totally awesome.

  11. Good estimates by Mad+Merlin · · Score: 5, Funny

    What is the best way to create accurate time estimates?

    First, take your best estimate, then multiply it by two, and then increase the units to the next largest. So, if you estimate something will take 3 hours, tell the client it'll take 6 days.

    1. Re:Good estimates by Anonymous Coward · · Score: 0

      So a three month job will take 6 years?

    2. Re:Good estimates by Dan667 · · Score: 2, Insightful

      If he was talking about pure run rate to code then yes. I always used run rate to code times 10 to estimate. Surprisingly, it works fairly well as you need to do a bunch of stuff besides coding like collect requirements, documentation, etc.

    3. Re:Good estimates by Nefarious+Wheel · · Score: 1

      So a three month job will take 6 years?

      Only if you're lucky.

      --
      Do not mock my vision of impractical footwear
    4. Re:Good estimates by Anonymous Coward · · Score: 2, Insightful

      There's a better one... measure the work and keep track of your historical records. These multiplication techniques really only mean that you have no idea what you are doing.

    5. Re:Good estimates by AuMatar · · Score: 1

      WHich only works if you're doing the exact same thing you've done in the past. Which may be true for web work, but sounds incredibly boring.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    6. Re:Good estimates by Anonymous Coward · · Score: 1, Insightful

      Read the book "Software Estimation" by McConnell - extremely relevant knowledge after I misquoted a couple of projects.

  12. Agile? by Anonymous Coward · · Score: 0

    I think with regards to scaling time, it depends completely on the client. Some people just don't understand the way the web works and think its just like print media. I think if you set up quotations by breaking up the site into manageable sub-projects (designing a homepage, integrating it with a cms or rolling your own, developing a reasonable search engine for the site) and thinking how much time you think each task will take, you can easily tell the client how many hours something would cost and either bill the project as you or they see fit.

  13. Mint money with maintenance by Fished · · Score: 5, Insightful
    I do some websites on the side, and one thing I do that positively mints money is offer maintenance contracts. Basically, here's the deal. I offer two hosting plans:
    1. One for $10/month, and I charge $50/hour for any updates.
    2. One for $25/month, and I will do minor updates for free.

    I carefull define what constitutes a "minor" update--basically, anything that doesn't involve a complete site redesign or a lot of graphics work is covered.

    Here's the beauty of it: about half my customers go for maintenance and in the 4 years I've been doing websites on the side, I've gotten 12 customers that have maintenance contracts. I haven't done one update under maintenance. I just sit there, quietly collecting $25/month for doing absolutely nothing. And, even if I do have to do something, so long as it's not alot of graphics work, it only takes me a half hour or so anyway.

    Also, as others have said, get a deposit before you start work on a site. I do sites on a flat-rate basis, and require 50% up front. Otherwise, you can spend a lot of time working on a site for someone and never get paid.

    Also, remember that you will make as much money on hosting in general as you will on design--get a reseller account with a good hosting provider (I use hostgator, but if I had to do it again I'd probably get a dedicated server because hostgator's rails support sucks.) I suggest using paypal subscriptions to make sure you automatically get paid for hosting. They're cheap and easy to setup, and it all happens automatically.

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    1. Re:Mint money with maintenance by Anonymous Coward · · Score: 0

      I mean this in the most constructive possible way (this is not a troll) please read what I'm about to say carefully (this REALLY isn't a troll, try to see what I'm trying to say), but:

      For the love of God will you PLEASE shut the fuck about it!!!!!

    2. Re:Mint money with maintenance by Fished · · Score: 1

      People dumb enough to buy website maintenance and not use it don't read "News for Nerds." Dumbass. :)

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  14. project pier is a good basecamp alt. by jaymz2k4 · · Score: 1

    We used project pier for a while internally before the PM's insisted we move to clockingit. The thing I like about project pier is that its basically basecamp, is very simple to use and you can install it very easily on your own dev server.

    for managing your project or interacting with a client more than a ftp dump have a look at it.

    --
    jaymz
    1. Re:project pier is a good basecamp alt. by Firehed · · Score: 1

      Seconded on PP. Free, easy to set up, and makes perfect sense for my workflow. I doubt it's the right tool for everyone, but if you want to basically break down massive projects into maintainable checklists, it's the way to go*. Most other organizational programs I found that I'd spend more time organizing the project in the app than actually _doing_ the project, but PP just makes data entry a lot more natural for me. Takes about five minutes to install on any *AMP system, so I'd strongly suggest giving it a quick test if nothing else.

      There's also a similar web app, ActiveCollab (paid but fairly cheap) that offers some additional functionality - mobile versions and a couple other things. I believe it's based off of a fork before PP went open-source or something of that nature, if you care.

      * At least among PHP-based apps that I could host myself. Not a ton of options, but I do my development on a MAMP install which contains only PHP and not any of the other "P" systems, which ruled out using Trac among other popular apps. That said, I prefer it by far, so the fact that it's one of few things that I could actually install on my local working/dev system was a big plus.

      --
      How are sites slashdotted when nobody reads TFAs?
    2. Re:project pier is a good basecamp alt. by jaymz2k4 · · Score: 2, Interesting

      PP derives from a fork of ActiveCollab before it went closed-source, AC being a knock-off so to speak of Basecamp.

      The one thing that stopped PP being adopted for my org. was the lack of built-in time tracking. I think AC has that in a much later version but ClockingIt has a 'push-on/push-off' AJAX-y timer which the PM's at my place fell in love with :(

      PP would work well for a freelancer I think, if they need to do invoicing and bill for time by hours I'd use a little desktop timer, theres one or two for KDE in the PIM tools I think.

      --
      jaymz
  15. plan well, overestimate time by friskyfeline · · Score: 2, Insightful

    Several years ago I did exactly what you are doing. I worked for several companies as a freelance web designer/developer. Here is what I learned: 1. Overestimate time demands. Use the 2x, 3x principle. For new projects figure out what you will need in terms of material resources. Break down projects into subparts and estimate the time it will take. For technology and projects you are familiar with double your time estimate. For new technology you are less familiar with triple the time estimate. If the learning curve is very steep use 4x estimate (avoid this). 2. Use a contract with your client based on 1 third up front, 2 thirds midway, and final payment on shipment of product. Specify this in writing and get it signed by their billing department. If they won't agree then consider another project to work on. 3. Consider your billing and internal planning such as flow charts for projects just as important as doing the actual work. A lot of new freelancers fail to do this and get burned. 4. If you use artists work or do your own graphics use sign off contracts to get your client's approval that the final design is acceptable. Most clients will at this point say, "It needs to be approved by marketing...," or something similar to this. This step can save you from redoing this endlessly for free. 5. Be assertive about following the above suggestions. Part of running your own business is sticking up for your rights. If you don't others will take advantage of you.

  16. another tip by ViralInfection · · Score: 1

    I'm in the same situation, try odesk.com for bidding on projects or other similar websites like ifreelance.com or elance.com never-the-less. I like oDesk, it does all the management for me, but cuts 10% on anything you make, creates less of a hassle for me.

  17. Always quote a fixed price by Anonymous Coward · · Score: 0

    Billing time and materials is only acceptable if you can give a clear (and binding) projection of the time and material you're going to need. At that point you might as well quote a fixed price. In both cases, you will have to precisely define in advance what you're going to deliver. It must be clear to the client that changing their mind after the work is done to specification will cost extra.

    Cheapskates will be deterred by the quoted price, if it is at all reasonable. The web design business is full of people who don't do it for a living, have barely enough know how to use a popular WYSIWYG editor and charge a pittance. If you offer a professional product and ask a reasonable price, the cheapskates will turn to the son of the guy that your brother knows from work.

    1. 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
    2. 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
    3. Re:Always quote a fixed price by Anonymous Coward · · Score: 0

      It depends on the type of client. Most small business clients I have dealt with want at least a binding upper limit. I think it's a result of too many amateurs in this business who don't complete projects on time and can't provide believable hour sheets.

      I make it abundantly clear that all quotes and projections are for the specified work. If the client increases the scope or changes his mind, I let them know what the consequences are, i.e. give an estimate of the extra time and cost caused by the deviation from the original specification.

      For projects where the client cannot form a clear vision of the desired result and the scope of the work develops as the project matures, I will obviously opt for per-hour billing. On the other hand I will not leave clients in the dark if they provide clear requirements. Depending on your hourly rate, your clients may be more inclined to accept per-hour billing.

    4. Re:Always quote a fixed price by soundguy · · Score: 1

      Materials? We're talking about web development here, which should be a pure SERVICE. If you bill for any kind of materials, you are considered a retailer/reseller and have to deal with specific sales tax, B&O tax, recycling & disposal fees, storage and transport laws etc related to physical goods in cities and states that have them. Also, very few people live in neighborhoods zoned for business so you can only do limited services when working out of your home. You generally can't warehouse materials without running afoul of local zoning ordinances.

      Make the customer buy their own materials or have them pay you for them separately as an nontaxable reimbursement. If someone needs to buy software or hardware to do the job, YOU buy it and bill them for using it by the hour - that's "time and equipment" and it's how you bill when you are a pure service contractor. You get to amortize the price of the equipment over one or more years and you don't have to deal with most of the stuff that physical contractors have to put up with.

      --
      Nothing worthwhile ever happens before noon
    5. Re:Always quote a fixed price by mortonda · · Score: 1

      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,

      And be open and honest with the client wrt how well you are meeting your goal. If I grossly underestimate my time, I will usually indicate it to the client, and offer to discount some of the time.

    6. 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.

    7. Re:Always quote a fixed price by modmans2ndcoming · · Score: 1

      frankly, if you are properly estimating your price based on SE metrics, then you should be able to provide them with what they consider a fixed cost but which is a reasonable estimate of your hours and materials for the current scope. If you then add in a clause that provides for charging more if the client changes the project scope on you, then you provide a deterrence for the client.

    8. Re:Always quote a fixed price by AlXtreme · · Score: 1

      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.

      Or you just show that the additional bells-n-whistles aren't in the contract you agreed upon (you did agree on a contract, right?) and tell them you would be more than happy to work on said features after the initial project has been completed.

      I've done many fixed-price projects, they're a great way to limit both your time and gain the trust of the client. Would you let a mechanic you don't even know fix your car without agreeing on a price beforehand? What if it took him twice as long for thrice the cost? That's no way to do business.

      Doing the billing per hour is fine if you've gained the trust of the client and the amount of time spent is limited (maintenance, support). However this doesn't mean you can throw contracts out of the window. Contracts work both ways and force you to plan multiple projects accurately. Adding additional features is fine and all, but not if other clients are waiting.

      --
      This sig is intentionally left blank
    9. Re:Always quote a fixed price by Timothy+Brownawell · · Score: 1

      Materials? We're talking about web development here, which should be a pure SERVICE. If you bill for any kind of materials, you are considered a retailer/reseller and have to deal with specific sales tax, B&O tax, recycling & disposal fees, storage and transport laws etc related to physical goods in cities and states that have them. Also, very few people live in neighborhoods zoned for business so you can only do limited services when working out of your home. You generally can't warehouse materials without running afoul of local zoning ordinances.

      Make the customer buy their own materials or have them pay you for them separately as an nontaxable reimbursement. If someone needs to buy software or hardware to do the job, YOU buy it and bill them for using it by the hour - that's "time and equipment" and it's how you bill when you are a pure service contractor. You get to amortize the price of the equipment over one or more years and you don't have to deal with most of the stuff that physical contractors have to put up with.

      That might not work, at least if the hosting provider is in the same state as you...

      Generally, all activity performed on computer software is subject to [Tennessee] state and local sales tax. These activities may include creation, sale, lease, rental, license to use, installation, repair, programming, modification, upgrading, or other activities. Installation of tangible personal property, even in labor-only contracts when the customer provides the materials, machinery, and equipment that is being installed, is subject to sales tax.

      Additionally, web site development and design are taxable under state law. If a web site is created in Tennessee for hosting outside of Tennessee, the sale is in interstate commerce and not subject to sales tax. However, if a web site is hosted in Tennessee, the sale is creation of tangible personal property and subject to sales tax.

    10. Re:Always quote a fixed price by duffbeer703 · · Score: 1

      That's what a statement of work is. If the customer decides to make you jump through hoops that adds to the time required, they need to pay for that time.

      There are 2,000-2,500 productive man-hours available per-year, per employee. For a freelancer, professional development, administrative and marketing overheads account for as much as 30% of those hours. That leaves 1,300 - 1,650 billable hours for earning money.

      If you're a freelancer and you don't provide an economic incentive for clients to not waste your time, you're giving away the store.

      Why doesn't McDonald's sell flat-rate hamburgers? Don't people want to be full at lunchtime?

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    11. Re:Always quote a fixed price by duffbeer703 · · Score: 1

      Not true. Do you use Dreamweaver/Photoshop? Drive to meet clients? Have a cell phone? Pay for health insurance? Pay taxes?

      There's no such thing as a pure service. Every day you wake up, you're incurring more overhead.

      "Time & Materials" is a trade term, which in the context of consulting essentially means "the client will be billed for staff time and expenses". Don't read too deeply into it.

      The whole point of my post is that you need to provide economic incentives to encourage each side on a contract to fulfill their obligations. Billing for T&M gives the customer an incentive to spec the project to minimize the hours and minimize changes. The contractor has an incentive to not cut corners, as his time is being billed for.

      Obviously it doesn't always work that way in the real world.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    12. Re:Always quote a fixed price by Anonymous Coward · · Score: 0

      Why doesn't McDonald's sell flat-rate hamburgers?

      McD bills for time and materials? Where?

  18. 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.
    1. Re:What I'm doing by xant · · Score: 1

      Half up front? Really? What kind of clients do you have who are willing to front money in this way for software? As software development is generally considered to have no up-front expenses, and you aren't Jason Statham, I don't know who would be willing to pay that.

      --
      It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
    2. Re:What I'm doing by jjohnson · · Score: 1

      It's what I was told to do by the other consultants who are in the same (generally web-based stuff) field (and who refer work to me or subcontract out to me). They're doing it, and I haven't received any pushback on it. When I was an IT manager, it was also standard practice for large consulting outfits who worked with us. It limits the screwing either side can give each other, and everyone I've put this to seems to recognize that.

      As I said, though, large projects are broken down into manageable chunks, so in practice, half up front is somewhere between a couple hundred and several thousand dollars. It's different if they simply want to pay me hourly over a period, but for project based fees, I've never had a problem doing this.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    3. Re:What I'm doing by macjosh · · Score: 0

      The main reason to bill a 50% deposit is cash flow for your business. Most of the clients you work with are obviously going to be business owners themselves, or are making managerial business decisions, all of whom most likely have experience with these types of purchases. When you're looking at a development that takes weeks, if not months, this is a fairly reasonable and standard industry practice for maintaining positive cash flow.

    4. Re:What I'm doing by markrich · · Score: 1

      For new clients I always get half up front. It does two things, 1. insures the clients interest in the project 2. insures you get something for your work if the client bails. I usually require NDA from the client so they don't drop me for someone cheap once we're making progress.

    5. Re:What I'm doing by xant · · Score: 1

      Interesting. It's seems very unusual to me. Do you work in the United States? I've worked with many contractors over the years, both individual and corporate, and none of them has ever asked me for that.

      --
      It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
    6. Re:What I'm doing by jjohnson · · Score: 1

      I live and work in Vancouver, Canada. What sort of contractors do you work with? How does it work for you?

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    7. Re:What I'm doing by sjames · · Score: 1

      Time is money. If you get half way through a project and then can't get your milestone payment, odds are the code you wrote has no value to you. Thus, your time is an up front expense.

    8. Re:What I'm doing by societyofrobots · · Score: 1

      This is exactly what I do too, and it works great. If the client is too much effort for me to deal with, I can pull out after a milestone is completed. Also, don't forget to include the time you spend on the phone with your client as part of the hours you'll charge him - otherwise the client will milk it as free consulting. My business does engineering work (circuit boards, mechanical design, embedded programming) instead of web design, but the rules to dealing with clients are the same. The only difference is to also charge for expensive materials up front, too. I avoid signing contracts as they only benefit the person who made up the contract, and require expensive lawyers if problems come up. I only sign NDA's.

    9. Re:What I'm doing by Anonymous Coward · · Score: 0

      this hourly rate with a cap seems to be the worst option for me. If I was your client I would be enthusiastic. You get the worst of both worlds. The risk of bad estimate and the non-benefit of a too big estimate. If my client wants a fixed price (I usually work with that so far) I give them a 'safe' price (safe for me to). If they want the risk but cheapness of an hourly rate, I'll give them an hourly rate and a good story if it takes longer then expected.

  19. 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

    1. Re:My experiances by Luke+has+no+name · · Score: 1

      I saved this page on my computer for future reference in case I do ANY freelance web or software development. Sounds like you know what you're talking about, and it sounds like you have reasonable proposals.

    2. Re:My experiances by Shemmie · · Score: 1

      Snap - what a really well thought out piece of typing. Thanks a lot for sharing.

    3. Re:My experiances by fm6 · · Score: 1

      You're right, that's a well thought-out piece that strongly backs up the author's claim that he's been doing this for a while.

      Quibbles: if he's that kind of independent worker, how come he has time to goof off at slashdot?

      And why can't anybody remember the difference between "lose" and "loose"?

    4. Re:My experiances by nniillss · · Score: 1
      Thank's for the nice and well-written advice which should be useful for many.

      However, you are consistently writing experiance when you mean experience. Just my two cents.

    5. Re:My experiances by DiegoBravo · · Score: 1

      That was good advice.

      Now I want to put some of additional ideas:

      1) Freelance for most successful people means turning into small business in the mid and long term. So read the material pertaining starting businesses -there are a lot of books/ebooks- and try to get the most from it (specially the marketing issues)

      2) You do not say in what country/area are you planning to operate. Assuming US the contractual advice is right, in other ways there may be other customs depending on your target market

      3) The issue of fixed cost is tied to the possibility of fixed work amounts. You CAN provide some fixed "packages", and clearly state that any customization has additional cost. Good managed, this could be a win-win situation

      regards,

    6. Re:My experiances by HeronBlademaster · · Score: 1

      Quibbles: if he's that kind of independent worker, how come he has time to goof off at slashdot?

      It's Sunday. Who really works on Sundays? ;)

    7. Re:My experiances by Anonymous Coward · · Score: 0

      Corporations are nice, but you probably don't want a corporation. What you want is an LLC, a Limited Liability Company. You get the same liability shield as a corporation, but you *don't have to pay the corporate tax rate* Instead, taxes are apportioned to each owner, and the owners pay personal income tax on the LLC's profits.

      LLC law varies by state, but most states allow single owner LLCs. Obviously, an attorney could help you with this.

    8. Re:My experiances by vw_bob · · Score: 1

      I'm on Slashdot because I'm taking time off for my birthday. ;) And I typed that entry out quick (and I'm not strong with grammar or spelling) so that's why I messed up lose and loose.

    9. Re:My experiances by vw_bob · · Score: 1

      Correction on this comment, assuming the submitter is in the US. You *should* become a corporation and sign up for s-corp status. See http://www.irs.gov/businesses/small/article/0,,id=98263,00.html for more information.

      Essentially, an s-corp treats the business and the shareholders the same as a sole proprietorship or partnership in terms of taxes without loosing the protections. This avoids double taxation. The drawback, which won't matter to most small businesses is that have restrictions on how you can issue stock.

    10. Re:My experiances by kchrist · · Score: 1

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

      On the other hand, once you get good at estimating your time, having per-project rates is a sure way to make more money. Estimate the maximum time the job will take, add a reasonable amount for the inevitable delays and overhead (a minimum of 50%), write a clear statement of work (ie, contract) stating what is and is not included. If you get the work done faster, which you will once you get good at these estimates, you've effectively raised your hourly rate for these projects.

      Even better is to estimate the value your work will bring to the client and factor that in as well. Read what Alan Weiss has to say on the subject of value billing.

    11. Re:My experiances by Anonymous Coward · · Score: 0

      In any case, that was a great post. Thanks for sharing.

  20. get EVERYTHING in writing. by redcircle · · Score: 1

    I typically will charge like 1/2 up-front and 1/2 at the end. If you plan on doing that make sure you include in your contract an expiration time of your original quote. I've had customers that paid their initial fee then we didn't hear from the client or get any content from them. 2 years later they call and want the same service at the quoted rate. Since then I have increased my rates twice and have stopped doing those little projects. Because we didn't put a expiration on that quote we are stuck doing this at a much lower rate. Thankfully it is a very simple site.

  21. simple opensource billing software by Anonymous Coward · · Score: 1, Interesting

    ive been web freelancing for around seven years, and in that time ive developed my own open-source billing tool, eboshi, written in rails. its no quickbooks, but it suits my needs and spits out pdfs. feel free to use it, give me feedback, or fork it and hack away!

  22. Learn a trade. by Anonymous Coward · · Score: 0

    1. Always stock a supply of card board, and a black marker, it will come in handy for those 'will work for food' signs. In a pinch, they make great temporary shelters.

    2. instant ramen is your friend, learn to love it.

    3. Consider having a sideline ready, if you haven't already, file of UI or welfare.

    4. Organize your finances, make sure you can find cheap rental accommodations where you wish to work.

    5. Downsize your lifestyle, pawn everything that isn't useful.

    If you have the funds, consider upgrading your education. Learn a trade, something useful.

  23. No offence but you don't know what you're doing by syousef · · Score: 3, Insightful

    The questions you're asking are very broad and very basic. You're going to fall flat on your face and work long and hard for a net loss if you're not very very careful.

    On the one hand you're asking for a good way of doing estimates, but on the other you're asking if you should provide fixed quotes. It should be clear that if you don't have much experience estimating, you shouldn't be shooting for fixed work. You need to get these skills up BEFORE taking on this kind of work (and certainly before you take it on a fixed price basis).

    Your best bet at this stage is to apply for some short term contracts, paid by the hour while you develop your estimation skills. Go through an agency to begin with if you can. Do this and provide YOURSELF with a fixed estimate at the start of the job. Write down your assumptions (which should always be part of any fixed quote - unless you want to work for free when the scope creeps). Only when you're able to create accurate estimates should you take on fixed work (making sure anything you sign limits the scope of the estimate). Make sure you're permitted to see the details of all contracts regarding your employment, and keep a copy to refer to if you do decide to take anything on without an agency. (Fixed contracts will be different again to hourly, but you need to start getting an idea of what the language is like in your employment contract if you're going to handle all this yourself).

    --
    These posts express my own personal views, not those of my employer
  24. Shameless self plug by Fahrvergnuugen · · Score: 1

    We're building a basic project management / task management tool called ProjectLink.

    Its currently functional as a task management tool (it even has an API) and is free to use, all we ask for is your feedback.

    We are working very hard to build in native quote/invoice creation right from the tasks to integrate with our InvoiceLink and OrderLink systems.

    --
    Kiteboarding Gear Mention slashdot and get 10% off!
  25. How Magazine by Orig_Club_Soda · · Score: 0

    Look for past issues of How Magize (I believe 2007) They did a series articles that answer your questions.

  26. my advice by NickBuzzica · · Score: 4, Insightful

    1) build a nice portfolio and get references
    2) NEVER work without advance payments
    3) never call a potential client more than 3 times before getting a deal signed
    4) never ever fail in doing what you're hired for
    5) paypal will do for invoicing and billing. get a premier/business account and you'll be fine
    6) get a set of must-have documents: an agreement, NDA, proposal wireframe, a set of relevant links for each project category
    7) avoid custom coding. there are a lot of open-source apps today you can use code from
    8) donate to them!
    9) use modeling and frameworks. avoid coding pure language, you will waste precious time
    10) don't get jobs just because you need the money!! very important.
    11) decide on some hourly rates for various category of tasks and only give discounts for large projects. calculate fixed fee projects' values based on these rates.
    12) always add 10-20% on the top of any quote you generate. clients will always surprise you with stuff like "i thought that was assumed"
    13) establish a sales strategy and stick to it: "i'll do it for X-10% instead of X if you decide today" or "I can do both your projects for 75% their total value"

    took me 9 years to learn this on my own. the very hard way.

    www.buzzica.com is the result of all this work.
    Hit me up if you need help!

    1. Re:my advice by TheSpoom · · Score: 1

      5) paypal will do for invoicing and billing. get a premier/business account and you'll be fine

      Except you should never use PayPal if you can avoid it. Not only do they take 2.5% but they can and will freeze your account at any of over 100 fraud triggers, and sometimes will refuse to let you access your money for months at a time.

      Cheques are good, wire transfers are better.

      --
      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
    2. Re:my advice by NickBuzzica · · Score: 1

      the 2.5% should be fine for amounts less than $10k. and if you have a good business practice and transfer enough money to matter, i guarantee you - you won't have ANY problem with them. I never had a problem with paypal that wasn't solved on the first support call. checks are ok unless you work international. and they might take long to clear. wires are best but also take 1-2 days to clear, sometimes more if international.

  27. Quicken, Nolo Press, and Incorporating by Timoteo47 · · Score: 1
    Intuit offers a free version of Quickbooks called Simple Start which allows you to track expenses and generate invoices.

    Nolo Press is a good resource for legal information. If you plan on freelancing for a while, you should consider incorporating to provide liability protection. Also, get business insurance, a good accountant and a lawyer.

    Good luck!

  28. Written communication and simplicity is key. by Calavaro · · Score: 3, Insightful

    1. Make sure your client understands that changing a website core mid development will make it push past scheduled completion time AND drive the costs up. Sign contract (talk to a lawyer to get correct wording etc).
    2. Make sure they understand that changing website mid dev... yeah.
    3. Written communication each and every time or you will be SOL when the client decides to change the website mid development... you never win an argument with a client unless it is all documented.
    4. Quote them a whole project if you feel they are willing to cough up the cash for it. Take deposit totalling no less than your expenses (eg. travel, lunches, new software, etc)
    4.1. If they state during initial talks "Pricey/too much/whatever GAH" quote a base site, (text, images, pretty banner maybe even a basic flash animation or 2), then each addon priced separately.
    5. Make sure they understand that a lot of the work is behind the scenes, but show them the pretty to satisfy their visual urges.
    6. Be prepared to age quick.
    7. Know people are relatively clueless and needs basic stuff explained again and again. Write it down in an easy to understand format and email to them. Keep it short, most clients develop a severe form of ADHD when they need to make an effort to understand you.

  29. Thoughts on freelancing. . . by Hero+Zzyzzx · · Score: 3, Insightful

    I've been freelancing on and off over the last 9 years or so, and I just came out of three years with a successful company where I learned a lot about how to be a consultant, how to create happy clients with clear expectations on both sides and how to not get soaked. Here are some things I've picked up, YMMV.

    • Always bill hourly. Always. Don't work with clients that aren't comfortable with that, you will get screwed. The talking points of the conversations I have with prospective clients go something like: "If you ask me to do something, you should assume that you're paying for my time - it's that simple. I don't work for fun, though I love my job. Have you ever had a consultant start ignoring you before a fixed-bid project is finished? That's because you aren't paying hourly and they have given up on you - they have too much time in for the amount you've paid. Because you - and all my other clients - are paying hourly, I don't ignore anyone. Time and again fixed-rate consultants burn out because they find they are doing too much work for free - I'm in this for the long haul and part of that is everyone paying their share so I don't burn out." I like to talk long-term, looking for clients that want me for more than just a one-off project.
    • Give estimates, but stress they are just estimates, the client is still expected to pay for the full amount of time a project takes. Let your client know you will check in with them frequently as the hours pile up to ensure you're on track or - if you aren't - that you'll discuss how to get the most important 90% of the project as quickly as possible.
    • Conversely, I think it's OK to do fixed-rate projects for long-term clients and/or where you've done a similar task many times over. Generally, I would avoid it, though.
    • Track all your time - even the non-billable sys-admin-y / business development stuff. It'll be invaluable when it comes to planning to know exactly where your time is going.
    • Double any estimates before you pass them to the client - things always take longer than you think (the devil is always in the details), and the client will be happy if you come in under what they were expecting. Many consultants are uncomfortable with this idea, but it has never been a mistake as far as I'm concerned.
    • Bill every month, or on whatever schedule you normally bill on. Get in the habit of billing regularly - too many consultants get too busy to bill their clients! It's odd, but totally common.
    • Don't take projects that're completely outside your skill set. Admit your limits - taking on a project that's out in left field is a sure way to a bunch of stress and an unhappy client. An example: if you don't really have an eye for design, find someone that does that you can trust.

    For time tracking and invoicing, I'm enamored with Freshbooks.com (referral link, non-referral link.). It's cheap, you can accept online payments, freshbooks can snail-mail invoices for you (!), the billing options are pretty flexible and the timesheet app is pretty slick with desktop widgets aplenty. I haven't found an open source project as polished and featureful as freshbooks - please let me know if something like it exists. SQL-Ledger is not a competitor to freshbooks - not by a long shot.

    Hope this helps. Good luck!

    1. 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.

  30. Keep it simple by Anonymous Coward · · Score: 0

    Finding the work is usually the easy part... getting paid is harder :) Here are a few of my favorites to help get the right types of clients:

    -Prepare a quick 1 page estimate rather than a full blown statement of work. This helps make sure that you and the client are on the same wavelength. If necessary you can prepare a full SOW after this step, but otherwise don't waste your time or theirs.

    -Require a payment up front. I usually go with 25%. If the client doesn't want to do this, you'll likely have trouble collecting later. After this initial payment, require additional payments at milestones. If you give/show the client something tangible they'll be fine with this.

    -I prefer to bill hourly. It's a good way to combat scope creep.

    -Contracts are good, but in general if you don't feel comfortable about the business transaction with just a handshake - walk.

    There are a lot of OSS tools out there, but I'd suggest figuring out your business model first. Once you've done this, then you may choose some tools.

  31. SitePoint by Larry+Lightbulb · · Score: 1

    Although there'll be a lot of good advice about this on /., I'd suggest going to SitePoint and reading up on how people who are already doing this deal with problems.

  32. 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
  33. Consider learning CMSs and taking small jobs by matthewncohen · · Score: 1

    I have spent the past couple years getting my foot into this world from scratch (no significant prior experience) and I have found CMSs like drupal, joomla, and wordpress to be invaluable for my work with small businesses, non-profits, artists, health practitioners, etc.

    These jobs are fairly short and easy to do. They can be a way of building your confidence, professional manner, and estimating abilities without getting too deep in over your head. Of course you can also work with building sites from scratch and updating already built sites in order to develop those skillsets.

    The point is to take on low-impact jobs working for people you actually like and hopefully share values with. This makes the professional relationship a lot easier and provides a lot of useful education for you in the process.

    I do a lot of work for barter too. It's nice to be able to get services that are important to me like massage/bodywork or auto-repair as I am going through this learning process and expanding my professional horizons. I also get paid a fair chunk of change now and then for relatively minor jobs from a development perspective.

  34. Trust your gut! by Anonymous Coward · · Score: 0

    I used to freelance a bit, and got burned a couple of times by clients who were assholes, and jobs that I never should have taken. In hindsight, they always smelled a bit funny from the beginning, but I ignored it to get the work. Trust me, save yourself the trouble, and don't take a job that doesn't feel right from the start.

    1. Re:Trust your gut! by Anonymous Coward · · Score: 1, Funny

      assholes smell funny? Thanks for the valuable insight!

  35. LLC or Incorporate by Nohbdy001 · · Score: 1

    It isn't the geekiest part of doing freelance web work (unless you are a finance nerd), but it would be wise to setup an LLC or to incorporate your home business.

    Get an accountant involved that knows how to file for LLC status in your state. Should anything go drastically wrong (a bug in your code causes the site to be hacked and your client is out for blood), your personal assets will be safe.

    As an added bonus, your accountant should be able to help you get all kinds of neat tax deductions from running your own business too.

    If you feel like dabbling in the finances yourself, there are several online services out there that will help you fill out and file the forms on your own to either incorporate or form an LLC.

  36. A List Apart by iangoldby · · Score: 2, Interesting

    If you are seriously interested in freelance web development, there is a great community of like-minded people on A List Apart, quite apart from a vast repository of well-written articles that go way beyond what you've so far asked.

  37. bill hourly by klassicd · · Score: 0

    Per-project pricing can be very difficult. Clients always request new improvements or changes once they see your work. If you're stuck with per-project pricing you will end up battling the client over important changes they request. Bill by the hour and always create a statement of work. Your statement does not have to be very detailed. It should be a high level overview of your development goals. It should include time estimates for each phase of the project. If you are going to be investing over 40 hours of work into a project it's a good idea to request a retainer. The client should be willing to put 10% to 25% down. New clients may be weary of putting down a deposit. In this situation it's a good idea to break down the project into smaller phases. After each phase they should be required to pay you whatever hours you have logged. Always keep detailed track of your time. It's important that your quotes are very close to the time billed. This will be trust with clients. Time everything you do and always compare it to your original quote.

  38. 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.
  39. Invoice creation by spockboy · · Score: 1

    For invoicing, this piece of software has been a breath of fresh air for me:

    Simple Invoices

  40. ah Shoot the client? by shareme · · Score: 1

    Ah shoot the client?

    --
    Fred Grott(aka shareme) http://mobilebytes.wordpress.com
  41. Standard Practice by StormReaver · · Score: 1

    After I started freelancing, I wrote up a contract specifying what I would do, how payments were to be handled, how project termination would be handled, my responsibilities, my client's responsibilities, etc. I then paid a contract lawyer to draft a formal contract based on my terms (he charged me $150). He told me my draft was so well done that he needed to make only small changes. Nonetheless, I thought it was worth the money. Fortunately, I didn't have any problems with my first client, so I didn't need the contract there. For all other jobs, though, I require the client to sign the contract. It boils down to a few points:

    1) I get paid by the hour (to the nearest 15-minutes), whether I'm programming, traveling, talking on the phone, etc. If it's related the the project, I get paid for it.

    2) We can both terminate at any time with written notice through certified mail. The client is responsible for my charges up to the postal time stamp. Outstanding payment is due upon cancellation.

    3) I provide weekly updates in screenshot form, and/or working application (as feasible).

    4) The client agrees that its only legal recourse for dissatisfaction is the cancellation of our contract, and all legal costs beyond that are the responsibility of the client. Additional wording stipulates that if the client sues me, the client must pay my legal expenses.

    5) The client gets the binaries and source code. I retain the copyright on the code, but the client gets the right to make unlimited derivatives and copies.

    That's all I can remember off-hand.

    I used Qt 3 for my first freelance job, and required that the client accept the terms of the GPL before I would do the project. For the client's practical purposes, it allows him to treat the program as proprietary since he doesn't redistribute (and neither do I). It also allowed me to avoid paying a huge chunk of my income to Trolltech. Trolltech's butchered transition from Qt 3 to Qt 4, though, has prompted me to do all my future freelance work in Java.

    The client was thrilled when I explained what that meant (no vendor [me] lock-in), and it did no harm to my repeat business. Once a client has invested that much time and money in a vendor, it's very painful to switch.

  42. Learn jQuery by SanityInAnarchy · · Score: 1

    As long as we're talking about best software practices...

    Learn jQuery for JavaScript. And if you ever have to build anything bigger than a few lines of jQuery, read Douglas Crockford's stuff. You don't need to use it gratuitously, but Javascript isn't a horrible language -- it could have been much worse.

    Learn PHP because you'll have to, but pick up something better (Ruby/Rails, Python/Django, etc) in case the client wants you to build something from scratch.

    --
    Don't thank God, thank a doctor!
  43. invotrak by Anonymous Coward · · Score: 0

    For invoicing I've used a web-based application called invotrak. I've only had a limited experience with it, but it was an easy, straightforward experience. Worth a look if you're looking for something simple and straight to the point, but there are probably much more feature-rich apps out there if you actually want a full-blown project management tool or something like that.

  44. Re:Learn jQuery - Good grief... by FyRE666 · · Score: 4, Insightful

    What a load of rubbish - have you ever seen just how slow Ruby sites run with any sort of significant load? Python too. PHP isn't the silver bullet or anything, but saying Ruby/python is "better" is just playing to the fanboy crowd.

    Yes, I have used all 3 in commercial projects - have you?

    And as for the idiots saying "don't use a table, you can make divs behave exactly like table cells, except not in IE6" - where to start... If you're having to code up 20k of CSS and AT LEAST the same amount of markup (probably a lot more) to emulate something that already works, and works realiably, then you're an idiot. The visitors don't care, your client won't care, Google doesn't care (really! go check it out) and you won't earn any more out of it. Saying "ah, but I can tweak it easier" is more junk - how many sites do you actually "tweak" after it matches the visuals? Virtually none. A redesign usually requires different content and completely different layout.

    Don't even get me started on making the site work across mobile and email shots (yeah, you're going to be using tables, or lots of images and nothing else)

    Tables have their place in the real world. Stop being elitist about it.

  45. NEVER bill hourly! by LibertineR · · Score: 4, Interesting
    You will read much opposition to this, but the fact is that PROS do NOT bill hourly. You will initially lose money, but you will gain experience and more importantly, the MOTIVATION, to bid and scope your projects properly at the beginning.

    You will find clients who wont agree to a fixed-fee (1/3 up front) contract, and those are the clients that you don't want anyway. Your goal should be to work for clients who know what they want, and understand that changes beyond the initial contract will cost them more in money than it will cost you in time.

    You will only lose money, when you attempt to do favors for clients who change the scope of work continuously, without regard for your time or contract. Run from these clients, or suffer greatly as you learn why.

    Clients should not pay you for the time it takes for you to discover what they want. You should have the ability to provide DETAILED project plans and scopes of work BEFORE your client knows what it will all cost. If a client ever has to ask you: "So, what do we get for that amount?" You failed.

    Clients should also not have to pay for you to learn ANYTHING, a new technology, a new software platform, etc. You are supposed to be the pro. If they are paying you to learn, you suck, and will eventually get caught. Learn on your own time.

    Provide a standard Boilerplate contract, with an attached Schedule A, defining the specifics of your project. Give your clients a 7-day out-clause, with an understanding that after that time, the upfront payment is YOURS, regardless of any cancellation.

    The bottom line is, to be perceived as a professional, you must present yourself that way. If you cant afford to walk away from business, you are not a pro, but a hack.

    You would be amazed at what clients will agree to if they perceive that you are confident, professional, and most importantly, not willing to be shat on for their business.

    When you bill by the hour, you and the client are at odds from moment one. They want it fast, and believe that you do not, less you reduce your billings. When you charge a flat rate, you are in sync with the client, because now you BOTH want the work done as fast and as well as possible.

    No project gets completed without changes or adjustments. You don't want those adjustments costing you, so learn to plan for them, and bid them right into your fee. Dont be a job-shopper with a client looking over your shoulder, calling your cell phone endlessly requesting updated timetables. Your client should know BEFORE THEY SIGN, exactly when (barring changes) the project will be completed.

    With a well developed reputation, you will find yourself able to charge for early completion, with the caveat that you will also except penalties for projects that are late. Planning is everything, or you WILL lose your shirt.

    If you bill by the hour, every project you do will have a winner and a loser. If you lose, the client is happy, but you left money on the table. If you win, the client is pissed and you wont get more work.

    Dont charge by the hour; be good enough to know what your work is worth, and CHARGE for it. If they wont pay, fuck them. Someone will, because if you have your marketing shit together, you wont have to pound the pavement for work.

    1. Re:NEVER bill hourly! by HertzaHaeon · · Score: 1

      I agree, billing hourly is bad, at least to begin with. I never do a web project by the hour, even if it's very hard to come up with a fair estimate of the work needed.

      I do however bill hourly for follow-up work after the contract is finished. Additions and corrections that can be done in a day's time or so go by the hour because setting up a whole new agreement for small projects is too unwieldly. My clients are usually fine with that, because they value the flexibility. Also, it keeps them in check somewhat, so they don't have someone call me for every little misspelled word they find.

    2. Re:NEVER bill hourly! by LibertineR · · Score: 1
      I turn follow up work into "projects". My contracts state 'Version 2.X', or whatever works, but I still make it fixed fee, with a third down. I charge based on the work's value to the client, not on how much time I think is required.

      For example, it might take me less than an hour to enable Paypal or credit card billing, but its worth a hell of a lot more than an hour's work to the client. I bill on value, not on time.

    3. Re:NEVER bill hourly! by vw_bob · · Score: 3, Insightful

      Oh my god, this is the worst advice I've ever read.

      It's extremely hard to estimate the level of effor it takes to build software. Thus you are virtually guaranteed that if you bid fixed rate you will get burnt. And, even if you're good at estimating, maintaining change orders for each little request is killer. And what happens when you estimate something (like say printing in Flex/Flash/Air to be a 40 hour project and it turns in to something like 120? - not that that's happened to anyone, or anything.) My point is, neither you nor your client know how much effort it will take to build software. Read my comment above to see how I recommend estimating, billing, and collecting.

      Besides, I'd rather get paid for every hour I work. That's both honest, as I'm not getting paid for work I didn't do, and fair, as in I'm only billing for work I did.

      I know a LOT of people who have been burnt bad by agreeing to fixed fee work. Software ALWAYS has bugs and your clients can easily say that something that doesn't work they way they feel it should is a bug and threaten legal action if you don't fix it for free. If you bill hourly for every hour of work you're covered.

    4. Re:NEVER bill hourly! by HertzaHaeon · · Score: 1

      Sounds good if you can do it, but the clients I work with would probably protest if I charge hundreds of euros to what they see as putting a PayPal link on their site.

    5. Re:NEVER bill hourly! by Anonymous Coward · · Score: 0

      "PROS" don't bill fixed. Large firms with high overhead do. If they're successful at it (meaning they do less work than they billed, which encourages the shortest path or using pre-packaged solutions, or worse yet trying to find the 'ideal client') they stick around. If not they last a couple years.

      You're thinking about a 1 person contract work gig. Bill hourly, keep your rate HIGH if you want to get clients that respect your time (you can always cut back, it's the invoice that counts, not your hourly) , and write more but shorter agreements that deal with a chunk of the project at a time and give the client control over budget. Oh yeah, and ALWAYS have an expiration date on your agreement. The point is to communicate. If things take longer than expected, it's probably a good time to talk about it.

      Lastly, there's way to much tip-talk on this thread. (Yes, including my response incited by ignorant advice.) The only way to learn is to DO. And if you're really that inexperienced or unable to pick up one of the dozens of books that do more than offer tips about project management, get connected with a recruiting or temp agency that will take care of all that and you - but learn from watching them.

    6. Re:NEVER bill hourly! by LibertineR · · Score: 1
      "It's extremely hard to estimate the level of effor it takes to build software."

      It isn't hard at all if you are any good at it. When you know what you are doing, AND take the time to know what the client wants, it is a simple matter to put that effort into a dollar amount.

      If you estimate a 40 hour effort, and it turns into 120, that means you suck. If the overage is the fault of the client, and you did not plan for that in your contract and statement of work, then again, you suck.

      Your client might not know how much effort it takes to build software, but YOU should.

      Every argument you made can be addressed with proper planning, and enough experience to justify your calling yourself an 'expert'.

      You are right about one thing; a lot of people DO get burned on fixed fee work. The point is, a LOT of people also suck.

    7. Re:NEVER bill hourly! by devonbowen · · Score: 1

      If you estimate a 40 hour effort, and it turns into 120, that means you suck.

      Absolutely. I work a mix of fixed and hourly contracts. Hourly is necessary if the specs aren't clear and the job is to help them figure out what they want. But for a defined project, I've never had any trouble providing fixed, competitive prices and coming in on schedule. All these comments about "losing your shirt" by working for a fixed price sound very unprofessional to me.

      Devon

    8. Re:NEVER bill hourly! by Anonymous Coward · · Score: 0

      I don't know about that. I guess it depends on the type of work you are doing and the relationship that you have with your clients.

      I often start of on fixed-bid projects, but often end up with long lasting relationships with clients. I work for several very large sites, many of whom I have had ongoing regular business with for 1, 2 or more years. Hourly billing allows them to IM me, email me, give me a call, or (ideally, and for the medium-to-large projects we have this in place) submit a request-for-work ticket and for me to hit it as I am available. I don't touch anything for established clients for less than $80 USD an hour, and this works out perfectly well for both parties, as my time doesn't get leeched and they get what they need delivered promptly and well (there is a false economy where sometimes people will hire a 'general' programmer/developer for say $20 - $40 an hour, but they usually ed up paying for 3x the hours, get the results delivered in a month or more when it should have only taken days, spent their time chasing after the developer, and in the end have only a poorly coded and less maintainable result to show for it .. clients only need to get burned badly once to learn that this is not the way to go)

      Hourly rates can be equally beneficial to both parties. Trust is important in all of this, and trust is something that can only be developed over time.

  46. some odd things in the contract by CharlieG · · Score: 1

    I worked for a consulting company, and there were some odd things we added in along the way (this is for on site work) - we spec'd that we got the company standard desk, chair, wastebaskets, phones and the like - aka they could not stick us in the corner, in the back, in the dar, with a broken chair and desk

    Other things we eventually wrote in - SWAG - if the members of the team (besides us) were going to be given sawg for being on the team, we had in the contract that WE had to get the swag too (That came after the time my boss - before I worked for him, and he was working for ME - didn't get a hat and tee shirt for the project because he was 'just a contractor' - he and I were co-leads on the project)

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  47. Re:After five years of just about paying the bills by mdavids · · Score: 1

    Oh, and all free software, all the time. You never know when you'll come up with some re-usable code, or want to use a sizable chunk of some other GPL-licensed code, so make it clear that the client has the product to use as they wish under the terms of the GPL (or whatever), but they don't have the copyright. Anything else is a legal nightmare, and I've never encountered any resistance to this. Anybody not knowledgeable enough to be comfortable with the GPL probably doesn't care about the legal details anyway. Anybody who has dreams of striking it rich with their own proprietary web application is going to be a problem client you should avoid.

  48. Re:Learn jQuery - Good grief... by dubl-u · · Score: 1

    What a load of rubbish - have you ever seen just how slow Ruby sites run with any sort of significant load? Python too. PHP isn't the silver bullet or anything, but saying Ruby/python is "better" is just playing to the fanboy crowd.

    Rails definitely uses more CPU time. However, it can make development of some kinds of things much faster, and you can work at higher levels of abstraction in Ruby than PHP.

    Whether that matters at all depends on the situation. There is no such thing as the "right tool" except in the context of who's using it and what they're doing with it.

  49. Remember a contract is a two-way street by HertzaHaeon · · Score: 1

    When agreeing on the contract, make sure your client knows exactly what's expected of them too. I used to be very clear about my part, but less clear of what I required to fulfill it, like content, design and marketing decisions, etc. Now I always make it very clear that I will do the job in a timely manner only if the client meets his side of the agreement. Otherwise you always risk taking a lot of undeserved shit and have other people's deadlines forced on you. If you don't have what you need and can't do your job, you can always point to the initial agreement and take some heat off yourself. Then you have the option of offering to be nice and put in some extra hours or some such, potentially benefitting from other people's problems rather than suffering for them.

    Perhaps this is obvious, but I was thrown into freelancing and was a bit naive about how my clients understand the web and their own capacity. They don't understand the web at all, it turns out, and their own capacity is usually only slightly better understood.

  50. Getting business by Anonymous Coward · · Score: 0

    More importantly, what's best practise on getting work?

  51. Don't forget who your clients are. Re:Learn CSS by Anonymous Coward · · Score: 1, Insightful

    Do you think his clients will pay him any less if he uses tables instead of CCS? I doubt it.

    Don't forget who your clients are: not software purists, not your comp-sci teacher, but the people paying you money. Some "clean" approaches will earn them money, some won't. I'm not suggesting that you ignore best practices, but you have to justify it in terms of direct value and savings to the client. A directive of "learn CSS" is totally off topic for your question.

    It may be perfectly acceptable to many people that you can reach 95% of their target audience for $200, and they'll decline the standards-compliant package at $1000.

  52. Been there, done that. ... Still doing it, sort of by Qbertino · · Score: 1

    Even risking to repeat some of the stuff allready said, here's my list of my recommendations of which some were earned very hard on my part:

    1) If you want to get going easyly, you need a main client. You otherwise will allways end up with a net loss, unless you are extremely disciplined at only billing for actuall work done. Which is nearly impossible in the first year or so for someone in this field without prior experience.

    2) A lesson hard learned by me: End-customers know much, much less about IT and the web than you can possibly imagine. Chances are they won't understand a word you're saying on your first meetings. Take that into account from day one! They *will* compare you to the son of a friend who can do the same thing in MS Frontpage for a tenth of the cost. If that happens: WALK AWAY!! Somebody like that is *NOT* your customer! Trust me on that one.

    2b) Likewise, people know squat about modern webdesign and, to be honest, chances are that you don't either. This is the top league, and if you're not playing in it and don't plan joining it (i.e.: scoring a regular official entry in csszengarden and building an accoring personal site - which basically means putting 1500 hours into webdesign, alistapart and such and getting really good at it) STAY THE F*CK AWAY from web-design. The field is fubared enough as it is. If you insist on building your own CSS and HTML, learn a CSS framework. I strongly recommend YAML (as in CSS, not config-language) as the foundation to all your custom design work. But double-check your artistic abilities with proven pros befor doing so. I happen to be gifted with both programming and artistic skills and there are some others like that too, but that is more rare than most geeks like to admit. ... And earning money with programming is much easyer anyway - you know, the son doing Frontpage and all that ...

    3) Learn one (1!!!!, ONE!) FOSS web-app-kit. As in: *NOT* two or more. But ONE. And focus on it. Find out which of the big ones suits you best. For instance, Typo3 owns the German market (yeah, whatever, cue bloatware jokes below), so it's a safe bet if you live there and want some freelance gigs to roll in fast. Others are Zope/Plone, Django, TurboGears, CakePHP, Symfony, ZendFW, Prado, Joomla, Drupal and EZ Publish. Some are CMSes, others are Appkits, some try to be both at the same time and usually manage quite well. Which one you choose nearly matters squat, they all have their ups and downs. However, it *is* important that you pick exactly one, and one only, and become a pro at it. It takes about 3000 hours and a few years of work with one community to achieve that. Do it. Help them out with bugtracking from the get-go and make room for developement-branch of the project in your pipeline. And try to join the core crew or at least the bugsquad or something. I'm in the Joomla bugsquad, which is sort of my sorry excuse to say I'm helping out. It does give me a little bragging advantage with the one or other customer though.

    Bottom line on this one: Concentrate! I can't emphasise this one enough - you have to restrict your geek-experimentation drive when running a business. Do it from day one on!

    4) Have a working one-stop zero-fuss pipeline custom built to fit the FW you use *before* you start. In fact, make that your first task to do before even considering going freelance! Automation, Versioning, Bugtracking, Project-Management, DB-sync and project-deployment, local and remote LAMP stack and all. Set it up and use it! If you don't know versioning and issue-tracking, you have no f*cking business doing freelance web-work. That's a fact! We have to many n00bs joining the fray as it is! Join me on a gig some time in the future and not know versioning and I'll have your ass for dinner, even if you live on the other side of the planet! I can't tell you ho

    --
    We suffer more in our imagination than in reality. - Seneca
  53. Re:After five years of just about paying the bills by Larryish · · Score: 1

    Have you tried Joomla?

    What are the advantages of Drupal over Joomla?

  54. Two Rules by pngwen · · Score: 1

    1. Do whatever you have to to get the contract. Feeling out how to best manipulate and extract money from your client. If you have to undercut your best friend, be prepared to do it. Put your ethics on a shelf, the world isn't about them anyway.

    2. Never do business with anyone you could not utterly destroy should the need arise. If a company is hiring a freelancer, chances are they are going to screw you. You need to be prepared to screw back, harder and deeper.

    Really those two rules work in all dealings. If you cannot cause financial ruin to someone you are in an agreement with, you are not safe.

    --
    I am the penguin that codes in the night.
  55. Find a mentor by Mandatory+Default · · Score: 1

    The contract (or simply the "agreement") will make or break you. I've estimated, negotiated, and developed for jobs ranging from a few hundred dollars to multiple millions, from a handshake to a 40 page contract. Writing a good proposal, knowing what to charge for, knowing what to negotiate, knowing when to hold your line - these are things it takes years to learn (and many people never do.)

    So do yourself a big favor that will certainly increase your profit and may keep you out of court. Get involved with other consultants and learn everything you can. Find a small business group and take classes. Go talk to SCORE - their services are free. See if there is a web developers group near you on meetup.com.

    In short, find mentors - people who have already learned from the school of hard knocks and are willing to share their experience.

    Just one "simple" example - how much to charge. There's an absolute minimum you must charge just to break even. You have to factor in expenses (including software upgrades), capital costs (computer equipment), vacations, overhead, business insurance, attorneys, CPA, marketing, non-billable time - the list goes on. If you don't know how to do these calculations, then get help before you go broke.

  56. Re:Learn jQuery - Good grief... by Achromatic1978 · · Score: 1

    Rails definitely uses more CPU time. However, it can make development of some kinds of things much faster, and you can work at higher levels of abstraction in Ruby than PHP.

    Wow, color me surprised, a framework for a language makes development faster than the raw language. It's a shame there aren't frameworks available for PHP that could cut development time in a similar manner as Rails does for Ruby...

  57. Re:Learn jQuery - Good grief... by dubl-u · · Score: 1

    You seriously couldn't take the time to read all the way to the end of the sentence you quoted? Or, even better, to understand my point?

    Yes, there are definitely frameworks in PHP. I'm sure they're swell. But Rails was such a departure from existing frameworks in part because of the Ruby language. There are plenty of web frameworks in every language, quite a lot of them inspired by Rails. But there's only so much you can do without certain features of Ruby. Which, as I said, comes at a CPU cost, as they would in any language.

    However, my point was that one should pick the right tool for the job. How you can get your panties in a knot about that, I dunno.

  58. Another amateur lowering IT expectations by Anonymous Coward · · Score: 0

    This is my first time in this role...

    You know, it's no wonder so many people have such low expectations and opinions of the IT industry.

    There's far too many amateurs hanging out shingles as "professionals" and their complete lack of knowledge and experience is exactly what people are being fed as "IT professional".

    The kinds of questions you are asking are questions you'd have all of the answers to if you'd have apprenticed for a requisite amount of time as a Web developer before deciding to pass yourself off as a professional.

    If you wanted to add an addition on to your house, would you hire somebody you knew had done nothing more in the way of contracting than a few minor renovations around their own home?

    I bet if you did hire somebody passing themselves off as a professional and then found out when it all started going wrong that they were nothing more than a DIYer, you'd be eager to sue for fraud or mis-representation.

  59. Good Advice by SirLurksAlot · · Score: 4, Interesting

    Please excuse me for replying to my own post.

    I want to thank everyone for all of your excellent advice. It's obvious there are some very experienced folks here, and it sounds like the way most of you have learned how to freelance is through the School of Hard Knocks. I'm sure I'll be putting some time in there myself, but hopefully not too much ;-)

    It sounds like there are a lot of good arguments for and against billing by the hour and fixed-rate quotes, and that may just be something I'll have to try on a case-by-case basis until I find my groove. I can see value in both methods depending on how big or small the job is. I also see a lot of posts about setting up a some form of standard contract and from a CYA perspective that makes total sense to me. All in all I have a lot to consider (this is a good thing), and hopefully someone else who may be in the same boat that I am will benefit from this discussion as well.

    This is my first AskSlashdot submission, and after reading through the responses it makes me realize again just how many intelligent and helpful people hang out on this site :-D

    Thanks everyone!

    --
    God, schmod. I want my monkey man!
    1. 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

    2. Re:Good Advice by wytcld · · Score: 1

      Whether to bill by the hour or the job depends largely on context. I do both, and both have their place. It depends on the nature of the project. Projects are wildly different. Some can be tightly defined upfront, both in scope and final delivery target. Some are better framed not as a single clear goal but an ongoing direction. The first, I bid as a project. The second is best approached hourly, breaking it into small stages, and always prioritizing delivery of the aspects that the client can see immediate benefit from.

      But none of this is one-size-fits-all. It very much depends on what kind of product, for what personality of client, in what industry. There are many, many different business ecosystems out there in which niches exist for independent developers and designers.

      Nor is it one-size-fits-all for what skills you should bring. The skills you need are whatever your client doesn't have in-house. That's entirely client-specific. The more you are in fact a jack-of-all-trades, the better the chance that you'll at least know where to find the answers to give them what their own staff can't - or the competing consultant who has over-specialized in one particular methodology can't.

      --
      "with their freedom lost all virtue lose" - Milton
  60. mod up parent by wibs · · Score: 1

    Exactly what he said.

    --
    If you get nervous, just remember that there are a few billion other people who don't really give a damn.
  61. How to estimate by RobinH · · Score: 1

    Ok, here's a decent method I've used for estimating:

    • "Brainstorm" all tasks. Mindmaps work well here. Experience helps. Talk to other people who've done it before.
    • For all tasks, come up with a best case and worst case amount of time (e.g. if everything went perfectly, it might take me 5 hours to code up this page, but I could get hung up chasing down some stupid bug, and it could take me a day and a half...)
    • Then, for each task, pick a "probable" amount of time between best and worst.
    • Using a spreadsheet, calculate a base time for each task = (best + 4*probable + worst)/6
    • Assign each task a rough "risk" value. I use: low (done it before), medium (haven't done it before, but it's a common task in the industry, so it'll take some research, but I'm sure I can do it), high (cutting/bleeding edge)
    • Calculate an "uncertainty factor" for each task. I like to use (worst-best)/6
    • Take the base time for each task and add one "uncertainty factor" if it's medium risk, and two "uncertainty factors" if it's high risk. This is your adjusted time
    • Add up the adjusted time for each task, add 10% contingency (for stuff you didn't think of in the first step), and that's your estimate.

    Obviously the hardest part is trying to come up with the list of tasks in the first place.

    --
    "I have never let my schooling interfere with my education." - Mark Twain
  62. Contracts are premature by tomhudson · · Score: 5, Insightful

    Contracts? From reading the article, contracts are really premature. The person asking the question is too vague about too many things. They should have at least gone into some detail about their skills, experience, and target market. "I want to freelance as a web developer" sounds more like an act of desperation than a person with a plan.

    Just some of the basics that are missing:

    1. What market you want to attack in terms of clients - size, type of projects, supported technology - you can't hit your target if you don't have one. Is there even a market for what you're trying to sell? If so, where? "Don't know?" means you've already earned an F.
    2. What skills and experience you have, and what you've done to ensure that you have contacts with others who have complementary skills. The wold doesn't need YAFPWM (Yet Another FrontPage WebMonkey) or another "I know Dreamweaver so I'm a 1337 web developer and deserve big bux."
    3. What corporate sales experience you have - you REALLY need people skills to survive in business, and make no mistake about it, if you're freelancing, you're running a business, competing with other businesses. Have you ever cold-called on businesses? You need to see at LEAST 50 a week for the next 3 months, and devote 1 day a week thereafter, or you'll get stale fast, and someone else will eat your lunch when you're not looking. If you can't learn how to call on business, and ENJOY it, then being in business even as a freelancer is not for you.
    4. What sort of initial setup you have. Most web developers, even if they're not freelancing, already have a laptop (good for meeting with potential customers), a hosting provider already running a few sites, a server at home for putzing around with that could quickly be converted to a test box, a collection of tools and software you're familiar with, a decent camera and/or camcorder, and a laser printer. These are basic tools of the trade, and without them, you can't compete - it'll be poor presentation, poor preparation, and poor perception on the other side of the table.
    5. Transportation - after all, you're going to have to go out there and SEE potential clients. Spamming them with "hey, I'm a web developer and I want to enlarge YOUR business" isn't going to work. You need to spend on gas and shoe leather. Sure, "the internet is my market" - but people are more likely to trust someone if they have met them in person. Trust is essential. Your market is local, unless you're competing solely on price with rent-a-coders.
    6. You'll also find that you need to dress the part - and I don't mean casual Friday "webmonkey", but "entrepreneur."
    7. Business cards, complete with both physical and email address (NO POST OFFICE BOX!!!), cell phone, and web site, are de rigeur. Buy a few thousand, not a few hundred, Remember, you need to see 50 potential clients a week, so 1,000 goes fast at 2 cards a pop. And don't be cheap. Cheap shows. Worst is if you print them up yourself. You might as well hang yourself first. And put your cell phone or blackberry number on them - you need to be reachable. You'll really be pissed off if the client who could have made your year couldn't reach you. If you're not getting a blackberry or an iFruit with a data plan, put your cell phone SMS number on it (the one that people can send email to from their pc and it goes through your providers' email gateway).
    8. Staying power. You need to be able to last at least 6 months before you earn any money, or you don't have a prayer. Reduce your non-business expenses, get focused, and be ready to put in a lot of 18-hour days - daytimes prospecting, evenings preparing, planning, and polishing. If you can get unemployment, get it. If you can find part-time paid work as an employee, take it.

    If, after looking at this list, you see you don't have the resources to pull it off, maybe it's because succeeding in business is more than just "doing a job." Perhaps it's because now is just not the right time for you. Perha

    1. Re:Contracts are premature by UncleMidriff · · Score: 3, Insightful

      You've got a lot of good information in this post, and I enjoyed reading it, but is it overkill for someone who is just looking for a few jobs "in the meantime" to get him through to his next full-time employment?

      I've not been in this situation (yet (knocks on wood)), but I've known a few guys who have, and they never got anywhere near this serious about things. They acted professionally, sure, but they didn't attack it in the manner you suggest. They got a couple of odd jobs here and there from contacts from previous jobs, worked real hard so as to leave a good impression, and then started their next full-time, "real" job.

    2. Re:Contracts are premature by Anonymous Coward · · Score: 0

      Here, here, it's a travisdy that he didn't post his entire business plan on Ask Slashdot.

      Seriously, he just asked a simple question, I don't think he was looking for a lecture on how to start and run a business.

    3. Re:Contracts are premature by tomhudson · · Score: 3, Insightful

      This time we're heading into what is shaping up to be the most serious recession since the Great Depression. If you were around in '74 or '81, you have an idea of how bad its' going to get - people who lose their jobs won't be able to count on just walking into a new one in a few months.

      There's going to be some serious competition, so if you're going to compete, might as well compete to win. "Fail to plan" == "Plan to fail" and all that. In a case like the one in the article, the best bet would be to first off try to find a few other people with complementary skills, and pool resources. (Note - complementary - you don't want everyone in the group to be a clone of each other). A graphics artist should hook up with a developer; the two could hook up with someone who's good at administration, etc. The three of them could hit the local business sector street by street, each taking a block of office complexes, or a floor in a larger building, and sharing notes when they meet up every few hours, and significantly improve their chances of success.

      Not only that, but they'll be able to role-play their "pitch", and they can give each other feedback on what's working and what's not in the real world. And if one of them is having a good day, it'll bring the other two up. Nothing worse than the sense of slogging it alone in the world.

      A group of 5 people, each meeting for 10 minutes with one new contact, 10 times a day, gives 1,000 new contacts in one 20-work-day month. Three months of that and you're going to have work, plus hopefully each person will have found their "voice" - what works for them.

      The problem is finding 4 other people. the poster was laid off - the first thing I would do in a similar situation is email my former coworkers and find out how many others are now in the same boat, and if any of them are interested in doing something about it ...

      As for how to take on contracts - everyone who's going to be involved in a potential contract gets to decide whether the group takes it on and what a fair apportionment of revenue is, and who is responsible for what. For example, the group may have decided to put a 20% bounty up for the person who lands the contract - this motivates everyone to hustle for contracts, while also creating the idea that in the future, if things grow, they can bring in a full-time rep and pay them out of that same 20% allowance.

      The biggest problems are going to be a reluctance to call on businesses - most geeks don't have much in the way of people skills - and ego, which is just another name for a lack of certain people skills.

    4. Re:Contracts are premature by tomhudson · · Score: 4, Insightful

      Here, here, it's a travisdy that he didn't post his entire business plan on Ask Slashdot.

      Seriously, he just asked a simple question, I don't think he was looking for a lecture on how to start and run a business.

      Seriously? Freelancing IS being in business. The government treats it as such. So do clients. It's not like they're looking for work mowing lawns or painting porches, something that's easily measured, easily priced, and easily evaluated as to "what has to be done." If you're thinking of just making a couple of grand to "tide you over" till your next "real" job, why not just mow lawns, shovel sidewalks, or paint porches? It's honest work, and there's a lot less hassle involved.

      Someone laid off, looking to freelance, doesn't know how long it will be before they get another full-time job, so that freelance work *becomes* their full-time job. It needs to bring in enough money, on a consistent basis, to live on, which, if you're not living in your mothers' basement, means running it like a business.

      If you're going to deal with businesses as a supplier, you might as well do so in a professional manner. The way the economy is going, by this time next year it might spell the difference between living comfortably and living in a cardboard box.

    5. Re:Contracts are premature by ModernGeek · · Score: 3, Insightful

      I started my own web development / consulting firm off of one hundred dollars and all I can do is back up the parent on all of those points. Just because you are "an internet company" does not mean that traditional business practices don't follow you. When cold calling, people will quickly throw you out the door, especially if you look terrible, I can't stress enough on the business cards. When going into someone's business, you have about 15 seconds to hook them so that you can reel in the sale. Doing things "web 2.0" or "just online" will quickly send you to the poor house. People online don't want to pay for anything and want everything for free unless they are purchasing a physical product. Also, you will have to print invoices, you can't always email them, and you will have to deal with people not wanting to pay. If you don't want to have a universal contract in hand because you want to be "cool and casual", you will be treated as such. You have to be stern and well prepared when talking to people, and you can't stumble over yourself while speaking. If you later want to expand and build a firm and do this as your full time job, you will have to bring on partners, and that opens up another box of problems. If you talk to clients about your second job, they will think you are struggling and desperate, and will not take you seriously. If you say "uhm" and stall, you will be frowned upon. It took me three years of busting ass to get where I am now, and I am better for it. You need to spend some money on a nice sports jacket, a tie, and keep a decent haircut and clean shaved face, or you will be thrown to the hounds. Welcome to the world of business, I could talk for hours about this, but all I can really do is wish you the best of luck. Gods speed, especially when cold calling.

      --
      Sig: I stole this sig.
    6. Re:Contracts are premature by easyTree · · Score: 1

      No offense but you seem to be describing the brute-force approach to being self-employed. Surely there's a better way which doesn't rely on the 'meet 1000 contacts, get one job' approach?

    7. Re:Contracts are premature by Anonymous Coward · · Score: 0

      Contracts? From reading the article, contracts are really premature. The person asking the question is too vague about too many things. They should have at least gone into some detail about their skills, experience, and target market. "I want to freelance as a web developer" sounds more like an act of desperation than a person with a plan.

      Just some of the basics that are missing:

      1. What market you want to attack in terms of clients - size, type of projects, supported technology - you can't hit your target if you don't have one. Is there even a market for what you're trying to sell? If so, where? "Don't know?" means you've already earned an F.
      2. What skills and experience you have, and what you've done to ensure that you have contacts with others who have complementary skills. The wold doesn't need YAFPWM (Yet Another FrontPage WebMonkey) or another "I know Dreamweaver so I'm a 1337 web developer and deserve big bux."
      3. What corporate sales experience you have - you REALLY need people skills to survive in business, and make no mistake about it, if you're freelancing, you're running a business, competing with other businesses. Have you ever cold-called on businesses? You need to see at LEAST 50 a week for the next 3 months, and devote 1 day a week thereafter, or you'll get stale fast, and someone else will eat your lunch when you're not looking. If you can't learn how to call on business, and ENJOY it, then being in business even as a freelancer is not for you.
      4. What sort of initial setup you have. Most web developers, even if they're not freelancing, already have a laptop (good for meeting with potential customers), a hosting provider already running a few sites, a server at home for putzing around with that could quickly be converted to a test box, a collection of tools and software you're familiar with, a decent camera and/or camcorder, and a laser printer. These are basic tools of the trade, and without them, you can't compete - it'll be poor presentation, poor preparation, and poor perception on the other side of the table.
      5. Transportation - after all, you're going to have to go out there and SEE potential clients. Spamming them with "hey, I'm a web developer and I want to enlarge YOUR business" isn't going to work. You need to spend on gas and shoe leather. Sure, "the internet is my market" - but people are more likely to trust someone if they have met them in person. Trust is essential. Your market is local, unless you're competing solely on price with rent-a-coders.
      6. You'll also find that you need to dress the part - and I don't mean casual Friday "webmonkey", but "entrepreneur."
      7. Business cards, complete with both physical and email address (NO POST OFFICE BOX!!!), cell phone, and web site, are de rigeur. Buy a few thousand, not a few hundred, Remember, you need to see 50 potential clients a week, so 1,000 goes fast at 2 cards a pop. And don't be cheap. Cheap shows. Worst is if you print them up yourself. You might as well hang yourself first. And put your cell phone or blackberry number on them - you need to be reachable. You'll really be pissed off if the client who could have made your year couldn't reach you. If you're not getting a blackberry or an iFruit with a data plan, put your cell phone SMS number on it (the one that people can send email to from their pc and it goes through your providers' email gateway).
      8. Staying power. You need to be able to last at least 6 months before you earn any money, or you don't have a prayer. Reduce your non-business expenses, get focused, and be ready to put in a lot of 18-hour days - daytimes prospecting, evenings preparing, planning, and polishing. If you can get unemployment, get it. If you can find part-time paid work as an employee, take it.

      If, after looking at this list, you see you don't have the resources to pull it off, maybe it's because succeeding in business is more than just "doing a job." Perhaps it's because now is just not the right time for you

    8. Re:Contracts are premature by tomhudson · · Score: 1

      No offense but you seem to be describing the brute-force approach to being self-employed. Surely there's a better way which doesn't rely on the 'meet 1000 contacts, get one job' approach?

      If you meet 100 people, 1 of them might have work for you in the next year - but do you really want to wait 11 months to find out? Besides, if you're not working on stuff for a customer, WTF aren't you out there hustling for more customers?

      When you're freelancing, you should be in continuous job-search mode. You never want to be in the position where your livelyhood depends on only one or two customers.

      I've trained a few people in what you call the "brute force" approach. There's a lot more to it than just hitting your daily numbers - but that's an important part of it. It works.

    9. Re:Contracts are premature by tomhudson · · Score: 1

      Better to know what you're getting into up-front, and what can increase your chances of success, than to be all wishful thinking and not have a plan.

      We're heading into what will probably be the worst recession / depression in 80 years. The time to hunker down, put your nose to the grindstone, etc., is now, not a year from now when you realize that the "I'll just wing it" approach isn't bringing results.

    10. Re:Contracts are premature by zr · · Score: 1

      fantastic post, i'm going to save it for my future reference.

      the only thing i'll add is, contracts are never premature. working without a contract is inviting BIG trouble. you do not work until you have a signed contract. EVER.

    11. Re:Contracts are premature by Lumpy · · Score: 3, Insightful

      a decent camera and/or camcorder

      A decent camera is a SLR with at least a $700.00 lens.

      A decent camcorder starts at $1500.00

      Anything less is crap quality. If you dont have a full studio flash kit with lightboxes or umbrellas, you will be taking crap photos.

      That said. I know of several web-design firms that do NOT have decent quality cameras and camcorders. they hire photographers and videographers for that work. you're a webdesigner not a photographer or videographer. If you try to do all three yourself, you will suck. Plus it's cheaper to farm out the photography.

      I know, my side business is photography and videography. I am an award winning photographer with many published photos. I also am an event videographer that produces stuff that local TV stations cant compare in quality to.

      I have nearly $50,000 in gear to do that. and I still get rubbed up against some guy that is "handy" with a camera and trying to quote at 1/4-1/8th my price. One client called me 4 hours into an event begging to pay me 3X my rate to come in and replace the idiot with a Olympus point and shoot they hired instead of me. he was walking around taking photos like a tourist.

      Know what the hell you are doing and have a portfolio put together. Find a skilled photographer and video guy to partner with to farm out the work to that you trust.

      --
      Do not look at laser with remaining good eye.
    12. Re:Contracts are premature by hesaigo999ca · · Score: 1

      Well ....having some points I would have given you very insightful, however,
      you have to leave some room for the newbie to grow and not get discouraged.
      I agree 100%, however telling someone they might not be in the right business,
      could be killing a dream before it has begun. I am a web developer too and even
      after years of working in the field as private contractor, I still have a few points
      missing from your list, yet I still make money, and still continue to work.

      I believe your plan is what you would plan for if you were a
      bigger company trying to stay afloat , not necessarily just trying to make extra bucks on the side
      keeping a separate day job. Some companies start like this and grow, then need to up the ante to make things really take off.

      I do agree, but keeping it low key for the beginner is ok too, as it might become over tough to have 20 contracts all of a sudden, with no employees and no time to do them all. Better to go slow at first to see what he likes , if he likes, and if he needs help.

    13. Re:Contracts are premature by tomhudson · · Score: 1

      If the original post was about doing some work "on the side" while keeping their day job, I'd agree, but this is someone who is unemployed and eeds to make this bring in a living wage on a regular basis, not "casual labour."

      If they don't plan, they could easily find themselves wasting months that, a year down the road, could spell the difference between eating at home or living on the streets. It's called a depression, and we're probably headed into one. 25% unemployment is ugly.

    14. Re:Contracts are premature by PainKilleR-CE · · Score: 2, Insightful

      This is a good point. My last employer put me on unpaid leave for a week (undetermined period of time when it started), and it instantly became my new job to find a new job. I spent a minimum of 8 hours a day when I wasn't getting paid looking for a new job. Even though I went back to work a week later, I turned in my 2 weeks notice a week after that. If they hadn't brought me back in to work, it was likely that I would've had 2-3 weeks without a paycheck, plus another 2-4 weeks before my first paycheck from the new employer came in.

      There's no reason to waste time when you're not getting paid for your time. If you're going the route of independent contractor, even if it is only temporary, your only job is to find yourself work, and there's no reason not to spend at least 40 hours a week doing that if you have no other work to do.

      --
      -PainKilleR-[CE]
    15. Re:Contracts are premature by hesaigo999ca · · Score: 1

      This I agree, and I had not read the part about being a full time deal....
      yet as stated before, I would use your check list myself,
      being a vet. of web dev. ....as it is very complete! : )

    16. Re:Contracts are premature by DougWebb · · Score: 1

      In Sales, this is called 'filling the pipeline'. As an entrepreneur, you're the company salesperson, so you have to do sales-related work. (See The Development Abstraction Layer.)

      Your jobs as an entrepreneur fall into four categories:

      1. Jobs you've completed
      2. Jobs you're working on now
      3. Jobs you've gotten but haven't started yet
      4. Jobs you haven't gotten yet

      You don't want to wait until categories #2 and #3 are empty before you start working on category #4, because it can take a long time for a job to move up from #4 to #3. You've got to work constantly on #4 to keep #3 full, so that when you're done with #2 you'll always have something billable waiting for you in #3.

      This goes for every self-employment field. For example, my wife is a Real Estate Agent, and she works almost exclusively by referrals from past clients (category #1.) She's got homes that are currently listed, and buyers that are currently looking for a new home (category #2). Every month she sends out mailings, makes phone calls, and does in-person visits with past clients in order to keep in touch with them, to generate referrals and turn #4 into #3 and #2. This works really well; at least once a year she'll have an active buyer who's looking for something specific, and one of the potential sellers in #3 has a perfect match. She'll be able to go to that seller and say "If you're still thinking about selling your home, I have a buyer who I think would be very interested in making an offer." This often converts a potential seller into an active listing, and the offer goes through right away, eliminating most of the marketing cost of listing the home for sale. (Saves the seller money, and they don't have to live for weeks/months trying to keep the house spotless and having strangers visiting and walking through all of the time.)

    17. Re:Contracts are premature by Anonymous Coward · · Score: 0

      jesus dude.

      I have two properties, Glengarry Highlands and Glen Ross Farms, that I would like you to sell for me.

    18. Re:Contracts are premature by Canberra+Bob · · Score: 1

      Having done freelance web dev work and having the artistic talent of a brick, my approach was to avoid all graphics work entirely and outsource the lot to a professional graphic artist that I had worked with in the past and knew that his work was excellent. I would then pass on the cost at cost price to my customer. It definitely was not cheap, however I learnt the hard way that dealing with customers who were not prepared to pay professional prices generally meant they had no idea about the true cost of what they were asking for and getting any money at all from them was near impossible.

    19. Re:Contracts are premature by Lumpy · · Score: 1

      Like the client that shows you the Nike.com pr pepsi.com website and says...

      "I want something like that."

      and then expects that it will only cost him $80.00 and you can have it done in 3 days.

      Yup been there. I told my webdeveloper friend on one shoot that I'll leave right now, as this client has no clue and is not going to pay the photography bill. He convinced me that all was ok, and they guy was just quirky.

      3 hours later and a $1500 Photography bill from me and the guy freaked out.

      "My kid would have done this for $50.00!"

      I left and my buddy was stuck paying me 1/2 rate because I'm a nice guy but I have to pay the model and the gear costs. The client never paid a dime.

      I checked a year later, that client has a mostertemplates.com template website where some handy with the internet person changed the text only. It was a horribly hack job.

      I now require webdevelopers to tell the client how much the shoot is when I show up, or I'll tell them. The client quits acting like some self important idiot and actually listens to me when they are paying upwards of $250 an hour for me to be there. "I get paid if I stand here drinking coffee or if I am shooting.",is what I say, and that usually makes them pay attention instantly, the ones that dont... well they pay a whole lot more than everyone else.

      --
      Do not look at laser with remaining good eye.
  63. Re:Learn jQuery - Good grief... by elefantstn · · Score: 1

    Of course, once you add in the overhead from those frameworks, PHP isn't any faster anyway.

    --
    If it ain't broke, you need more software.
  64. Re:Learn jQuery - Good grief... by Kent+Recal · · Score: 0, Troll

    A horse with lipstick on is still a horse.
    PHP is dead, get over it.

  65. Public Service Announcement by tomhudson · · Score: 2, Funny

    You all seem to be misunderstanding what Web *Developer* means.

    Please stop referring to writing HTML and/or CSS as 'coding'. Thank you.

    Web Developer: Knows how to code in several server-side programming languages, including at least one (and more likely all) of the "p" scripting languages (php, python, perl), how to interact with one or more database backends (mysql, postgresql, oracle, etc), client-side programming languages (javascript, including XHR, JSON, etc); Knows the quirks wrt css in most browsers, knows what a DTD is and uses "strict". Must be able to maintain a test/development server, with version control, as well as maintaining the production web site. Codes to standards-compliant browsers first, then ports to IE, using the magic incantation "Fucking Internet Exploder" as many times as necessary - or more. Probably also knows Java, may also know C, C++, C#, assembler; can ssh to the dev box as necessary, scp files, uses svn or git, has strong opinions about sml, the vi vs emacs wars, knows what a LART is, and isn't afraid to use it.

    Web Monkey. "I know Photoshop and/or Dreamweaver and/or Frontpage, and I can drink just as much coffee as a real developer. HTML is too coding! I copied this javascript to do mouse rollovers - isn't it cool? Wait until you see what your site looks like when I do it ALL in Flash. Firefox? No, I use Windows." Sometimes targeted for LARTing by bored Web Developers.

    This has been a public service announcement. Please resume your usual trolling^Wdiscussion

    1. Re:Public Service Announcement by Anonymous Coward · · Score: 0

      I think the definition here is better
      http://forums.thedailywtf.com/forums/p/9553/178343.aspx/

    2. Re:Public Service Announcement by theredshoes · · Score: 1

      Your PSA is true. I would like to be a web developer but I am sadly sometimes a web monkey. And I didn't design for much money when I did freelance work. A ballet school, drug testing facility, some free sites for people I knew. It was really content management if you think about it. I am trying to work on my back end skills but I don't have the time with being in school but after I graduate I will be able to get my skills up to date again. And Linux, I don't have a year to devote to learning the ins and outs of such a complicated OS.

    3. Re:Public Service Announcement by Smivs · · Score: 1

      What's wrong with being a 'webmaster' these days?

    4. Re:Public Service Announcement by tomhudson · · Score: 1

      What's wrong with being a 'webmaster' these days?

      Nothing, if you want people to think you're some PFY still living in your mommas' basement. It's become as inflated a term as "sanitation engineer" for garbageman, or "petroleum distribution technologist" for gas pump jockey.

      Go ahead and put "webmaster" on your business cards. It'll help potential clients pigeon-hole you really quickly.

  66. My experience as a freelancer by Nuitari+The+Wiz · · Score: 1

    I've started about 7 years ago under similar circumstances.

    Here is the advice I have to give you:

    1. If it doesn't feel right, don't do it. There are going to be a lot of fish out there, and quite a few of them are bad. Avoid them at all costs.

    2. If it is too good to be true... get a signed contract.

    3. Don't hesitate to fire a toxic customer which kills your motivation. They just drag you down and you'll be better of without them.

    4. If a longtime customer has difficulty paying, work out a payment plan. If a new customer has difficulty paying, stop working for them until they pay all that is due (including unbilled time).

    5. Use a CRM (hint http://www.maximumcrm.com/ ) to keep track of your customers.

    6. Keep track of all the time you spend with your customers, including just having IM conversations. While it may not be billable, it could point to you problem customers, eg those that talk a lot buy don't pay much.

    7. Make your hourly time what you think you are worth. If you try to compete on cost you'll just wish you got a job again.

    8. Make agreements that allow you to show case the work you did and use it as example whenever possible. This is going to be a major problem as you get experiences as a freelancer as a lot of companies don't want to let you use the work you did for them as part of your marketing.

    9. Make backups.

    10. Test your backups.

    11. Use SSH keys instead of trying to remember a gajillion passwords.

    12. Your long time customers are worth gold and will bring you much much more work then elance or other expert marketplaces.

    13. Diversify, don't keep working for just 1 customer. At least have 4 "permanent" customers.

    14. Some customers might ask for a discount if they commit to a certain number of hours per month, or they might want to enter into such an agreement. It does help to limit the fluctuations in monthly income, but you do have to be able to provide for all of your commitments.

    15. Be careful who you sub contract to. Their work will have a direct reflection on yours. If I have a new subcontractor I want to try out, I usually use him/her on a new customer. Always, in any case, handle ALL communications and billing between you and the subcontractors. This is even more true for your longtime customers as they will expect a certain quality to the work you do.

    16. Make backups, again.

    17. Make sure that the flat rate you pull out of your ass reflects the work that is requested. This is unfortunately not always possible, especially if you use Elance for leads. Make sure your hourly rate is in the profile and point it out to the customer if he ever wonders what it is.

    18. Be careful in giving freebies. If you establish a pattern (like billing by the quarter hour), then customers will expect you to keep it.

    19. Keep a separate facebook / myspace account for your customers. Don't post your recent party photos to it!

    20. Keep accurate bookkeeping and pay your taxes. If the tax agency finds you making undeclared money they are going to wait a few years so that you dig yourself a rather large hole and charge you many years of penalties and interest on these penalties.

  67. Pick a different fork in your road by Anonymous Coward · · Score: 0

    So, if you're really at a significant fork in your career's road, can I suggest (no, BEG) one thing:

    Think twice about freelancing as a web developer.

    I also recommend against careers in HR, environmental monitoring and weather forecasting. Each has a nasty habit of being seen perpetually as a cost center that any schmoe can work in.

    I got out of web developing for pay before the dot-com failure for that very reason. It horrified me one day when a nitwit cousin of mine was overheard saying that he was a web developer. Since then, I do charitable or for-a-friend web applications (Drupal), and even at 'FOR FREE' I still bump into people that have a brother that talk them into letting them do the project.

    Pick a tangent and start refining your skills accordingly. Database admins get 6 figures, as do security geeks, cisco admins, firewall maintainers, business application coders (funny, since I dissed someone on another slashdot thread jsut 5 mins ago for thinking that .NET and JAVA were the vast majority of programming), or anything else with a significant barrier to entry and a bit more mystique than web developers.

    I'd be bitter if I hadn't been lucky enough to navigate the above transition so nicely...

    Having said all that, if you insist on being a web geek, here's my advice:

    I have colleagues that bill by the project and by the hour. Client dictates. I also know a couple guys that charge an arm and a leg to clean up other coder's disasters. And another team that makes their money off reasonably cheap websites and overpriced hosting fees. Focus on nontechs local to your area, probably: join the local chamber of commerce or Rotary or whatever groups, make connections with area businesses, and bill like you'll only work 800 hours the first few years.

    Oh, one last comment: the guy that said 'don't bill for learning time' was wrong: I bill for everything because I can figure stuff out that my clients can't and won't. They're clear on the idea that I am a computer geek being asked to come up to speed on some new X.

  68. Adhere to the No!Spec guidelines by LorenzoV · · Score: 1

    The what?

    http://www.no-spec.com/

    This tells all.

  69. Re:After five years of just about paying the bills by Anonymous Coward · · Score: 0

    Yeah. My advice: don't. But then, I think Drupal sucks too.

  70. best practises by dewwop · · Score: 1

    contracts are good. you decide how you want to charge but the best things to do are get half up front and do the work on your own sandbox. if they dont pay you the rest they dont get the files. makes things easier to get paid

  71. bookmark this: unixiz.net by nocomment · · Score: 1

    I know this is likely to get lost in all the comments, but bookmark this: http://www.unixwiz.net/techtips/be-consultant.html

    --
    /* oops I accidentally made a comment, sorry */
    /* http://allyourbasearebelongto.us */
  72. Learn to spot shitty clients before they sign by SlappyBastard · · Score: 1

    My business improved after I made a practice of heavily interviewing clients before they signed the contract.

    Why?

    First, because shitty clients are time wasters. If one clients relentlessly pisses away your time, it hurts your bottom line because that is time that could be spent on other clients, sales, R&D or just good old fashioned self-pleasuring -- all superior even to doing paid work for an ass.

    Second, it will improve your outlook, and ultimately improve you are your work. The best piece of code I ever wrote was the main shopping cart system I constantly resell. It began with a local client who deeply enjoyed participating in the development and debugging of the software, and we eventually expanded the project to include large-scale integration of inventory control, brick and mortar sales and online sales.

    Third, you may spends months if not years with these people. No one should ever have to deal with an asshole lording over them because of money.

    I cannot emphasize this approach enough: interview your clients like you are hiring for the most important job position in history.

    And be prepared to walk if they fail the interview, no matter how much money they offer.

    --
    I scream. You scream. I assume that means we're both acquainted with the problem. We proceed.
  73. Upfront payment by Anonymous Coward · · Score: 0

    What I did is to ask the client to pay maybe 30% of the agreed price upfront. That amount will not be refundable if the client agreed to terminate the project. At least you would have some assurance that your effort will not be wasted for some unreasonable client that just cancel the project.

  74. Freelance web deveopment: a way to earn a living? by walterbyrd · · Score: 1

    I don't know, but it looks to me like I can hire all the offshore web developers that I want for $2 an hour. I have seen job ads for web developers that ask for a bachelor's degree, and loads of professional experience - in several technologies - for $14 an hour (part time, no benefits). I know there a lot of 15 year old web developers, who are actually very talented.

    Frankly, it looks to me like web developers. and web-developer wannabees are not a dime-a-dozen, but a dime-a-gross.

    Correct me if I'm wrong.

  75. Same situation. by BlatOdea · · Score: 1

    I had been building for several years, but only ever for fun. Recently I began doing it as a service for others, and even more recently started actively promoting my services. I bill by the hour, but I've made it a practice to require a deposit before I begin work, as well as requiring clients to maintain a balance to which I can bill the work (thus avoiding being ripped off). I haven't bothered with any contracts, and so far none of the businesses that I've worked with have requested that one be drawn up. Since my references are reputable, they take me at my word. A little trust can eliminate a lot of hassle.

    Sometimes I'll go fishing for clients. If I know of a business that needs a website, I might do up a design and tease them with it. "Look what YOU could have!". It's a good way to grease the wheels with any prospective client.

    --
    Why, if not because?
  76. Invoice Creation and Time Tracking by Anonymous Coward · · Score: 0

    Just a little contribution: gnotime is a very nice little app for time tracking/ invoice creation. Not a whole lot of features, but it does the job, and can create customized invoices.

  77. You will get fucked by Anonymous Coward · · Score: 0

    if you're not very careful. I think the most important thing is to establish a VERY clear agreement on what is to be done and then all the little shitty details how it is to be done. They're the things that will fuck you.

    The typical case would be you putting in effort like crazy and making a technically excellent site. And then in the end get totally fucked by the client because of some stupid, stupid detail they failed to communicate to you.

    Before you write your first tag, have a written contract.And as much as I hate lawyers.... you know, they have one. (or a dozen.)

  78. Re:After five years of just about paying the bills by mdavids · · Score: 1

    I tried Mambo on a few sites a few years ago, one of which got hacked by a phisher within a few months (to be fair I hadn't been keeping up with security updates), so I quickly migrated them over to Drupal, which I had started using once the limitations of Mambo became apparent. I had a look at Joomla! soon after it forked from Mambo. It was supposed to have been substantially rewritten, but I couldn't see any significant differences.

    My most immediate frustration with Mambo was that there was a lot of hard-coded markup that you couldn't cleanly override without hacking the core system. This may have changed in the last couple of years. Drupal's theming system, even at the time, was an order of magnitude more elegant; not necessarily easier, but much more flexible.

    In fact Drupal v Joomla! is not a fair or useful comparison. If you just want a CMS that works out of the box, I'd guess you'd probably find Joomla! a happier experience. If you're a developer or a graphic designer who knows their HTML/CSS/PHP, or if you want to do something beyond the standard features of a CMS, Drupal is for you. It's said that Drupal is an application development framework that just happens to come with a CMS built-in. I was showing Drupal to someone earlier this year and he said, "Hey, this is like Rails!" Moreover much of the recent development in the Drupal ecosystem has been directed towards making it possible to build quite sophisticated database-backed applications without having to do any coding. Someone else once said to me "Hey, this is like Microsoft Access!" (I was a little less happy with this comparison.)

    To return to the subject of the parent post, if you are a one-or-two-person web development shop, and you want to do as much as possible while having to support the smallest amount of code, you can't go past Drupal. For any particular problem it may not be the best solution, but it's a satisfactory solution for a vastly wider range of problems than any other system I'm aware of.

  79. Re:After five years of just about paying the bills by Larryish · · Score: 1

    Good answer.

    Been relying on Joomla pretty heavily since 1.5 came out, might have to check out Drupal.

    Got any instructional Drupal URLs to recommend?



    (Note to all the "justgoogleit" folk: Google presents options, it does not give recommendations.)

  80. opensource invoice software by Iaughter · · Score: 1

    http://bambooinvoice.org/
    I'm not affiliated. I've used the software and extensively used the php framework (CodeIgniter) it's built upon.

  81. Charge a reasonable price. by cogito1002 · · Score: 1

    Yes, use a contract, in case you may not have noticed its pretty much essential. Not using a contract is like having sex with an STD ridden prostitute without using protection. Clients are always trying to screw you and they often leave you with something that burns.

    Also, for the rest of us, please charge a reasonable price. A professional web designer or developer should make $40/hr+ depending on your region. Its a grave disservice to your peers to charge less than this, as it it not an acceptable wage for the amount of work and skill required to design and implement a proper web presence. I suggest buying a copy of the Graphic Artists Guild's Pricing and Ethical Guidelines, it will detail going rates for design work.

  82. It's Not Voodoo by message144 · · Score: 1

    1. Bill hourly.

    2. Contracts will do you no good in the end. Only work with people and companies you trust.

    3. Set small milestones. 1 - 2 weeks is preferable.

    4. Know the technologies you are working with. Don't be a jack-of-all-trades-master-of-none.

    5. Speak good English.

    6. Always deliver on time.

  83. Good Luck by Anonymous Coward · · Score: 0

    All the advice is excellent. Bill by the hour, fixed price whatever, they all have a place.

    The key piece of advice i have is when you engage with a customer put a shitload of effort into your statement of work. Scope creep can be mitigated with a good statement of work.

    Final thing is if you and the client can't agree of time and cost versus fixed price try shared risk.
    Shared risk is that you will deliver the statement of work deliverables for x dollars. If you deliver under that the client pays out 50% of difference to fixed. If you go over the the client pays 50% of the over, essentially covering costs...

    Good luck man.

  84. Clear communication by capsteve · · Score: 1
    i guess it all fucking depends on what kind of freelance web developing you've decided to break into. you don't say what your level of expertise is, but seeing that you're "asking slashdot" some pretty basic freelance questions, i'm going to assume you're fairly new to freelancing, and possibly still have more miles to walk before achieving webdev enlightenment, grasshopper...

    "are there any best practices for freelance developers?"
    i think best practices should apply to any freelance, not just developers...
    first and foremost: communication.
    i think one of the most important tasks is to make sure your client clearly understands what service you provide(and what you don't provide).
    make sure your client clearly explains what they are expecting from you. in writing.
    don't be afraid to state what you are going to do explicitly. if you are just doing site development, make sure you state that you will not expected to input the actual content. or that you are not a content generator. just be clear in your communications with your client.

    "What kind of process should I use when dealing with clients?"
    there's nothing wrong with asking your prospective client to describe in writing the scope of a project. if a client has a hard time expressing the nature of their project("you know, kinda like this, but different... it's hard to explain but you know what i mean"), you might think twice before entering into a business agreement with them. have them put something concrete in writing/email. if they can't do it but you really want to work for them, you should put it into writing for them and request that they acknowledge your interpretation as an accurate description of the project scope.

    "Should I bill by the hour or provide a fixed quote on a per-project basis?"
    this question is open for wide interpretation... it depends on the client and the project. If you have a project that will take 1-2 weeks, you might consider charging a flat project price. if you are going to be engaged in a multi-week (3+ weeks to several months) project, you might consider an hourly rate. you might also consider putting together a rate card for yourself i.e. 1 static html website with 5 pages, hosting setup and domain registration = $500. 1 CMS(joomla, drupal, sugar, dnn) or DHTML website with MySQL/java integration, hosting setup and domain registration = $1500. online store/shopping cart starting @ $1500, depending on merchant solutions, etc,etc... i don't know what your skill set is, but you should be able to quickly answer the question "how much will this cost me?" prepare your rate card in advance of client meetings.

    "What kind of assurances should I get from the client before I begin work?"
    what the hell kinda question is this? are you asking how should you ask to be paid? since you're a freelancer, you should be bold and ask for payment upfront. in fact most businesses use this as a model:pay us first, then we'll give you a computer. are you afraid to ask for the entire payment up front? how about asking them for 1/3 down before any works starts, 1/3 halfway thru the project, and 1/3 at time of final delivery. or how about half up front and half on delivery. WTF, dude, that really depends on your client, doesn't it? smaller companies will pay cash up front, bigger ones will want to issue a P.O. and pay just one invoice. there's no single rule here.

    "What is the best way to create accurate time estimates?"
    if you need to provide an accurate time estimate, you'll spend a lot of time tracking what you're doing. you might actually impact your overall output with too much time analysis. make you time estimate in 15-30 minute increments (if necessary), and err in your favor. if you performed a task that only took 5 minutes to do, charge it out as 15 minutes. establish a minimum chargable amount. you don't have to spell out all the details for how you bill, just make sure you establish your own business rules for billing, i.e. minimum bill

    --
    three can keep a secret, if two are dead - benjamin franklin
  85. What is semantic about DIV? by snowwrestler · · Score: 1

    Three-column layouts are harder, but it can be done in any of those configurations, and without sacrificing semantically correct code or scalability.

    What is the semantic meaning of a DIV tag? I don't think it has any. It's just a tag we stick in the code to make layout easier. Well, TR and TD can serve the same purpose sometimes. It always cracks me up when people talk about "semantic code" and then their page source has DIVs wrapped in DIVs wrapped in DIVs so they can get the CSS layout just right. Web pages mix layout and content--that's just the way it is in HTML. There are only two real ways to separate the two:

    1. A template or CMS system. Your template code is 100% layout, and the placeholder code is 100% semantic. Note that the template can be DIV- or table-based and this is equally true.

    2. A full AJAX interface where the browser loads the interface code first then asynchronously calls for the content. Again--the HTML your javascript engine writes can be DIVs or tables and this is still true.

    People talk about how easy it is to redesign with CSS layout, but the fact is that any real redesign starts back in Photoshop and produces new assets and new code--HTML, CSS, Javascript, and (if you're so inclined) Flash. Then you use your template system to install the new code. I don't know any professionally run Web sites that do redesigns by just uploading a new CSS file. At most a good CSS file lets you tweak paddings, margins, fonts, and colors--but again, that works just as well for tables as it does for divs.

    --
    Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
  86. Whatever by coryking · · Score: 3, Insightful

    The correct answer is you do whatever is within the budget of your client. You and I both know it takes longer to do a proper CSS based two column layout. If your client cannot afford that, do the tables and tell the damn W3C to suck it. Purity trolls have no business in contract work. This is business and you work for your client, not the W3C. You do what is in the best intest of your client.

    And yes, CSS is easier to maintain in the long run, so it might be worth your while to convince your client that it is worth *their* while to pay you to do it right so they can save later. It is an up-front investment that will pay off downline. But if you know they are never gonna expand and you are doing a quick one-shot design an they are a budget... tables all the way!

    In other words, it depends. Just remember, this is business, not advocacy. If you are in it for the advocacy and not for money, you'll never survive. Sorry.

    1. Re:Whatever by Anonymous Coward · · Score: 0

      The correct answer is you do whatever is within the budget of your client. You and I both know it takes longer to do a proper CSS based two column layout.

      Whoa -- either one is pretty quick, once you've done the research/work once and sorted out an optimal layout, then you just have to tweak column widths, etc... which is minor work in either approach.

    2. Re:Whatever by mstahl · · Score: 1

      FINALLY someone on slashdot had the balls to say it.

    3. Re:Whatever by Walter+Carver · · Score: 1

      After some time with CSS you will simply think in

      s. It is true that it takes me about 5% more time to make a table-like layout (because CSS can do non-grid layouts too that would have been impossibly difficult with tables) with CSS today that what it would when I was in my peak as table "coder". But the benefit of having one central location for all styling really covers that extra time.

      As a sidenote to that, have you seen what CSS3 border can do for you?

      You just prefer the old ways, it's a case of YMMV.

  87. Re:Learn jQuery - Good grief... by scuba0 · · Score: 1

    I'm curious since Google uses a lot of python/javascript combinations. I also recall they have some traffic to their sites...

    PHP is nice, but it ain't always perfect.

  88. It depends on the clients requirements, dude. by coryking · · Score: 1

    Look, I'd never use tables for a template based system. But you cannot tell me that it takes the exact same amount of time to do a clean CSS/standards based design as it does a table based one. If you are doing a quick "brochure" site for an art studio with 5 static pages, you are wasting your clients money doing pure, standards based table-free CSS. If they want to you design a template based "the system" to run their business, you'd be insane to use tables.

    The answer is really it depends on what is in the best long term interest of your client. And the depends on their long term goals and their short term budget. If their budget is tight, tables might be better. If they plan to grow the site beyond anything but a brochure-ware site, CSS is the answer--it takes longer short term, but pays off big time as you scale. You also have to factor in that CSS based layouts are much more SEO friendly too. But again, it is a balance between their budget and their demands so it all depends.

    Bottom line is that it depends. Purity has no business in business. There is no hard and fast rules. It all depends. But you really are to be loyal to your client, not some damn whiny slashdot crowd or purity trolls from the W3C.

  89. the type of clients you (don't) need by LM-Els · · Score: 1

    In addition to all the good advice I've read in the replies already, here's a good list of signs to watch out for when attracting new clients: 20-signs-you-dont-want-that-web-design-project It is of course about web design and not web development, but that shouldn't really make too much difference.

  90. That all sounds good by coryking · · Score: 1

    But it wouldn't work with "semantic blah blah blah" or "XML validated screen readers" or some nonsense. Face it, the W3C doesn't work for web designers, it works for people who never did HTML for a paying client in their life. These people have no clue what exists in the real world. They are too hung up on doing it some academically pure, theoretically correct method that has no bearing on what is actually required. It is one of the reasons I think flash and silverlight will become more and more prevalent in the near future. Those guys have to create standards and products that meet the needs of the real market-driven world, not a academically driven standards body.

  91. Impossible by coryking · · Score: 1

    Because they have never actually had a client pay them directly for their services. Their tune would change awfully quick after a client refused to pay for a website that didn't work in the browser used by 80% of the public. Ain't it cute when these naive greens get a taste of the real world? "ahhh, you mean being such a hard ass can't pay for your rent?" Makes me laugh for some reason :-)

    1. Re:Impossible by SanityInAnarchy · · Score: 1

      Because they have never actually had a client pay them directly for their services. Their tune would change awfully quick after a client refused to pay for a website that didn't work in the browser used by 80% of the public.

      Not all sites are public to begin with.

      For those that are, conditional comments and an ie.css file make life much easier.

      --
      Don't thank God, thank a doctor!
  92. Heh by coryking · · Score: 1

    I love the "You can use the same core HTML for both full-bore and mobile" crowd. You guys really think you can use the *exact* same grid and *exact* same menuing for a device that can only display 5% of the text a monitor can will work? Mobile sites require a complete different information architecture that focuses on very different use cases. You have to provide different ways of logging in (for example, 4 digit numaric PIN numbers instead of 8 digit alphanumeric passwords). You have to provide only the most essintail menu options. You have to place your advertising different. You have to give Google a different set of RSS feeds and sitemaps just for mobile content.

    The "follow the standards so it works on any device" is the biggest red herring in the whole web industry. You *have* to specifically target mobile phones, you can *never* just say "well, it follows the standards, so who cares how my RAZR renders it". Sure the RAZR might handle it, but nobody will use it!

    Too maybe people think they understand this shit, but it is obvious the loudest of the bunch never actually *used* this shit to do real work. If they did, they wouldn't be purity trolls and they'd be bitching more about how shitty *HTML and CSS are.

    1. Re:Heh by PCM2 · · Score: 1

      Never thought about how you'd bill for freelance writing. I guess that might be easier to estimate, am I right? I mean, they dont ask you to change the entire plot mid-stream do they?

      Seldom. That is, in my experience they do that far less often than they do in Web development -- where it seems sort of common. :-S

      Estimating is dead easy, but it's a little bit interesting because it's sort of backwards. Basically, believe it or not, the age-old practice of paying by the word is still pretty much standard. Even if a client just wants a round figure, a per-word rate is still how I base my estimate in my mind. But the thing is, the client will say, "We want a manuscript that does XYZ and we want to get it out there at this time and it needs to be about this long." So like I said -- they've just told you how much work and when they want it. Often they will also have a standard rate, so the "how much money" factor is locked, too. Often you're better off trying to push out the deadline than trying to up the rate. But really all you have to decide is yes or no. The only card you get to keep hidden is how long it's really going to take you to complete the job -- and that's how you can tell whether it's going to be profitable for you or not. In that sense, it's kind of like Hollywood accounting -- you could just as easily come up with a per-hour rate, but it's just not done that way. But sometimes you don't even want to hold onto the time card, either -- you can make good money if your clients know you can take an assignment at 4pm and turn it around by 9pm.

      Yeah, it's interesting work -- not least because the business is a little bit weird. ;-)

      But as far as pulling the rug out from under you, no, that's actually uncommon. I've worked on both sides of the editorial desk -- I've been the guy writing the piece and the guy commissioning it -- and often the deadlines are such that even a bad manuscript has to suffice. The thing is, in those situations the client will rarely let you know just how much they didn't like it. Unless you have a really good pre-existing relationship with that client, you'll just never get another job from that client again.

      Is the business competitive? I'll put it to you this way: I believe there's room for everybody. There's enough work. I'll help anybody with promise to get into the field. But the thing is, if you're going to succeed, you need to be better at it than me. And you're not. ;-) That sounds like a jerky thing to say, I know -- but I believe you need to have a little bit of that jerk in you to have enough nerve to stick with it. It's still freelance writing, and nobody ever told you freelance writing was a good way to get rich. If you want to play it safe, get a job at a corporation.

      --
      Breakfast served all day!
  93. Ammendment by coryking · · Score: 1

    Always do hourly, until you understand when a fixed bid might come out better for you. Until you understand when a fixed bid makes more sense for you (as in, makes you more money), never do it. Even then, never do it.

  94. This is all true by coryking · · Score: 1

    But the original poster is a newbie contractor and has *no* business doing a fixed price job.

    You need a hell of a lot of experience (which I even don't have) to really pull off a fixed-priced and come out ahead. There is a lot of ways to win, but even more ways to loose. You need the experience to really know when you will win and be willing financially and mentally when the gamble you made comes out wrong.

  95. That said by coryking · · Score: 1

    In 2006, Quickbooks "real" edition came with a cute little utility that let you clock in and out then import it into Quickbooks to create invoices. Dunno if they still include that as I've been running it as a Windows XP guest under VMWare in Vista since they decided to charge full-rate to "upgrade" to 2007 which "works with Vista". Bastards :-)

    The online edition is cool in theory, but honestly I think the "real" software was worth the price.

  96. Pro-Tip by coryking · · Score: 1

    Don't bill fixed until you have the experiance under your belt to know when it is a good deal. Doing it as an novice is a sure fire way to wind up making minimum wage. Remember, always remember, you pay your own taxes, you pay your own heath insurance, and you pay a *lot* of shit that your employer used to pay that you now pay yourself. Too many newbies dont get this and consequentially bill *far* lower then they should. Do *not* fall into this trap. $100/hr isn't as "OMG that is a lot" as it might seem. $40/hr might seem like a lot as an employee, but if you do the math, that is quite literally minimum wage as a contractor. At that rate you'd very seriously be making as much as you would working at McDonalds. And by "literally" I mean literally and if you don't belive me, do the math in Excel. And if you dont own a paid copy Office running on a working copy of Microsoft Windows, stop now and work for somebody else, seriously. Software purity doesn't pay your bills and thus has no business in your life anymore. So ditch the "OMG Linux and open source only" attitue now so you can pay your rent mext month. You run a business damnit, and Excel (and a paid copy of Photoshop) are tax deductible tools you need to perform your job in a cost effective way for your clients.

    PS: Do *not* underbill! Do *not* underbill. Do *not* underbill. And fixed price is a surefire way for you to underbill!!! To *not* do fixed price. You just aren't *there* yet. Trust me. Do *not* underbill and do *not* do fixed even if your client keeps trying to pressure you into it (and honestly if they do, you really dont want them as a client... part of this business is learning when to *not* take on a client)

    Good luck. Just dont underbid. And always fucking withhold your taxes, which is another newbie mistake (which is a symptom of the the "dont underbill" issue, trust me! :-)

    1. Re:Pro-Tip by kchrist · · Score: 1

      And if you dont own a paid copy Office running on a working copy of Microsoft Windows, stop now and work for somebody else, seriously. Software purity doesn't pay your bills and thus has no business in your life anymore.

      I disagree. Working for myself means I can choose the environment I work in, and doing web development means that I, for the most part, don't need Windows.

      Of course I keep a copy of WinXP around as a VMware image for testing sites in IE6/7, and I have Office for OS X for opening the occasional Word doc from clients, but that's literally the extent of my Microsoft use. Windows brings absolutely nothing else to my business that I can't get on my Mac laptop and Linux servers.

    2. Re:Pro-Tip by TheSpoom · · Score: 1

      Agreed, and honestly, Linux is better for development, especially web development. SVN was built for *nix. Perl is native to *nix. Apache is native to *nix. PHP is native to *nix. MySQL is native to *nix. GVFS lets you edit files on a remote server directly. OpenOffice can output Word / Excel documents, though for Word docs I usually send both a .doc and a .pdf for nigh-guaranteed compatibility.

      Ultimately though, work in the OS on which you're comfortable. All these things can be achieved through third party apps on Windows (even the FTP thing... look into WebDrive). If you have the time to try something new, though, install Ubuntu and give it a spin. I know my productivity is up because of it.

      --
      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
    3. Re:Pro-Tip by Anonymous Coward · · Score: 0

      Just as an anonymous note, I'm about to do my first serious web dev contract job, I'm doing it fixed-rate, and I have no plans to own or use a copy of Windows, Excel, Photoshop, or any other closed-source software. So there, nyah, whatever, etc.

  97. and yes by coryking · · Score: 1

    I had guests over and thus had a bit of wine. But dammit, your "ask slashdot" is too much for me to resist. Hope you can parse my nonsense :-)

  98. PPS by coryking · · Score: 1

    And if you haven't yet, make sure you are an LLC or an INC. Personally I'd go LLC cause it is easier, but if you are unsure, seek professional advice. Always make sure you bill your clients as your business, not as yourself. You want that legal protection.

    If you are geek like me and your state is cool like Washington State, you can usually file paperwork online and get your business license in a few days. No fuss, no law guys, no nothing. If your state isn't cool, well, sucks for you :-)

  99. To those who read this be forewarned by Anonymous Coward · · Score: 0

    That the poster is making money in a bit of a different way then straight contract work. It sounds like you are doing more of a retainer then straight contract work.

    $50/hour ain't much for straight design work, I'm afraid.

    1. Re:To those who read this be forewarned by Fished · · Score: 1

      It's kind of what the traffic will bear... I mostly do websites for small businesses in a rural area. And it's just extra money--my day job pays the bills.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  100. It sure ain't by coryking · · Score: 1

    But to be quite frank, I lost all faith in any open source business application after I tried using Zen Cart. Those guys fucking deleted the *god damn row from the database* when you removed an order!!! Now I ain't no lawyer or professional accountant, but I do know you *never remove anything from the database unless you are planing some scheme to commit fraud!*. Hide it, yes, but you don't delete the fucking thing forever!

    After that experience, I will never trust open source business apps again. I would rather pay for software that is designed by people who understand the legal and accounting requirements of running a business. I pay them to keep my ass out of jail. Zen Cart, in the worst case, could land some pour soul in a world of trouble after it nuked some assholes order. Who would you blame?

    But yes, Quickbooks isn't the worlds best software. But the point really is you should be prepared to pay for software. Paying for software is a sign you've "arrived" as a professional. Be proud of the fact you pay money for something that helps you make money. It means you are professional and wise.

    1. Re:It sure ain't by Anonymous Coward · · Score: 0

      I do not agree that "paying for software is a sign you've 'arrived' as a professional". I've encountered plenty of expensive "professional" software that is every bit as bad as the example you mentioned in ZenCart and often worse (which may have inherited it from OSCommerce btw, but that's not an apology, a problem is a problem). Just because it costs money doesn't mean its worth it.

      MS Excel is one that comes to mind. It has (had?) plenty of bugs even with simple arithmetic. I may be dating myself here, but dBase4 launched with somethig like 50,000 known bugs. I still have a copy of Microsoft Bob. Lotus Notes historically has been a good one. Plenty of microsoft apps have in the past hosed files under the right conditions.

      Heres a list of notable bugs/problems in very expensive software including one that killed at least 5 people.
      http://www.wired.com/software/coolapps/news/2005/11/69355

      The point is, condemning an entire class of software because of a single potential problem you encountered isn't something i'd suggest for everyone. There are plenty of examples in the class of software you've excluded that are the best in ther category or far more stable/advanced than proprietary offerings.

      The important thing is to understand your needs, resarch the offerings and perform an appropriate due dilligence before deciding on a specific solution. At least in the case of Zencart you could see the source to verify the behavior and i'd bet with a little work prevent that from happening. (Maybe alter the delete to a delete/insert into deleted table.)

    2. Re:It sure ain't by Timothy+Brownawell · · Score: 1

      But to be quite frank, I lost all faith in any open source business application after I tried using Zen Cart. Those guys fucking deleted the *god damn row from the database* when you removed an order!!! Now I ain't no lawyer or professional accountant, but I do know you *never remove anything from the database unless you are planing some scheme to commit fraud!*. Hide it, yes, but you don't delete the fucking thing forever!

      How did you come by this knowledge?

    3. Re:It sure ain't by Anonymous Coward · · Score: 0

      Paying for software isn't the problem. Paying unnecessarily, or paying for something that is less suited to your particular needs than something cheaper/free, is stupid.

  101. Real-Life Cautionary Tale by PCM2 · · Score: 2, Interesting

    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.

    My best friend Ryan had this problem when he started his own Web design business. He would give good rates to friends, but the problem was that his rates were so low (and he didn't charge a penalty for change orders) that they didn't mind throwing endless changes at him -- without adjusting the deadline, mind you. He ended up working round the clock for these so-called friends, literally giving up sleep so he could deliver what he promised. The shame was that most of the work was crap -- your basic logos and Web pages, nothing he'd really want to add to his portfolio.

    But the real downside is that he ended up with severe, crippling Repeat Stress Injury in both arms. That's right -- he worked so long and so hard on the computer that he literally crippled himself. For a year or more he was in so much pain that he'd have to spend entire days bedridden, popping horse tranquilizers. He tried every treatment possible -- every kind of pill, massage, acupuncture, etc. -- everything short of surgery. Just to give you an idea, if he took a girl out on a date he wouldn't be able to open the car door for her because it would mean he'd lose another day due to pain. He'd have to ask her to open his door. The bottom line is that the only way he could wean himself back to health was to walk away from the computer -- probably forever. He still does some design work now but he relies heavily on assistants and he knows better than to push it.

    I used to joke that he got himself into this position because he didn't charge enough. But I was only half kidding. And think about this, too -- because Ryan was self-employed at the time, he wasn't eligible for workman's compensation or state disability. You bet he moved back in with his mom. Not everybody will be so lucky.

    --
    Breakfast served all day!
  102. Use existing resources by wasaty · · Score: 1

    Excellent site for all freelancers, but web developers especially: frelanceswitch.com.

  103. Try and find a community of freelancers by Anonymous Coward · · Score: 0

    It helps when you're working on your own to discuss issues with people in the same position as you.

    lots of good advice here: http://www.workalone.co.uk/wiki

  104. never do fixed price ever by Anonymous Coward · · Score: 0

    Unless you're a basic web monkey and not doing any programming, never ever ever ever do fixed price. Basic perl,python, php, ruby web site programming you can probably get away with doing fixed priced maybe. Otherwise though you will get burned on hours. Clients never give you complete requirements up front, ever, making any estimates you do erroneous. Always at least double the hours of what you expect for any estimate. In the end you'll be better off working full-time instead if you go fixed price.

  105. That is great in theory by coryking · · Score: 1

    At least in the case of Zencart you could see the source to verify the behavior and i'd bet with a little work prevent that from happening.

    But could I bill a client to not only make that database-affecting patch, but bill them to play open source politics to get that fix pushed into the mainline ZenCart codebase?. And trust me, I can fully expect a *lot* of politics involved to get them to accept a patch which changes makes a change to the DB schema and affects how orders are removed.

    So since my client won't pay for that, can I get them to pay for the continual application of a database-affecting patch every time ZenCart releases an update? Hmm... I doubt it, and quite honestly I really dont want to do it even if I get paid for it. What a pain in the ass!

    So basically, your solution is a non-starter. I dont play open source politics unless it is worth my non-billable time. FreeBSD is worth my non-billable time and I've contributed many ports and patches to them, but ZenCart just doesn't make the cut I'm afraid. I'm certainly not inclined to play open source politics for quickbooks-like accounting packages, that is for sure. The last thing I want to do with my non-billable time is accounting!!

    1. Re:That is great in theory by skarphace · · Score: 1

      But could I bill a client to not only make that database-affecting patch, but bill them to play open source politics to get that fix pushed into the mainline ZenCart codebase?. And trust me, I can fully expect a *lot* of politics involved to get them to accept a patch which changes makes a change to the DB schema and affects how orders are removed.

      Can you bill your client for the price of the proprietary software? It's really the same thing. Time or money.

      --
      Bullish Machine Tzar
  106. Heh by coryking · · Score: 1

    (and yes, again, nice diner party + wine + 12:40am + fun thread = messy writing, sorry)..

    Never thought about how you'd bill for freelance writing. I guess that might be easier to estimate, am I right? I mean, they dont ask you to change the entire plot mid-stream do they?

    Hmm... I majored in tech. communication (i.e. technical writing). Never thought how you'd bill for that kind of work :-)

  107. Re:Freelance web deveopment: a way to earn a livin by Anonymous Coward · · Score: 0

    Go ahead, walterbyrd, hire a whole nerdery of offshore developers for $2 an hour and see where it gets you. They may even speak English, though the ones that do, usually in India, generally start at $25/hr.

    Since you know so many 15 yr old very talented web developers why don't you start a firm, you can skim off the top and spend your day calling their cell and leaving messages while they are in gym class. Then when they are 18 and start having to pay rent and charge a living rate, you can fire them.

    You get what you pay for, professional freelance web development rates in US and Canada start at $30/hr for complete beginners that intend to stay in business and top out around $85/hr in my experience. I guess it's a living, as it has supported myself, my wife and two kids for five years now. I regularly pass work along that does not fit my schedule. Right now, in this time of economic troubles, I am turning new work away. My clients are good people who work hard and know the value of their time, as am I. I could make more $/hr in software engineering, but this way I don't work in a cubicle and don't do deadline death marches.

  108. Re:Learn jQuery - Good grief... by FyRE666 · · Score: 1

    I think you'll find that Google's search engine doesn't run on Python...

  109. Very Important if you want to make money by Whuffo · · Score: 1
    Something that hasn't been stressed enough - you need to define what service you'll be providing in detail and in writing. Write a complete specification for the project; this not only protects you from "just one more little change" but it also protects the customer because clear expectations have been set up front.

    Most of your customers will be reasonable, but some will not. About 20 percent of them will try to get everything and get it for free; you can either let them run you over or take precautions beforehand. Consider a simple example of a spec: "A drop down list containing up to 20 items will be provided". What this means for you as the coder is that you have to supply that drop down list, and it has to be able to contain up to 20 items. Get that right and you get paid for doing what you promised. When the customer says "but I really need 48 items in that list" then you can point to the spec and let them know that if they need 48 items it'll require an additional payment.

    There are some who will suggest that a handshake and a promise is all you really need. I'm very happy for those people that their lives are sunshine and puppies and it never rains. But those who develop in the real world will find that you can never really complete a project because the customer is revising their needs as you code. No matter what you do it won't be right and when you recode to the latest need it'll be wrong, too. It's great if you want full time employment but good luck getting paid for all the time you spent.

    Now if you want to spend 40 or 80 hours coding and get paid $100 for your time - and don't mind being stiffed 1 out of 5 times - then just ignore that spec and code to their whim. You might even make a little bit of money.

    But if you are serious about developing to make a living then you need to take care of business. The hour or two you spend on that design spec up front that you and your client sign is nothing compared to the hours of free labor you won't be giving away afterward. And your client will appreciate knowing up front just exactly what they'll be getting and how much it's going to cost them. And when those inevitable questions arise afterward - there will be a clear measure of what constitutes a completed project and how much the client is obligated to pay for that completed project.

    You don't have to have a tightly-puckered contract for them to sign - but you do need to specify clearly what they get and what they pay for it and get them to sign it before you do one bit of work. If they object to signing then wish them a good day and send them on their way.

  110. Re:Learn jQuery - Good grief... by scuba0 · · Score: 1

    I didn't say that, I said a lot of their sites uses python and get a lot of traffic, one example is code.google.com.

    You can read some of it here if you like:
    http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm

  111. file quarterly income tax estimates by zdburke · · Score: 1

    If you're in the US, don't forget to file quarterly income tax estimates. Your employer used to do this for you on every paycheck (that's why you file a W-4) but now it's your responsibility. There are penalties if you are late, and the later you are the greater the penalty. gobootstrap.com is a free site that makes this relatively painless.

  112. Specifiy everything by grundie · · Score: 1

    In my experience the most important thing is to document what you are going to do in detail and make sure the client understands.

    Produce mockups of the finished site and any backend admin interfaces. Specify what functionality the site has and be clear about any functionality that is being omitted.

    For example, if you develop a CMS that requires the user to process story images offline in an editor like Photoshop, then make sure the cleint understands. If you don't many clueless clients will assume that the CMS will handle it for them and get upset whent they learn otherwise. If you don't adequately document the deliverables the client will most likely demand changes during the development process.

    Keep contracts simple, specify what you are going to deliver and when and also touch on rights and who will own the resulting IP on the site/code. Do insert something to say that the client cannot withold payment if you are late becuase of something you need from the client. E.g. the code is complete and you need images from the client to let the site go live and they will not supply them. This can be done without scary legalese. The law provides a certain amount of legal protection that you do not need to repeat in a contract. You do not need to mention that you will sue your client if they don't pay, you have that legal right to begin with.

    Accept that you will be learning as you go along. You will encounter bad clients, but you will learn from that and know what sort of clients to avoid in future.

    Also, be very careful about tax! Be honest and keep money aside to pay it when due.

  113. Re:Learn jQuery - Good grief... by Jane_Dozey · · Score: 1

    But you'll also find that Google makes extensive use of Python for various projects and lists it as one of their 3 'official languages'.

    PHP certainly has its place but so do a lot of other languages. Use the best tool for the job and don't be afraid of mixing technologies.

    --
    Silly rabbit
  114. Gnucash. by mikelieman · · Score: 1

    I've never had to fuck around with (open source) Gnucash to cut an invoice.

    Invoice,
    Post,
    Print to PDF.

    --
    Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
  115. CHARGE ENOUGH! by Scratch-O-Matic · · Score: 1

    When I first started out (supported by a working spouse, and I now have an unrelated full-time job,) I started with ridiculously low hourly fees. There are two reasons to charge more than you may think you should at first:

    - A fairly high rate implies quality (think about it...if you were a big company making a corporate web store, would you hire somebody charging $10 an hour?)

    - You have expenses that your employer used to pay: taxes, insurance, overhead, etc.

    Here's my recommendation: pick an annual salary you think you are worth, in thousands. Then divide by two, and that is your approximate hourly wage. For example, if you think you are worth $80k per year, then divide 80 by 2 and get $40 per hour that you will pay yourself. NOW, double that amount (minimum...maybe 2.5 or 3 times if the numbers make sense for your case,) and that's what you charge the client. This pays for all your expenses, and also helps account for the fact that you almost certainly will not be filling your days with paid work.

    Last thing: actually pay yourself that $40 per hour. Everything else should go for growing your business and paying taxes (not in that order, of course!)

    --


    Evil is the money of root.
    1. Re:CHARGE ENOUGH! by Billly+Gates · · Score: 1

      Thats all fine and dandy until you can find someone in India who can do it for $5 an hour. This is the problem I have as many companies are used to outsourcing and now think web design is a minimal wage job. Its something that not Americans should do anymore just like manufactoring.

  116. Absolute musts for contracting work... by Assmasher · · Score: 1

    ...even if it is with people you know/trust and even if the work will be sporadic and/or periodic.

    (1)INCORPORATE - this is easy to do and is inexpensive, fast, and can be done online - pick the structure you want, LLC, corporation, et cetera.
    (2)GENERAL LIABILITY INSURANCE or 'Errors and Omissions' Insurance - I cannot stress this enough - if you accept a contract from a company who in any way has the ability to hire a lawyer to bring suit against you for any reason - GET THIS INSURANCE. Many corporate contracts require you to have this insurance in any case.

    Use a service like LegalZoom (there are several that I'm aware of) to incorporate. This separates your personal assets from your 'corporate' assets. This can cost less than $200.

    Obtain general liability insurance. There are two primary reasons to obtain this - First, many companies who deal with contractors in a professional and reliable manner will require you to have it (unless they know you in which case they may waive this in your 'master services agreement' or whatever contract you establish with them (if there's no MSA, often you'll have a per-project contract but that's a real pain in the a** if you're going to be drinking from the same cow over and over...)) The second reason is that, quite often, for the rate of less than $200/month (and possibly much lower depending upon what you elect), the insurance will potentially offer legal services for you to partake of free of charge should you be sued.

    Now, as for being sued. It doesn't, in my experience, usually happen to an individual in a project/contractor environment unless you actually deserve it; however, if you contract for someone who are themselves subcontracting to a company - you're in the land of the blame game. Be covered.

    These are two simple things that will let you sleep at night.

    Good luck!

    --
    Loading...
  117. Re:Quickbooks by Anonymous Coward · · Score: 0

    Who in god's green earth would hire you? "STFU", "Hippie Charity"? You sir, have the tact and business sense of a rabid weasel, and you should probably consider a career in after hours cemetery landscaping. That is the career that best suits your unique people skills.

  118. The warm fuzzy feeling by slinkp · · Score: 1

    Lots of practical advice in this article

  119. take your best time estimate and double it by peter303 · · Score: 1

    I much rather be like Scotty on Star Trek who always complains it will take a while to fix the problem and comes back sooner than expected with the fix. In many projects, especially shorter ones, the overhead of negotiating the contract, determining the design, installation, fixing bugs, training customers, etc. can be as long or longer than writing the software.

  120. Re:Learn jQuery - Good grief... by SanityInAnarchy · · Score: 1

    What a load of rubbish - have you ever seen just how slow Ruby sites run with any sort of significant load?

    Only if you don't know how to scale horizontally. Have you seen just how fast Ruby sites run with an appropriate amount of load?

    Yes, I have used all 3 in commercial projects - have you?

    Appeal to authority -- yes, I have, but that's irrelevant.

    If you're having to code up 20k of CSS and AT LEAST the same amount of markup (probably a lot more) to emulate something that already works, and works realiably,

    Then you're not doing what I suggested.

    how many sites do you actually "tweak" after it matches the visuals?

    All of them. Especially during development. When have you had a customer stick to the same design through the entire development of a given site?

    Tables have their place in the real world. Stop being elitist about it.

    If we stop, this problem will never go away.

    --
    Don't thank God, thank a doctor!
  121. Quickbooks alternative by Nerdposeur · · Score: 1

    FYI: Less Accounting bills itself as a simpler alternative to Quickbooks for people who hate Quickbooks. I haven't used it, but I would take a look if I were in the market for accounting software.

  122. Freelancing Sites? by Anonymous Coward · · Score: 0

    What about sites like elance or guru? Anyone using them for their freelancing work?

  123. Confusion Doesn't Help by EgoWumpus · · Score: 2, Insightful

    I have to disagree with much of your post, as you're conflating a number of (yes, related) issues - such as how to live frugally versus how to be a freelance web developer.

    More importantly, right off the bat on your first remark, you've told the person that, in all likelihood, they've earned an 'F' because they don't know their market, and that is that. I mean, that line (and most in this post) read as though they were taken straight out of a 'how to' book on business - and not the freelance Web work they're looking at. If the poster wanted that, there are plenty of places to go.

    To my mind, the most important adage is "Don't train, do." You can spend a lot of time on the various points suggested - market research, for instance, or cold calling businesses, or making business cards. But there is a core to the business - doing web development. Figure out what the bare minimum is for that, and get going. Every moment wasted on anything else is moments you're not getting paid. Why sit around trying to think of ten good reasons someone shouldn't hire you? And what to say? The best reasons someone won't hire you will come up when they don't, and the best rejoinders will come with practice.

    The point is that no one, out of the gate, has really any of this. You can go from zero to a successful business, but you're asking them to plan on plenty - when in all likelihood they should plan on nothing, keep an eye out for why they fail the first ten times, and learn to adapt. That is the learning curve that is needed - not how many business cards they need, or how to see fifty clients a week (which, by the way, good luck - that's ten clients a day, which is highly unlikely even if you can find them). If the person in question wants to be a salesman, then by all means, go that route. If they're going to be a developer, then they need to develop.

    To my mind, there are three important pieces that all else are subordinate to:

    1) Be capable. Know what you're trying to sell. You may fail to sell it, but that will get you farther than if you sell something you fail to be able to deliver.
    2) Have something to show. Suits and business cards are all well and good, but if you cannot demonstrate the product they want, they'll see right through you.
    3) Document everything, and review it. People get shafted by not having documentation that proves they did the work. They also lose track of where a project started to fail and why. By documenting (and showing the clients) everything, you not only keep them honest, protect yourself for the future, but you also are able to trace where it is you went wrong, and adapt.

    But all of that aside, if you want to do it, you're ready. Ignore anyone who says otherwise. You may fail - but you'll get over that. Not starting is a far worse fate.

    --

    [Ego]out

    1. Re:Confusion Doesn't Help by tomhudson · · Score: 2, Insightful

      how to see fifty clients a week (which, by the way, good luck - that's ten clients a day, which is highly unlikely even if you can find them)

      My personal best is ~`69 in one 60-hour week; one of the people I trained in my techniques hit almost 150, and was consistently around the 100 per week mark. It's not that hard, once you learn the essentials - which are:

      1. Go in
      2. Be easy to talk to, but remember, this is NOT a social call.
      3. Get the name of the person you need to see
      4. If they're available, see them.
      5. If they're not, thank the person you've talked to, leave your business card, and have them tell that person to expect either an email or a phone call within the next day
      6. Follow up that night

      You don't "cherry pick." You see EVERY business in the building, every business on the block. You don't know in advance who knows someone in another business who's looking for just what you have to offer ...

      There is NO reason not to be able to see 50 businesses a week if you're out of work and actively looking. Start at 8AM, end at 6 PM, continue straight through lunch (contrary to popular belief, lunchtime is great - a lot of smaller businesses, the receptionist is out, and one of the owners is "watching the fort". Ditto for after regular hours. I've seen multi-millionaires who've answered the phone after hours while I'm talking with them, and they say "No, he's not here right now. I'm just the cleaner." Being physically present after hours makes a god impression - it shows you're as hard-working as they are. They respect that.)

      most in this post) read as though they were taken straight out of a 'how to' book on business - and not the freelance Web work they're looking at

      The original poster has been laid off. It's not like they're looking for some work on the side ... and we're in a recession that's turning into a depression. If you're going to take the time to do it, at least try to get the odds on your side, right? After all, self-styled "web developers" are crawling out of the woodwork in most areas.

  124. Online freelancing sites my answer your question by Anonymous Coward · · Score: 0

    Hello, I have been through this thingy, I dont see contract is a practical idea for online driven outsourcing. I used to work on sites specialized in Freelancing like www.getafreelancer.com and many others. If you are Europe or USA you will not have a problem in getting your money , as you are able to acquire a PayPal account. for price thingy, it works on bidding system, so ... so my recommendations is , check those online freelancing sites and good luck Samer

  125. Please, Just Don't by l0ungeb0y · · Score: 1

    Look, you are not a freelancer, you are a full-time employee out of a job.

    I can't tell you how many half-assed, half finished projects that I've seen come my way that were created by people like you. Typically, it's some mid to junior level code monkey kicked out of his cubicle that takes some project and then up and leaves for a full-time job offer.

    The client and the project are left in a lurch and typically, the code itself is crap because it was made by a person who is used to being part of a large team and being told what to do and who typically focuses on small portions of larger code. So building a large scale application quickly becomes a cluster fuck for these types.

    Are you a qualified and seasoned software architect? Can you deploy a complete webservice singlehandedly with all parts coded with the same level of skill? Are you willing to pass up a full-time job offer in order to work your project to completion?

    If not, I would say everyone would be better off if you just went to some staffing service and worked as a temporary IT worker. You'll get paid similar to what you were paid before, have benefits and be given the same limited scope of responsibility. Best of all, if you decide to leave for a better opportunity, the staffing service can put another cubicle monkey in your place.

    So please, think of the actual harm you will cause to both your prospective client and their product by taking freelance work when you are really just an unemployed cube monkey looking for a new cube.

  126. I'll back up a little by coryking · · Score: 1

    And say that unix (FreeBSD myself) is a good platform to *target* for contract web stuff. Windows, currently, isn't as cheap or easy for freelance web stuff as *unix. However, call me weird, but I prefer to do the actual writing of code under windows using a windows-based text editor (Eclipse, UltraEdit, or heaven forbid Dreamweaver depending). Depending on whatever, I'll either just use SMB to mount the disk or FTP most of my work. That doesn't mean you can slack though, you will will have to do minor edits via Nano or VI. And depending, I'll be doing version control either via TortiseSVN or through a shell (I wouldn't ever trust SVN over a network mounted filesystem).

    Interestingly, I wonder what it would be like to do development work on something a bit more unixy like OSX. Dunno, bottom line is:

    work in the OS on which you're comfortable.

    And I'll add "But make sure you can work on any OS, cause you'll have to eventually". All OS's suck, just in different ways ;-)

    1. Re:I'll back up a little by TheSpoom · · Score: 1

      FYI, I used to use Eclipse until RSE started having weird bugs; now I'm using plain ole gedit, which actually works really well (it has code highlighting built in for practically every language, and because it's one of the Gnome core apps, works well with GVFS).

      A lot of people say vi is the best tool to use... I have used it a few times and haven't really found it all that great.

      --
      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
  127. Re:Quickbooks by coryking · · Score: 1

    Sorry if I hurt your feelings. I wasn't aware that Slashdot was for grandmothers chatting quietly about the latest developments in the knitting industry. Perhaps you could guide me to a place better suited to boisterous, passionate and foul-mouthed postings like mine would be better suited.

    Again, sorry if I hurt your feelings or offended you. I hope my non-apology will help you carry on with your life in a somewhat dignified fashion. Cheers.

  128. Print? Paper? by coryking · · Score: 1

    What are you, some old-school bricks and mortar business designed by the dinosaurs. Us young kids with our new economy are leveraging paradigm shifting software such as QuickBooks that integrates SMTP based technology that enables us to seamlessly *email* our clients PDF invoices from within our software.

    While your snail mail slow-voices arrive at your client in days, our internet-speed invoices use push technology to instantly bill our clients.

    Have a nice life, gramps. PS: DrKoop is going IPO and I hear it will be huge!

  129. This is all true by coryking · · Score: 1

    But only if you were the first guy to work on the website. The second you have to touch somebody elses 4 table deep, FONT laced goo, it is usually much cheaper to bite your lip and deal with it.... but even then it depends.

    I think the moral is really, it all depends. Just dont have a heart attack if you find yourself using a table for layout every now and then.

  130. Re:After five years of just about paying the bills by Anonymous Coward · · Score: 0

    Drupal has you covered.

    Anything you need to know about Drupal itself can be found in the links on that page. I recommend their beginner's cookbook as a starting place.

  131. Oh yeah by coryking · · Score: 1

    I find myself using conditional comments more and more these days. Wish I had done so long ago. Makes your codebase much cleaner and your life a bit more sane. The only drawback is you have to always remember to touch that pesky ie.css file when you make any kind of breaking change.

  132. Here's how I do it! by Bobb+Sledd · · Score: 1

    OK here you go:

    First, remember your goals.
    1. Make customer happy.
    2. Make a product the customer wants.
    3. Get paid.

    Goal 3 is hardest. So here's what I did:

    1. Define a plan of action; i.e. "First we create a logo and define colors. Next we do consultation. Then we do a mock-up of the site. Finally we break the site out into a working model and upload to the server."

    2. Define rates for different things. I suck at logo creation but kick ass with scripting. So, I define my rates differently. I also define a minimum rate. For example, web pages are $80/hr, minimum 1 hour per page.

    3. If it is a large project, break it up in phases with pay period.

    Phase 0 starts with just talking and an estimate price. I never charge for consultation.

    Phase 1 starts with a mock-up of the site (just drawing it on paper or usually in Photoshop). I keep track of time, but I do the mock-up as many times until the customer is happy. When they are, and this is what we agree on, they pay the first 1/3 of my estimate.

    Phase 2 is when I break the mock-up into a functional web site. As I work, I post it onto a developmental server so the customer can see it. Once it works as agreed on, they pay the 2nd 1/3.

    Phase 3 is publishing, testing, and setting up the host, burning CD's of dev files, etc. Finalizing the project. By now you should know what is owed to you, and bill for the remainder.

    I have found that this model will keep serious customers serious and casual askers away. At most, you'll only ever get screwed out of a 1/3 of the work this way.

    Also, I do keep track of time... but remember - you're the boss. You decide how much it really took, either way. I often give heavy discounts of time due to my own incompetence. :-)

    --
    "They said I probly shouldn't fly with just one eye," "I am Bender. Please insert girder."
    1. Re:Here's how I do it! by jasonmanley · · Score: 1

      Thanks for that. That is a good business model. On the question of Logos however, do you outsource or do you do them yourself? What about the other graphics stuff (backgrounds, icons, side bars etc?) I am like you - I like the scripting but man I just cannot do the whole graphic thing - I need to do a course or something because it really is a serious limitation factor. One way that I have found to deal with the problem is to partner with a freelance graphic designer that I pull in on the job. I then pay them exactly what I would have been paid for the hour to make the logo and then charge it back to the client - but it would be good to be able to do that myself.

      --
      http://projectleader.wordpress.com
    2. Re:Here's how I do it! by Bobb+Sledd · · Score: 1

      Glad you asked. There is more to tell.

      I can do the design part of the web. But I *hate* it. I would much rather code a PHP/database app that the site needs, or make a Javascript/PHP photo gallery, or modify a shopping cart than visually design something... but I *can* do it.

      So, there was this other guy who likes to do the visual part of design, but needed someone to make things "go."

      We were a perfect match. He could sell web sites and drum up business, design the web site and knock it out in HTML, and I could make stuff work.

      That is how it goes when you have it like you want.

      But if you have to design everything yourself, here's how I do it:

      Yes, I offer logo design at a cut-rate, but I warn the customer that I suck at it. If they don't like my designs, I have another guy I can outsource it to.

      Design your web site using PhotoShop. Just draw it like you would like to see it. Make it beautiful. Then use the slice tool and export out as a web page. PS will export all the little pieces and HTML code, and then you load it into DreamWeaver, and knock out the content areas, and you're done.

      I learned that trick from my friend Belen (belen.net, I think). Until she showed me how, I was really doing stuff the hard way, and my sites just looked amateur-ish.

      --
      "They said I probly shouldn't fly with just one eye," "I am Bender. Please insert girder."
    3. Re:Here's how I do it! by jasonmanley · · Score: 1

      Very cool indeed - thanks dude I will try that.

      --
      http://projectleader.wordpress.com
  133. Advice from a Lawyer and former web developer by biagio · · Score: 2, Interesting
    I would recommend the following steps to proper way to structure your relationship with potential clients:
    1. Set up an Initial Meeting
    2. Develop a proposal that client signs off on
    3. Develop mockups
    4. Have client sign off on mockup and sign a final contract
    5. Develop Site
    6. Release Copyrights and Make Live
    7. Provide Maintenance per the contract

    For the proposal, develop essential proposal terms to submit to qualified parties at the conclusion of initial meeting or shortly thereafter. Terms at a minimum should include:

    • total amount proposed (or projected if charging by hour),
    • time frame,
    • target screen size,
    • logo/template development,
    • stock image/font costs,
    • copyright releases,
    • hosting,
    • outline of proposed implementations (Java, Perl, Ruby, php, database connectivity, flash/movie development, etc.),
    • website optimization,
    • maintenance,
    • relocation costs,
    • content updates/timeframes,
    • meta-data implementation,
    • and release/transfer of copyright to design.

    Why are these terms in a proposal, because this is where you: appear more professional and as a result can command higher amounts; provide an avenue to upsell additional services (maintenance, copy {content} development services, optimization, web site submission, online ad buying, etc.); reduce confusion by educating the client about the amount of work to be performed; and set realistic timeframes that all parties can agree with.

    The final contract should detail the process even further and in greater detail but these terms must be specific to each individual developer's requirements.

    Don't rely on what you find on the internet for your contracts. You'll only get what you paid for. The cost of a competent attorney is negligible compared to a potential reduction in liability and the maximization of your earning potential. I've developed different versions of both the proposals and final contracts (both from developer to client and from developer to subcontractors) in the past.

    Anyone interested in learning more please feel free to drop me an e-mail or contact me at my office if you like to inquire about engaging my legal services.

    And now a disclaimer: The content of this comment is only an opinion and not to be construed as legal advice. You should not act nor forgo to act on the basis of the material contained herein without seeking advice from a lawyer licensed in your jurisdiction.

  134. here's what i've learned by systematical · · Score: 1

    I am by no means an expert, in fact I bet I am still doing a lot of things wrong, but here's a few things I've learned so far from a web developer centric point of view: 1. Get clients technical details (hosting provider, php version, mysql version). 2. Take the amount of time you think the project will take and add 50% of that time to it. So instead of quoting them at 80 hours, quote them at 120 hours cause you will most likely go over that 80 hours. 3. Get some business cards (yeah I learned this most recently and felt like an idiot for not having any). I have more on my blog if you checks the profile.

  135. Re:ZenCart isn't an accounting package by ApproachingLinux · · Score: 1

    i'm building a web site for a friend's crafting business and plan to use ZenCart - why is it a problem (from a stay-out-of-jail perspective) that it deletes the row (assuming that there isn't an option to keep it)? from what i can see, ZenCart is an order fulfillment system, not an accounting system, and thus does not provide any payment system - you have to attach something like PayPal. as soon as you're done servicing the order, i would think that the part that's in Paypal (or Google Payments, or whatever) is all you need (for the IRS) = what they ordered and what they paid.

  136. Worse at sharing vertical space by weston · · Score: 1

    CSS is terrible at sharing horizontal space

    Worse at sharing vertical. AFAIK, there's still no cross-browser way to vertically center in or proportionally apportion vertical space in a non-td container that's height dependent on the height of the viewport and/or page.

    Things will get better in the far future where IE8 supports display: table-cell and IE 6 and 7 drop out of the market... so, about 4-5 years from now...

    Furthermore, there are layout problems that CSS is suited for that are still a bigger pain than an equivalent table layout. CSS positioning is a great tool, I'm glad we have it, but it's less useful as a religion. Nothing wrong with keeping tables in your layout toolbox as long as they're used wisely.

  137. It is the attitude that bugs me by coryking · · Score: 1

    You never delete shit. Ever. Then you loose the records of it happening. Fraudsters delete shit. You always hide it. What if the customer or your merchant account comes back several months later and contests the order? How can you prove you canceled an order that is now deleted from the database?

    What if they want to re-instate the order? Who knows what you might want to do with that information! If you delete it, you'll never get it back. If you hide it, you can always pull it up later.

    Paypal or your merchant might have the order totals and stuff, but they won't have the exact line-item invoice sent to the customer--only the shopping cart application will. I've yet to find a cheap shopping cart application that sends the full shopping cart to the payment system. They usually send over the mimimum set of fields required to get an approval or decline and then they are done.

    If the ZenCart developers think deleting an order is a good idea, it makes me question their understanding of the problem domain. What else are they doing that is sketchy?

    Besides, there are other free shopping cart applications out there that work for folks like you or me who only want to sell a couple products. ViaCart is the one I finally settled on. Much easier to use too. It is free for a limited number of products.

    Honestly though, all of them suck in various ways. You just need to pick the one that doesn't suck for the parts you use.

    1. Re:It is the attitude that bugs me by ApproachingLinux · · Score: 1

      thanks for the info - i'm not far enough that i can't change paths - i'll look into ViaCart and see what will work best for them.

  138. The one item I learned from the last 5 years... by sirgoran · · Score: 1

    Of doing freelance work.

    I've been reading what everyone else mentions or offers, but the one missing item from all the advice is to ask for a deposit. While this may not seem like a very good business move, it does show intent and makes sure that you don't put in a ton of time to only have a client back out later, The deposit can cover expenses for client meetings and research into their project. But you need to ask for a deposit, even more so on the big ticket large scale projects of more than a thousand.

    I've had several projects in the last year go belly up. On was a calendar project we were hired to do by a local school. We made the mistake of not having a contract, (Our bad), and not getting a deposit, (again out bad). We figured, "what could go wrong?" the district calendar was a project funded for the last 8years by a local bank. We shopped the project around to several different places and brought the budget in at $12,000, a $6,000 reduction from the year before. We got the go ahead from the school to do the work, and when we were ready to go to print, the bank bailed out of the project. They're now having money problems of their own. The school didn't have the money in the budget, so the project died. And we were out all of the time we spent on the project, plus the money we were going to get paid.

    While we can't hold the school responsible for the bank failing to fund the project, a deposit would have kept us from loosing money. After that point, I started asking for deposits and I haven't had a client bail on a project since. By simply asking for a show of earnest money in the project I can safeguard myself from spending my time on a project that goes nowhere.

    -Goran

    --
    Carpe Scrotum - The only way to deal with your competition.
  139. Inline-block by weston · · Score: 1

    How's inline-block doing these days? I learned about it five years ago, but *Mozilla* didn't correctly support it as of last year. And of course, IE support was, well, limited (only on elements that are inline to start with, doesn't work in quirks mode)....

    1. Re:Inline-block by Mad+Merlin · · Score: 1

      It works in Firefox 3 now, as the quirksmode link would suggest. Thankfully Firefox's adoption rate for new versions is about a trillion times better than IE's, with Firefox 2 numbers now almost vanishingly small. IE's limitations for inline-block are annoying but hardly insurmountable (though I'm not sure about IE in quirks mode, I don't deal with IE in quirks mode).

  140. re: by ikmyer · · Score: 1
  141. my adivce by coryking · · Score: 1

    Would be to just play around with all of them. Dunno if you will be the guy who is adding products and stuff, but if you aren't make sure to pay attention to the backend side of things. All of them handle things like inventory and "t-shirt sizes" or "widget colors" different and you want to make sure your client can manage that stuff on their own. For example, the main reason I choose viacart was that it would track the inventory separately for each product option... several of them (including X-Cart, I think) would track inventory based on the product. So if you had only 2 medium shirts and zero large shirts, the customer could order a large shirt anyway because the system would go "you have two shirts in stock" regardless of the size.

    As I said, they all suck, honestly. Just in different ways :-) Play with them and try to set up a mini version of what you are doing to be doing on production to see if they meet your needs.

  142. Nice Advertisement by Anonymous Coward · · Score: 0

    I'm sure you are being paid handsomely for it by Quickbooks.

  143. Time Management by molex333 · · Score: 1

    try http://www.openworkbench.org/index.php/ to help you out. I think that is a comparable open-source application to MS Project!

    --
    Somewhere in a dark place you will find:
    www.m1
  144. Re:After five years of just about paying the bills by mdavids · · Score: 1

    Outside of drupal.org, the guys at Lullabot have some awesome resources (articles, videos, podcast).

  145. Long lost cousin? by HornWumpus · · Score: 1

    The Wumpus clan shall rise again.

    Ontopic

    I've gotten several contracts from people who supported my projects at regular jobs.

    There is no better way to build business relationships then building projects that work and get done on time and budget.

    If you can do that you won't really need to market yourself (after you get several steady customers).

    You do need one RPC (real paying customer) to start, starting is key.

    To land the RPC you could cold call 50 businesses.

    Or you can call everybody you've worked with (assuming you left a positive impression), even if you don't socialize and aren't particular friends. Let them know you are looking for contracts. Make sure you personal network is aware you are available and looking. Again that assumes you are not an oxygen thief (who are never self aware).

    Don't assume you are going to be delivering turn-key web sights to small business.

    You might wind up subcontracting some particular task for a former coworker who knows you can deliver and is sick of dealing with competent marketers/incompetent developers (the norm).

    You will never land anything but small business with cold calling. Bigger business' has layers in place to keep you from bothering decision makers outside normal procurement procedures. You network is key to getting you access to larger business. Most people have niche industry experience that counts almost as much as developer skill, again your network gets you access.

    The upside of bigger business is more repeat business. Long term business relationships pay mortgages.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  146. Re:Print? Paper? by mikelieman · · Score: 1

    Ever think of attaching the pdf to an email message? Vtiger does stuff like that, but it's got a customization requirement which I thought excluded it from consideration in this instance.

    --
    Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
  147. Re:Freelance web deveopment: a way to earn a livin by walterbyrd · · Score: 1

    >>professional freelance web development rates in US and Canada start at $30/hr for complete beginners

    Now I know you're lying. I live in Denver, and I can assure you that I can hire a "complete beginner" for *way* less than $30 a hour, any day of the week.

  148. Put down the CSS kool-aid by weston · · Score: 1

    I can't believe I'm seeing this argument again. Here. Now. In 2008.

    Well, as long as we're adopting insulting tones...

    It's becoming clearer to me that disbelief at any expression of support for tables as a layout tool may be a sign of inexperience and incomplete knowledge rather than real expertise, and I don't know that I'd ever hire anybody who was dogmatic about this issue. Certainly not at an hourly rate.

    I've coded layouts using pure CSS positioning on literally hundreds of sites from 2004 through this year. I can take nearly any arbitrary design and transform it into table-free markup, images, and a stylesheet. And while I think the tools CSS positioning yields are invaluable, it's also unquestionable that for certain designs and tasks, straightjacketing yourself into using *only* those tools often results in extra time/resources spent. Whether or not the benefits are worth it is a cost-benefit analysis problem, not a hard-and-fast rule with a foregone conclusion.

    Maybe I'll fire up IE6 to really complete the feeling I'm getting.

    If you're not firing up IE6 regularly, you're either blessed to work only on sites that have a skewed audience, or you're falling down on the job. Most general browser share stats I've seen show IE6 as still having over 20% market share, writing them off is premature. Even trying to apply the "bad browsers get gracefully degraded designs" philosophy can be a bit tricky with IE6.

  149. Time Management & Billing by noyler · · Score: 1

    I'm a recent freelance web developer myself, and have found that time management is a big challenge. Not only is the spreadsheet method cumbersome, but it doesn't allow for much transparency with clients.

    My solution? Write my own time keeping software.

    I've been developing a web-based application that works much like a punch clock. I choose the project I'm working on and click a start button. When I'm done with that project, I can click the stop button and enter some brief work notes. In addition to this basic stuff, it has back end reporting so I can see who owes me money, view an overview of how much I've been working on a monthly basis, and more.

    I've also created a client front-end where my clients can login and see what I've been working on, and can see how much time I've spent on various tasks. Additionally, they can see what they owe me for the work and can login and pay me via credit card (through paypal for now, but that may change depending on pricing).

    So far, it's working great for me and my clients. I'm still finishing some of the coding of some new features, but figured I should get some beta testers in soon...so if you (or anybody else, really) would like to give it a go, shoot me an email at noyler@gmail.com and I'll demo it for you. After I feel it's a solid product, I figured I could offer it as a service for any freelancer on the web and charge something small for its use...like $5/month or $50/year.

    Best of luck to you!

  150. Work for agencies! by mstahl · · Score: 1

    This comment is more directed at the original poster, but I absolutely agree. I will add that working for agencies can be fun and profitable if you live near a few. There's a handful of them here in Chicago and it's very good work. The pay is typically pretty good once you get a reputation and enough people know you. That's key: knowing people.

    I get most of my work by calling people at agencies where I've worked and letting them know I'm available. Usually within a couple of weeks I hear back from someone that there's a project coming up. Agencies are a good bet because they're accustomed to having freelancers and contractors working for them, and if you're good they will keep you around and if you're especially unlucky put you in their payroll system.

    Get to know other web contractors in your area. They're typically good people and they'll have good advice on which places are good to work at and might have some leads too. Knowing a full-time employee at an agency is nearly a guaranteed way to hustle up some work there.

    Make no mistake of it though: working for agencies is very difficult. The timelines are always shorter, the hours longer. Also, agencies typically demand absolute perfection for the deliverables that will eventually reach their clients. Every page must look pixel for pixel the same as the layout you get from their designers, in every web browser known to man. Seriously I once had to kludge my super pretty, modern layout into working on IE5 in Windows 2000 once because that's what a client's european division used. This is probably territory well covered by the "not another dreamweaver developer" posts, but it bears repeating: web development is a specialty and like any other specialty requires a lot of special knowledge. It's a skill like any other. Make sure you're up to the challenge before you start seriously working in the business.

    My advice is pretty useless if you're looking to avoid working places on-site and if you're only looking for a between real jobs kind of situation. Hopefully it helps someone though.

  151. Billing by the hour by specific_pacific · · Score: 1

    I agree by billing by the hour, and I used to as a freelance, but where my company is it's just not possible. I am in China where there is a severe lack of trust in any work anyone does. There are loads of scammers and 'freelancers' who will undercut you by 90%. Sure the client learns the hard way, but by that stage the damage is done; They still don't trust anyone.

    Being a foreigner helps, but there are loads of dodgy foreigners here too.

    I bill for vertical solutions and have a process outlined with a scope document and technical specifications that is agreed upon. This works against the agile methodology I'd like to think we follow.

    There is also the client expectation on receiving a set price. They all expect a one off cost.

    It's not as if we have not tried to bill by the hour or in minimum time slots, but for a set lot of work and to remain competitive, we have to have highly efficient pipelines of work to which the specifications help. I am dealing with English as a second language with my Chinese developers where the eye is trained in English better than the ear. Micromanagement is key and adds a huge overhead to a project that may or may not be billed.

    We make more profit off hosting and support maintenance than the contract itself. Everything, and I mean everything, is written down. We use activeCollab to receive support tickets and use the time billing feature where we do work based on a pre-purchased set of hours. This might seem like overkill, but it shows a great sense of organisation on our part, and responsibility for the client to use the proper channels. This means you are in charge, you run the show. If it's written down, it's traceable even if it is your own fault.

    Needless to say, a lot of these decisions were forged over time and experience in this seemingly odd industry in China.

    Customers pay for quality, and they pay for referrals. New customers whine about cost until they hear horror stories of simple things gone wrong. I can count into the hundreds of the times we spent salvaging projects which amount to a cost the client cannot manage and ends up being burnt by their experience of misplaced trust of just wanting a website.

    In the opposite side of things, some clients expect rock bottom prices for being in a 3rd world country. Somewhere along the lines they have read an article on outsourcing from places like rent-a-coder. We don't bother with them. They will learn the hard way or maybe they will be pleased; Good luck to them and their risks ;)

    Another point, which is bidding for work on those freelancer sites. I find it devalues the profession - Don't do it. The companies who do this might be starting out and need some cost cutting, and there are arguments for global economy etc, but you do not want their work. You are competing with people who are more desperate than you, with lower costs and more corners to cut. This means the client always wins and you lose.

  152. A summary of what has been said + my experience by Ancos · · Score: 1

    Sorry for coming in late.

    I feel that the discussion has gone a little off topic, with comments about CSS best practices while we should be answering to the OP with small business best practices.

    I'll shamelessly plug an article I wrote inspired by this conversation:

    http://www.bukisa.com/articles/11949_how-much-should-i-ask-a-guide-to-pricing-for-freelancers

    If the OP is still around, I hope this gives him a little insight.

  153. SVN+TRAC by Anonymous Coward · · Score: 0

    3 simple (technical) steps:

    - have a server pre-configured for development (VPS, home brew etc) w/ virtual hosts configured for the project: beta.whatever.com, dev.whatever.com
    - setup an SVN for the code
    - setup TRAC, tied into SVN

    Doing this provides most of the basic technical framework you will need to maintain the project and communicate its status w/ the client (i.e.: wiki (good for end-user documentation), timeline, roadmap, bug tracker).

    Also setup a workflow for invoicing. i invoice every month through google apps spreadsheets using the SHARE functionality, noting the status of payment in the spreadsheet itself as the cheques arrive - or u can export as PDF and email directly.

    Decide on the schema for assigning versions to your releases ahead of time.

  154. Also consider hosted time tracking by Anonymous Coward · · Score: 0

    There are plenty of hosted time tracking options as well. Here are just a few:
    http://www.myintervals.com/
    http://www.freshbooks.com/
    http://www.basecamphq.com/

    1. Re:Also consider hosted time tracking by Wilk4 · · Score: 1
      and SuperInvoice, by nCubed.
      http://www.ncubed.com/Products/SuperInvoice/?a=18

      put it on your server or elsewhere.

      jw

  155. Idiot by Anonymous Coward · · Score: 0

    Shut up. Shut the fuck up. "You shouldn't have a photo in PNG anymore than a logo should be in JPEG", really?

    Nothing should be in JPEG unless you want it with lossy compression artifacts.

    Everything should be in PNG, as it offers the best high-colour lossless compression that is supported by most browsers.

    Hey asshole, why don't you learn about the technology you use, rather than parroting some stupid, baseless rules that some moron told you? Stop making MY Internet ugly.

  156. Don't be greedy -be fair 2 yourself AND the client by Wilk4 · · Score: 1
    If you want clients who are happy with your work, who come back to you for more work, and who happily refer or recommend you to others, then don't get too greedy.

    Don't try to get every last dollar out of them that you might be able to.

    Try to make your pricing, estimates and the work you do work well for *both* you and the client.

    And if you take too long on something they need, hopefully for unavoidable reasons, give them a discount on that part of the work.

    Remember that customer satisfaction is the best thing you can prioritize to make sure you keep those customers and get any new ones. (it'll help you avoid some of the issue of unhappy clients not wanting to pay your bills too)

    jw

    P.S. I'd suggest this way of thinking for ANY business... and a lot of large ones could definitely use the lesson.

  157. OT: Contact by AKAImBatman · · Score: 1

    Hi Scott! I've been trying to contact you about a Galaxian clone you wrote some years ago. I've managed to port it to modern web browsers and I'd like to chat with you a bit about it. Unfortunately, all your contact info appears to be horribly out of date. If you get a chance, can you shoot me an email at akaimbatman@gmail.com ASAP?

    Thanks!