DaedTech

Stories about Software

By

Learning in a World Where Programming Skills Aren’t That Important

After a couple of weeks doing Reader Question Monday on a Tuesday, I’m back on track.  I’ll briefly congratulate myself before moving on to the potentially pot-stirring topic of programming skills.

Today’s question is one I’ve gotten a LOT, but have struggled to answer.  I didn’t want to write on the subject until I had what I considered to be a coherent, defensible position.  So I’ve pondered and stewed.  And I think I’m finally ready to answer.  Be warned, though.  This post will probably be lengthy and, at times a bitter pill.  But I think it’s important.

Here’s the question, as a composite from all of you who have written me about it.

How will experience work, especially at the entry level, in the efficiencer world?

What on Earth is an Efficiencer?

A little background, for anyone who isn’t up on secret language of the DaedTech blog.  Efficiencer is a neologism that I used to describe what I perceive as the more business-savvy, more autonomous software developer of tomorrow.  I’ve written a number of posts about it, but I actually defined the term in my book, Developer Hegemony.

Briefly, efficiencers are different — more — than programmers.  Programmers ingest specs and spit out source code.  Efficiencers solve problems.  To illustrate, consider the following.

  • You go to a programmer and say, “I need an ASP MVC website that uses Entity Framework, .NET Core, and SQL Server on the backend.”  The programmer says, “sure, boss, give me the wireframes and I’ll code it right up for you.”
  • You go to an efficiencer and say, “Right now our company takes all of our orders over the phone, and our website is purely ornamental.  I don’t know how this will work, but I know that we need the ability to take orders over a website, 24 hours a day to keep up with our competition.”  The efficiencer says, “I help businesses like yours automate their ordering process, so don’t worry, I’ll make sure your site not only competes with, but outperforms, those of your competitors.”

Can you spot the difference?  Can you tell which professional needs six layers of management and bosses in order to do anything useful, and which one IS the boss?

The Conundrum of Entry Level Efficiencers

The programming world of tomorrow is one in which we, as software developers, stop being the least important people in the software development industry.  In my book and in general, I propose a future in which efficiencer firms, structured like law firms, consist of efficiencers (professional automaters) who call the shots and delegate things like project management (status reporting and schedule coordinating) to subordinates, instead of superiors.

That has resonated with a lot of people.  People like the vision in general, but it leaves a lot of folks wondering about the question that is the subject of this post.

What does entry level efficiencer-hood look like?

The Efficiencer Career Plan in the Short to Medium Term

I won’t bury the lede any further.  I’ll answer the reader question here, in this section.  What will follow for probably thousands of words after that is an explanation and the pot-stirring controversy that I mentioned.  You’ll see why I need to explain further after reading the efficiencer career path.

  • Skip a CS program, because that’s not worth the investment anymore.
  • Do whatever is necessary to get yourself an entry level programming job.  (Boot camp, lateral transition, self-taught, whatever.)
  • Spend 2-4 years as a corporate programmer in a few jobs, where you get paid to learn programming.  This is kind of like a doctor’s residency: you’re an actual programmer in the wild, but also a student.
  • Quit your job and become an actual efficiencer because 2-4 years is plenty of time to become as good at the general skill of “programming” as anyone needs to be.  After your employed residency, you should start to focus on your particular specialty and on growing your brand/career/business.

Alright, deep breaths.  To channel emperor Palpatine, “I can feel your anger.  It makes you stronger, gives you focus.”

Like Anakin here, I can feel your anger at the idea that programming skills aren't as valuable as you think.

How can I possibly make this claim?  2-4 years of programming is barely enough not to make a mess, let alone to perfect this elusive craft.  Am I out of my mind?  Or maybe just an idiot?

Read More

By

Be a Freelance Web Developer? You’re Asking the Wrong Question

I get a lot of reader questions about freelancing.  People interested in freelance web development or freelance mobile development or what have you.  I applaud the desire to go free agent, and I think you should do it.  But I think you get a lot of bad advice about how to do it.  Bad advice at a philosophical level, that is.

Today I’m not answering a specific reader question, though.  Instead, I’m just going to talk about going freelance.  I did this years ago and have had a good run.  But I really wish I knew then what I know now.  Hopefully I can help you get to joy a lot quicker and in less roundabout fashion than I did.

And don’t worry.  I’ve stated that you’re asking the wrong question, so I will, eventually, get to what you’re probably wondering — what is the right question?

Freelance Web Development?  Here Are Some Tips (That Help Us Make Money Off You)!

If you google advice about freelancing as a developer and about freelance web development, specifically, you’ll probably find a lot of advice from a certain kind of site.  Fiverr, Upwork, and Toptal are all happy to help.  They’ll tell you how great it is, saying things like:

  • Be your own boss!
  • Have work-life balance.
  • Choose your projects.

And they’ll offer you advice, like:

  • Beef up your breadth and depth of tech stack knowledge to have the most opportunities.
  • Build up your portfolio so that you can show it off.
  • Create and promote your personal brand through a website, user groups, conferences, etc.
  • Get your business affairs in order.

All of this is actually good advice for your immediate future.  Full stop.  This stuff will help you blast out of your salaried job and into the world of self employment — they’re right about that.

But here’s the rub.  All of these sites are providing advice to you on how to be a good product for them to sell.  Think of these the way you’d think of recruiters giving you job search advice.  They want you to do an excellent job with the next stage of your career and go exactly no further.  This makes sense, since they earn their revenue pairing freelancers with companies in need of short term labor.

Freelance Development is Basically Just Job Hopping

If this whole thing sounds familiar, it should.  It looks an awful like recruiters helping you from job to job as soon as you’re willing to jump.  The difference?  The world expects you to jump as a freelancer, but feigns shock when you do it as a salaried employee.  Freelancers jump — it’s what they do.

But make no mistake — the difference is only that you jump perhaps a little more often and that people expect it.

Do you want to know what I thought freelancing would be like when I started?  I’m actually chuckling a little as I type this.  I’d had some moonlighting gigs in the past where I did 5-10 hours per week of work in my spare time for someone.  So I just assumed that I’d find 4 app dev clients that wanted about 10 hours per week of work.

I’m not chuckling because this was or is a stupid thing to assume.  I’m chuckling in irony because of how much the world turns out not to work that way.

You get into freelancing assuming that you’ll have a bunch of clients and diversity of work, handling multiple projects at once.  But what you’ll wind up doing is taking sequential gigs with periods resembling job searches in between.

This is a Hamster Wheel

You’re going to need something more than this, eventually.

Becoming just a freelance web developer can feel like this hamster running on its wheel.

Read More

By

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

Why?  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.

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

By

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

By

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