Archive for April, 2010

4 easy steps to avoid disaster clients

I found an article today describing the things that really lousy clients say that make their said lousiness obvious. I did a lot of head-nodding, but was disappointed that they didn’t include tips for avoiding these situations. Indeed, the comments contained horror stories of clients who literally ran roughshod over the freelancer, gouging work out of them for little-to-no payment.

I shuddered while reading their stories. The events themselves were bad, but my awareness that a freelancer can always avoid them made it even worse. While firing a customer can be a delicate process, screening a customer and covering your butt are super-easy, you just have to bring some business mindset to the table.

If you had a disaster client or two, but still wonder why you’d ever need to do your thing “like a business,” look at it this way: how does avoiding these morons sound?

Sound good? Okay, do this…

1. Interview your client
Approach the information-gathering stage as a possibility to interview the prospective client. What does the client do? How long have they been in business? How long has your contact been working for the company? What does the client hope to accomplish with your work, both immediately and longer-term? If they ask why you’re asking such questions, tell them you want to ensure that they would be a good fit to your business style.

This line of discussion does two things: makes you look better to professional clients and makes disaster clients a little uneasy.

Let’s quickly cover the benefits for good clients. Business people can talk business to anyone in business. These types of questions will reassure a knowledgeable client. Most professional clients recognize the need for a good fit in the working relationship. In general, they show the client that you have your stuff together, making the client feel more confident in the relationship.

It’s typically the exact opposite effect on disaster clients. People who have it together are intimidating to someone who does not. Plus, the questions themselves often bring potential problems to the surface.

2. Lay out your terms in clear, plain English
How much will the work cost the client? What’s your time estimate? How much money needs to be upfront? Do they need to pay in full before delivery? Answer all these questions straight up, with no fanfare. When everything’s out in the open, everyone’s comfortable. Conversely, when you nervously dance around the “money thing,” or speak in abstract buddy-buddy terms, you’ll set off alarm bells in the mind of the good client.

I was actually burned recently for not following this one. I hired a firm to do some work for Fwd:Vault, and they were pretty vague on the payment terms, beyond the total cost. But my point-man from the firm repeatedly reassured me that we were good as long as I paid, that he would “run blocking” for me with their internal accountants. When my first check ended up in a pile and not going out on time, that blocking ended up being about as effective as a 12-year-old girl facing the Eagles offensive line. After finding the check and sending it out, I get an email a few days later saying that they had the check, but were returning it and dropping me as a client to boot, vaguely describing internal billing issues associated with my delayed payment. Fortunately the relationship was on a trial basis, so there was no real harm.

This whole mess could have been avoided had they provided (or I required) a clean explanation of their payment terms. The irony that their accountants probably consider me one of those “lousy clients” is not lost on me.

When talking money, be clear, be concise, be confident, and all will be well.

3. Always have a written contract
You DO use contracts, right? Right? After you’ve laid out the costs and services to be rendered in plain English, every one of those points should make it into a written contract using valid legal mumbo-jumbo. Contract templates can be found for free around the web, and there are some sites that sell them. Either way, you’ll need to make adjustments to suit your business, and it should always be reviewed by a lawyer. I recommend finding a template, customizing it yourself, and then submitting it to a lawyer. You’ll save a ton of money on legal fees since he’s just reviewing it, instead of writing it.

I know lots of freelancers work on verbal agreements, but they don’t hold up in court. Don’t be dumb or lazy, get it in writing.

That one’s worth repeating: always get it in writing.

4. Require an upfront deposit
I do half up front, half on delivery for modest jobs, and thirds for bigger projects. Either way, I don’t do anything beyond the contract and simple prep without a deposit. It’s easily the most effective way to eliminate riff-raff. Going along with my point on clarity, make sure the client understands that nothing gets done until the deposit is in hand.

It blows my mind how many freelance designers and developers do everything off the cuff, eschewing any concept of business practices. Reasons I’ve heard include laziness, ignorance, even rebellion against the status quo and “the institution” (looking mostly at you “rebel” designers here). Business people are nothing if not efficient. Do you think they would waste their time on these hurdles if they didn’t provide an obvious benefit? These practices exist for a reason! If you’re still unsure, I’d urge you to save yourself future grief and listen to me now, believe me later.


My presentation at PSL’s Entrepreneur Expo

I had the opportunity to exhibit at the Entrepreneur Expo in Philadelphia last week. As the first public showcasing for Fwd:Vault, I think it went pretty well. If you really want to hone your message, explaining it to someone in a very loud, crowded, busy room is awesome trial-by-fire practice.

Fwd:Vault was also 1 of just 10 exhibiting companies (out of a possible 40) selected to give an in-depth presentation. Following the format of the event, presenters told the story of their companies: the idea, getting started, challenges, successes, lessons learned, etc. In short, get up and say anything other than your sales pitch. It was a neat departure from the way presentations typically go at such events, and I was excited to participate.

My Flip cam was in attendance, so if you ever wanted to hear about how a solopreneur with no investor capital actually gets a company off the ground, enjoy!

P.S. The camera was angled to get the whole screen, but fell a little forward once I set it up. Sorry about that.


Require site visitors to enable Javascript

This one has dogged me for quite some time, but I finally figured out how to force users to turn on Javascript when using sites with a lot of mission critical Javascript logic.

Let me first begin by acknowledging that, yes, requiring Javascript flies in the face of site accessibility. Policy wonks for this sort of thing will tell you that Javascript should never be a necessity, that a page should “degrade gracefully” when Javascript isn’t enabled. This mindset is complete crap, in my opinion. Every site has a minimum browser requirement, and Javascript is built into every modern browser. I fail to see why we are still separating the two, and can make a darn good case for expecting Javascript on the user’s end. But that argument’s for another day. If you agree with me, read on.

The example
This example assumes you understand HTML, CSS, and Javascript, and makes use of jQuery, so you may have to adapt it to fit your Javascript framework of choice.

This technique could be applied across the board to an entire site, but let’s start with a single page. A login or account registration is a great choice, since they are already gateway pages to your site. Start by adding the following CSS definition to your page or stylesheet:

.enable-javascript{
  display:none
}

Next, open the HTML for your page and add the enable-javascript CSS class to the top level container containing the body of your page. You should try to leave the header and footer (and their accompanying navigation links) visible and accessible. For example, after my header DIV, the body of my pages are typically wrapped in something like this:

<div id="content" class="enable-javascript">
  [...]
  <div class="base"></div>
</div>

At this point, you’re looking at a blank page. Now let’s give our non-JS users something to look at. Place a <noscript> code block outside and above the body that you just hid. You can use CSS and elaborate HTML inside a <noscript> block, so feel free to make it look good. I actually duplicate my body wrap HTML so the look is similar:

<noscript>
  <div id="content" class="enable-javascript">
    Javascript is not currently enabled in your browser. <a href="http://www.google.com/support/bin/answer.py?answer=23852">You must enable Javascript</a> in order for this site to work properly.
    <div class="base"></div>
  </div>
</noscript>

Finally, make sure the jQuery library is loaded, and add this bit of code to the Javascript for your page:

$(function(){
  $('.enable-javascript').show();
});

What’s happening
We’re using the absence of Javascript to halt the user’s access to a page. By default, page content is hidden via CSS, and we use Javascript to reveal it. If the user’s browser does not have Javascript enabled, the reveal never happens. Visibility for the <noscript> block is handled automatically by the browser, depending on whether Javascript is running or not.

A live example
I’m using this technique on the Fwd:Vault login page. In order to see it in action, you obviously have to disable Javascript. You can use the Google support link to turn Javascript on, and Firefox users can use the Web Developer toolbar add-on to do this a little more efficiently.

A couple caveats
Javascript is a client-side language; it actually lives inside the user’s browser, and runs from the user’s machine. Javascript code essentially tells the browser to manipulate the static HTML of the page, and the server isn’t involved in the process at all (AJAX is something of an exception). This means that there is absolutely no way for us to look for Javascript on the server side using PHP or other server-side technologies.

In addition, since Javascript control is firmly in the hands of the user, you cannot trust Javascript for security. Your average user will be stopped dead with this technique, but hackers and code monkeys can easily circumvent it. This is the case with all Javascript effects, and all have the same countermeasure: scrub all incoming data regardless of Javascript rules enforcement.

Feel free to post comments or questions, and please link your own examples if you put this technique to use!


Meet me at the Entrepreneur Expo

Next week I’ll be showcasing Fwd:Vault at the Entrepreneur Expo, powered by Philly Startup Leaders. The event is designed to celebrate all things entrepreneurial, and really show off up-and-coming businesses in the Philadelphia region.

A total of 40 companies will take part in the expo, and a lucky 10 of those will have the opportunity to take the floor and speak for about 10 minutes, sharing their experiences, how they got started, etc. This part is the most exciting for me, because the rules for presenting explicitly say that it’s not a pitch…

Tell Your Story: Provide a presentation by which the idea has either become or is becoming a reality; include the genesis of the idea and the path to bringing that idea to reality.

It’s Not a Sales Pitch: This is not meant to sell the product or idea to the participant; it is also not meant to pitch to any one segment of attendees (e.g. investors).

I’m hoping that the narrow focus will really encourage the speakers to dive into something more than our usual polished sales and pitch jargon. No word on which of the 40 companies have been chosen to speak, however I did apply for a slot, so we’ll see.

Update: Selections have been made, and I was picked! So come check out Fwd:Vault and 39 other awesome companies, and stick around for the backstory on how I got here.

The event is also organized entirely by volunteers, spearheaded by my friend Gloria Bell over at Red Stapler Consulting. So if nothing else, come and celebrate what passionate people are capable of doing with limited resources. That’s what being a startup is all about, isn’t it? Yours truly is even responsible for putting the site together. It’s amazing what you can do with WordPress and a little know-how these days. (Disclosure: I don’t handle site content).

The PSL Entrepreneur Expo
April 13, 2010 6 pm – 9 pm
Solmsson Court, Hamilton Hall
University of the Arts
Pine & Broad

Hopefully I’ll see you there!


Hate to say I told you so

…but I totally called it.

Here is the Music Player. You need to installl flash player to show this cool thing!