Writing software is hard, particularly when the schedules keep programmers “nose to the grindstone”; every so often, it's important to take a breather and look around the world and discover what we can find-ironically, what we find can often help us write software better.

Ah, the joys of self-employment. The constant search for clients, the complete lack of job security, the thrill of constantly having to defend your status as “consultant” versus “unemployed”… who wouldn't want to be one?

Column ideas come from funny places.

Every so often, the Fates (or the Muses, I'm not sure which of the mythological Greeks dominates my life more) conspire to offer this column suggestions for what to write about next. Sometimes it's something that comes out of my own history, but more often than not, it's a toga-wearing fictional deity.

In this particular case, it was a combination of finding a web article by Steve Friedl, titled “So you want to be a consultant…?” (http://unixwiz.net/techtips/be-consultant.html), which I found a great read. It was then followed shortly by a couple of friends each independently asking me what being “an independent” is like. If that's not a sign from Clio (the muse of history), I'm not sure what is.

(So long as it's not a sign from Erato, we're all good, anyway.)

And before I get started, in the spirit of full disclosure, I have to mention that as I write this, I'm no longer an independent: after a little more than a decade of being my own boss, I'm quite thrilled to say that I've joined forces with Neudesic, LLC, as an Architectural Consultant. Which isn't to say that I'm recommending against independent consultancy (modulo the first item below), mind you. I have a number of friends at Neudesic, though, and they like the company, and that's usually a good sign to me. So when they made me an offer, I figured it was time to do something different for a while. And make no mistake, I'm loving it-good company, good people, and some good projects to work on. But that's not why you're here.

If you've been thinking about “making the jump” into the self-employed ranks, then there's a couple of things I suggest you think about before you walk into your boss' office and declare your independence in two words (“I quit”, not those other two words):

1: Don't Do It

Seriously. From the “Grass Is Always Greener Department,” being an independent consultant looks pretty attractive to those who've always worked for somebody else. That view is a seriously skewed one. Oh, sure, it all looks fabulous: you can expense everything, you are your own boss (no more stupid meetings!), you can work from home, its Da Life!

But consultancy has its own share of drawbacks, and if you're not looking at the whole picture accurately and candidly, you're going to set yourself up for a fall. Lots of things become expensible when you're your own company, it's true, but you also have to pay your own quarterly payroll taxes and track all those receipts in order to actually expense anything. Consultants have no boss, it's true, but they have clients, and clients are often even more annoying than bosses are. You can work from home, it's true, but you have no office to escape to when the family starts intruding on your work time.

(Of course, there's always Starbucks. Assuming you like overpriced bad coffee. Not to mention everybody else hanging out there, “working on my novel” or “working from home” while they sip their pretentious coffee, flapping their gums and soaking up the WiFi and leaving you with an effective downstream rate that's roughly equivalent to carrier pigeon.)

2: Remember Your Brand

It's been said over and over again, to the point where it's actually becoming a clich´┐Ż (if it isn't already), but “You are your own brand.” Never is this more true than in the world of the independent consultant, where if you're the ubiquitous “company of one” (such as I was), the only branding and marketing that will be done is however much of it you do. You have no other product or service than yourself, and that means that anything you do, any hour you spend, has to serve one of three purposes: either you're billing, you're advertising, or you're off the clock. It really boils down that simply.

Billing is pretty straightforward to understand, as is being off the clock, but advertising doesn't come naturally to a lot of us geeks. Fortunately, for us, it can be as simple as blogging. Found out something interesting? Blog it. Discovered a new language? Blog about it, and your reactions to it. Just figured out a hideous bug? Blog it, how you found it, and what the core cause of the bug was. Don't have a blog? Um…. If you don't have a blog, you're really not ready for consulting. See Item #1, above.

Remember, though, that as an independent, you are always doing one of those three things: billing, branding, or breaking. And, truthfully, even that latter category is only sometimes true-when you are your own brand, anything that you do in any public-facing space is part of that brand. That means angry emails “informing” the person who disagrees with you how wrong they are on a mailing list will, in fact, come back to bite you-Google sees all, and because of that, anybody who searches you will quickly know all, and that could hurt your brand.

Nobody ever said consulting was easy. And quite honestly, if this doesn't strike you as “fair” or “acceptable,” maybe you're not cut out for the consulting gig-which is fine, by the way. Never let it be said that I was trying to suggest otherwise.

3: Know Your Customers

It's an old business adage to “know your customers,” and nowhere is this more true than in consulting-you're going to have to find them, convince them to give you money, and deliver on (or above!) their expectations if you want to keep them. Friedl does an excellent job reiterating this over and over again in his web article, calling it “The Warm Fuzzy Feeling”-at every point in your relationship with a customer, your customer should feel warm fuzzies when they think about working with you.

And you know what? That sometimes means taking it in the shorts.

He makes this point clear several times, from “Be easy to find.” to “It's better to give away some time than to throw away your reputation.” The consultant sometimes has to make a sacrifice or two in order to keep the customer relationship a good one. This is actually no different than in any other business: when the restaurant brings you food that's not what you ordered, whether because you misspoke or the server misheard is irrelevant-the good restaurant takes the order back, and brings you what you actually wanted, regardless of fault.

This even means sometimes you have to admit that your technically-superior-yet-harder-to-implement-with-the-staff-they-have solution is not the right one. And that one, ladies and gentlemen, is a hard thing for me to admit, because for years, I was “that guy”-the consultant who insisted that the technically-correct solution was the only right solution, that anything less would be a mistake, a waste of everybody's time, and if that wasn't what they wanted to hear, why did they bring me in here in the first place?

Yeah, I didn't get a lot of repeat business at first. Save yourself a bunch of effort and lost phone calls: you don't have to be a pushover, and certainly I don't want you going out and just doing whatever the customer wants if you know it's going to be a complete disaster, but in the end, the customer is going to be the one evaluating the success or failure of the project. Their criteria are the only criteria that matters to them.

4: Don't Be Afraid to Fire a Customer

Within the consulting ranks, we talk about “firing a customer” to mean “refusing to work with a customer.” No customer engagement is ever going to go flawlessly, but some customers seem bent on trying to make the engagement into the worst one ever imagined by mind of mortal man.

And if you're doing the consulting thing right, you can look that customer in the eye and say, “You know what? I don't think I'm the right guy for you. I'm going to wrap things up by the end of next week, and I wish you luck in your future engagements.”

Or something like that.

This is what most people see when they see the “freedom” of consultants, but you know what? Even office employees have the same freedom-firing a customer is a pretty straight parallel to firing a boss. (And yes, you can fire a boss!) In each case, it means the consultant/employee has to go out and hunt up their next gig, but if you're a consultant, you have to do that anyway.

And if you're an employee, you might just find it empowering and liberating. And maybe, just maybe, that'll be the catalyst that leads you to….

5: Just Do It

Seriously. If all you've ever done is work for somebody else, then jumping out into the independent world can be an eye-opening and highly educational experience. Numerous perks go along with being conventionally employed, and sometimes they go without notice until you don't have them anymore.

And you know what? No decision is ever really set in stone-assuming you did the right thing when you left your cubicle-based job, you left an open door there, and if you find your consulting gig doesn't really give you the kind of warm fuzzies you were hoping for, there's always the opportunity to go back to your old company and ask them if they're ready to give it a second chance. Or any of the other companies in town, either.

Jumping In

Look, at the end of the day, you're never going to know how much you enjoy something if you don't give it a spin; at the same time, some of you aren't really in a position where you can afford to take risks with your income. (Having two boys, one of whom is entering college and the other less than six years away from the same, puts me in much of the same spot.) But the economy right now, for IT folks, is pretty strong, and opportunities for people to take on some part-time work abound, if you take the time to explore and find them.

And frankly folks, I'm pretty happy at Neudesic, which means that there's room in the world for at least one more really smart consultant. Why not you?