Freelance Web Developer Best Practices? 438
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."
Contracts! (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.
Learn CSS (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.
Just some answers (Score:4, Insightful)
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.
Re:Contracts! (Score:5, 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.
% up front and milestones (Score:2, Insightful)
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 [quickbooksonline.com] 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!
Re:a problem I have... (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.
Mint money with maintenance (Score:5, Insightful)
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.
plan well, overestimate time (Score:2, Insightful)
Re:Good estimates (Score:3, Insightful)
No offence but you don't know what you're doing (Score:4, 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).
my advice (Score:4, Insightful)
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!
Written communication and simplicity is key. (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.
Re:Good estimates (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.
Thoughts on freelancing. . . (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.
For time tracking and invoicing, I'm enamored with Freshbooks.com (referral link [freshbooks.com], non-referral link. [freshbooks.com]). 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!
Re:Learn CSS (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.
Re:a problem I have... (Score:3, 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.
Re:Learn CSS (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.
Re:Learn CSS (Score:5, Insightful)
Re:Just some answers (Score:4, Insightful)
Always bill hourly.
And, yes, upfront is good. I personally prefer pre-paid time blocks.
Re:Learn jQuery - Good grief... (Score:5, 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.
Re:Learn CSS (Score:4, Insightful)
"which will work everywhere but IE"
Reconcile please.
Re:Learn CSS (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:
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!
Re:Contracts! (Score:4, 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.
Don't forget who your clients are. Re:Learn CSS (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.
Re:Contracts! (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.
Re:Contracts! (Score:5, 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.
Re:Learn CSS (Score:3, 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.
Re:Contracts! (Score:4, Insightful)
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.
Re:NEVER bill hourly! (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.
Contracts are premature (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:
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
Re:Contracts are premature (Score:3, Insightful)
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.
Re:Contracts are premature (Score:4, 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.
Re:Contracts are premature (Score:5, Insightful)
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.
Re:Contracts are premature (Score:4, Insightful)
Re:Learn CSS (Score:3, Insightful)
Whatever (Score:4, 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.
Re:Contracts! (Score:3, 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.
Re:Good estimates (Score:1, Insightful)
Read the book "Software Estimation" by McConnell - extremely relevant knowledge after I misquoted a couple of projects.
Re:Contracts are premature (Score:4, 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.
Re:Contracts are premature (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.
Confusion Doesn't Help (Score:3, 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 [personalmba.com].
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.
Re:Confusion Doesn't Help (Score:3, Insightful)
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:
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.)
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.