Stories about Software


Should I Quit My Job? Take This Quiz to–Just Kidding

Should I quit my job?

This is a question people ask me with a frequency that surprises me and in a variety of contexts.  I could answer as one of my reader question Monday posts, I suppose, but I’ll just answer straight out.

If you’re a regular reader or someone who came here via share, and you’re asking yourself, “should I quit my job,” the answer is yes.

And if you wound up here from a Google search for “should I quit my job” then the answer becomes “Dear God, yes.”


Well, before I get to that, just look at the results of that Google search.  You’ll see why I had a little fun in the title of this post.  Each site that addresses this topic goes something like this.

Should I quit my job?  Answer the following 25 questions on a scale of 1 to 5, with 1 being strongly disagree and 5 being strongly agree.

  1. Does coming to work each day make me want to drink bleach?
  2. Does my boss actually, literally make me drink bleach?
  3. …………………
  4. Meta question: if I were taking a quiz about should I quit my job and it asked me if I should quit my job, would I say yes?

Now, tabulate your score.  If you got more than a 50, you should quit your job, mister, yah, you betcha!

So let’s just skip the quizzes and head games and get straight to why you should quit your job.  I’m just dispensing with the busy work and telling you what you came looking to hear.

Understanding Your Motivation

Do a thought exercise with me, if you’re one of those wondering, “should I quit my job?”  (Or, go ahead even if you love your job, but the effect will be understandably muted.)

Say you do this internet search, land on one of those silly quizzes and take it, giving your career the same treatment as a Buzzfeed quiz about finding out which character from Game of Thrones you are.

Don't sacrifice your positioning strategy to code-jousting sites, as illustrated by this joust-ready knight.

Let’s then say that the answer comes in.  You should, most decidedly, NOT quit your job.

What’s your next move?

Do you shrug and say, “welp, that settles that.  Back to the grind, never to contemplate this again!”

Or do you keep taking quizzes and reading articles about quitting?

I bet it’s the latter.  And you do something like this because you’re shopping for an answer.  You’re not looking for the internet to answer your question as much as you’re looking for it to supply you with ammunition.

So roll with it.  Accept that you should quit, gather your ammunition, and start planning when and how you’ll quit.

I’ll offer more on when and how momentarily, but with a quick spoiler.  I’m going to counsel patience and a long game.  If you’re looking for someone to validate your plan to march in like a moron and let your boss have it, I’d suggest looking for apocryphal Facebook posts.

Read More


Find Clients and Win Them Over

Ah, the mission to find clients.  Critical for any business, obviously, but especially daunting for the newbie solo consultant or freelancer.  Today’s reader question solicits advice on how to tackle this.

I like your ideas for future topics. I’d love to see more on how to find and win clients. Not just general marketing, but actual sales.

Now, please forgive some introductory digression here.  But I honestly can’t conceive of how to talk about sales without talking about marketing.  Reason being, your marketing (or lack thereof) will heavily influence your sales strategy.

Personally, I don’t do a lot of sales.  At least, I don’t do them in the traditional, numbers game sense.  When I look back over the last couple of years, almost all client-facing work started with clients seeking me out.  The only exceptions included past clients, where sales looks a lot different.

As you might expect, this dynamic heavily influences my sales discussions.  I’m almost always in a favorable negotiating position, not really needing the work.  And the mission to find clients?  I haven’t historically needed to do that a lot.  All this because of my years-long investment in personal branding and marketing.

I say this not to brag, but to illustrate the degree to which your marketing affects your strategy for identifying prospects and pitching to them.  And now, I’ll seize an opportunity to stop talking about myself and start talking about the general would-be freelancer/consultant.  But I will have to talk a bit more about the marketing (though not in the how-to sense).

The Silly Market for Software Work

If you put on a marketer’s hat and look at people selling software development labor, you’ll have a hard time knowing whether to laugh or cry.  I saw this site, recently, called “Code Fights.”  Assuming I understand its charter correctly, it perhaps epitomizes the bizarre market for our labor.  The site encourages you to compete with tens of thousands of people for extremely similar work.

We don’t think anything of this when it comes to finding generalist programming jobs.  But recall how I’ve talked about generalist programming not being strategic.  And if you want to go into business for yourself, you can’t afford to tilt at algorithm trivia and programming competition windmills instead of being strategic.

Think of it this way.  Imagine that someone came to you and solicited your advice on starting a business.  Would you say the following to them?

Here’s what you should do.  Take something that tens of thousands of other companies are doing, and do that.  It’ll be hard to differentiate yourself, but don’t worry.  There’s this website where you can practice by playing games…

It’s so preposterous that I’m going to stop right there because I’m actually laughing as I type it.  In the business world, you don’t respond to market competition this way at all.  Instead, you seek to differentiate your offering in a way that plays to your strengths.

Read More


The Key to Becoming a Software Consultant

Recently, I made an idle threat on Twitter (shown below).  I was thinking of creating some content along the lines of how to go from being a software developer to a software consultant.  People ask me about this all the time, and it makes for an interesting subject.  I was also flattered and encouraged by the enthusiastic response to the tweet.

I’m still mulling over the best delivery mechanism for such a thing.  I could do another book, but I could also do something like a video course or perhaps a series of small courses.  But whatever route I decide to go, I need to chart out the content before doing anything else.  I could go a mile wide and a mile deep on that, but I’d say there’s one sort of fundamental, philosophical key to becoming a software consultant.  So today I’d like to speak about that.

Software Consultant, Differentiated

I won’t bury the lede any further here.  The cornerstone piece of advice I’ll offer is the one upon which I’d build all of the rest of my content.  You probably won’t like it.  Or, you’ll at least probably think it should take a back seat to other pieces of advice like, “be sympathetic” or “ask a lot of questions” or something.  But, no.

Don’t ever let would-be consulting clients pay you for code that you write.

Seriously.  That’s the most foundational piece of your journey from software developer to software consultant.  And the reason has everything to do with something that successful consultants come to understand well: positioning.  Now, usually, people talk about positioning in the context of marketing as differentiating yourself from competitors.  Here, I’m talking about differentiating yourself from what you’re used to doing (and thus obliquely from competitors you should stop bothering to compete with: software developers).

Let me explain, as I’m wont to do, with narrative.

Leonardo Da Vinci: Renaissance Plumber

By any reckoning, Leonardo Da Vinci was one of the most impressive humans ever to walk the planet.  Among his diverse achievements, he painted the Mona Lisa, designed a tank, and made important strides in human anatomy.  But let’s say that, in a Bill and Ted-like deus ex machina, someone transported him 500 years into the future and brought him to the modern world.

Even someone as impressive as Leonardo would, no doubt, need a bit of time to get his bearings.  So assume that, as he learned modern language, technology, and culture, he took a job as a plumber.

Leonardo Da Vinci as a plumber to help you understand the difference between software developer and software consultant

Let’s assume that you happened to have a leaky sink faucet, and you called Leonardo’s plumbing company for help.  They dispatched him forthwith to take a look and to help you out.

So Leonardo comes over and, since he’s Leonardo, figures out almost immediately that your supply line has come slightly loose.  He tightens it, and you couldn’t be more pleased with the result.

Read More


Starting a Software Company from Scratch

When I reflect back on my free agent career, it strikes me that I more or less did everything wrong.  I mean, I don’t actually believe that when I look at it analytically.  But it does feel that way, knowing what I know now.  Starting a software company from scratch invites plenty of missteps.

In the lead into last Friday’s reader question post, I talked about starting this blog as a journal of sorts.  That’s a good example of what I’m talking about.

In the end, I built an audience, established a brand, and wound up in a good place.  But if I could go back in time 7 years and give myself advice, my path would have been more direct.

It goes beyond blogging, of course.

That was one example, but it applies generally to my entire approach to starting my software development/consulting company.  I did things that worked out, but it hardly seems optimized in retrospect.

You’re probably thinking that this applies to everyone.  Hindsight is 20/20 and all that.

And you’re right, which is exactly my point.  I dove in with severely imperfect knowledge, made a lot of mistakes, and it still worked out pretty well.

If you pursue the free agent life, you’ll flail, make mistakes, and have some false starts.  But you’ll recover, figure it out, and do fine, even if it sometimes seems like you’re drowning in the moment.

Flat Squirrels and Driving Directions

Perhaps you’ve heard an expression.

“Be decisive. The road of life is paved with flat squirrels who couldn’t make a decision.”

Don’t blame me for the macabre nature —  I didn’t make it up.

I like part of the sentiment, but I think it misses the mark slightly.

If you picture a terrified squirrel in the road, its biggest problem is thousands of tons of steel and plastic death bearing down on it.  It starts left, then moves right, then freezes and then… well, you get it.

Indecision costs it dearly, but only once it has a large problem already.

When starting a software company from scratch, indecision won't flatten you, but it will impede your progress.

This probably doesn’t describe you in most situations that call for more decisiveness.  We face paralysis by analysis, rather than paralysis by mortal terror.

Have you ever sat in your car, debating whether to take the highway or side roads during rush hour?  Have you ever sat there debating this for so long that you get to your destination later than if you had simply picked either option and started immediately?  (Come on, I bet you have.)

This makes for a better analogy for our lives, especially when it comes to starting something new.  We put off action out of fear of taking a sub-optimal path.

But, at some point, even a sub-optimal path beats sitting in your car fretting.

Read More


Always Be Leaving

Last Friday, I published a post called “The Polyglot’s Dilemma”.  I had actually had a stubbed draft for this post, “Always Be Leaving,” before writing that one.  But it turns out that post segues nicely into this one.

Programmers (especially polyglots) face a dilemma wherein the thing that makes them most employable (broad generalist skills) also positions them as resources rather than strategic experts.  To make matters worse, broad industry generalizing also puts programming labor in the category of fungible commodity.  Knowing many languages and techs makes it easy for a company to assign you to any arbitrary upcoming automation project.  But it also makes you easily replaceable by any similar generalist.

The polyglot generalist comes to the company as an easily-deployed generalist.  He then waits for people tasked with organizational strategy to deploy him.  But then, of course he does.  This represents the only way for him to remain indefinitely engaged as an employee.  A specialist comes in to execute on a limited duration charter.  A generalist signs on to do whatever the company happens to need for the rest of his career (theoretically).  This context demands a generalist, since nobody knows what the company will need in 5, 10, or 20 years.

And so we see that the polyglot’s dilemma arises naturally from indefinite employment.

Leverage: A Study in Contrasts

“Always be leaving,” as a title probably reminds you of the pop culture sales phrase, “always be closing.”  Popularized by movies like Glengary Glenn Ross and Boiler Room, it evokes images of the iconic pushy sales guy.  This sales guy does things like cold call you and say, “should I sign you up for two or just one?”  See what he did there?  He gave you no option to say no.  Slick man that he is, he’s always closing.

If you take the self-important testosterone out of the situation, you can see a more basic psychological reality.  “Always be closing” applies to situations with little to no leverage.  Fast-talking sales guys call up “whales” and, through force of personality, convinces them to buy stocks they don’t need.  He has no actual leverage — nothing they really want — so he exerts his dominance by turning on the forceful charm and bamboozling them.  Then he high fives his buddies afterward and rings a bell and screams or some such idiocy.  He creates leverage theater in order to secure the metaphorical kill.

“Always be leaving,” on the other hand, offers a complete leverage reversal.  When you find yourself ending an engagement or an employment tenure, you have tons of leverage.  But you usually forgo using it.  You give your notice, and the notified party often asks what it can do to keep you, even though you feel excited looking ahead to the next thing.

Read More