Shut Your Pie-Hole, Imposter Syndrome.

You’ll never graduate to fixing problems if you don’t first understand the system. That’s how the pros became pros.

I was having trouble with my website the other day. It was an issue unlike any I’d ever seen. My mind started to fill with all those familiar thoughts:

Welcome to my internal debate.
Welcome to my internal debate.
  • Real developers don’t have these types of issues.”
  • “Maybe I should stick to guitar, or retail sales.”
  • “I’m too dumb to figure these things out”

I pushed back with a bit of truth: I am a real developer, and the way all of those other developers got to where they are today is by not giving up when they mysteriously borked a table in their database. I can figure this out. Today’s as good of a day as any to learn something new.

Web development (and I assume this applies across most of software development) is as “simple” as understanding how the pieces fit together, and isolating problems by tracing through the connections.

Just like a good auto mechanic can explain everything that happens between gas pedal and tire to make a car accelerate when you push the pedal, the best developers out there have at least a rudimentary understanding of everything that happens from browser to server and back to make your web site look the way it does.

If you are a WordPress developer, that includes steps like how WordPress interacts with the database, and how to isolate issues to specific database tables and indexes.

This week in my never-ending journey to be the best web developer I know, I learned that the wp_options table contains an index named wp_user_roles that, if messed up (in my case, prefixed incorrectly by a naughty backup plugin’s importer script which shall not be named), makes even the most admin of admins appear to the server to be just an average joe with a subscription.

As Yoda might say “Locked out of my website I was.”

Hours of wanting to punt my laptop through my office window later, I stand before you a man with a far more rich understanding of not just the truths in that above paragraph, but also of WP-CLI, MySQL, databases, and WordPress in general.

Take that, internal monologue. I am a real developer.

Logged back into my website I am.

Operation Over The River UPDATE April 2015.

How do you motivate your 6- and 4-year old to be more active? I chose to ride my bike with them across the state.

One set of Grandparents down, one to go!
One set of Grandparents down, one to go!

I promised to pop back in with updates, and I’m happy to report that as of Easter Sunday (just a bit over 7 months after we started), we made it the 101 miles to my parents’ house, and fittingly were able to do it at my parents’ house!

Note another flawless use of “Ka-chow!” by Benjamin, and Theo’s race pose.

Now, to keep track of the 185-ish miles left to go to make it to the other set of grandparents!

I love being a homeschool dad.

How Learning WordPress Development is Like Playing a Crappy Guitar On Purpose.

Sometimes the nicest tools can actually hurt your ability to learn.  Creative Commons Image Attribution.
Sometimes the nicest tools can actually hurt your ability to learn.
Creative Commons Image Attribution.
I took guitar lessons for years as a kid from a virtuoso named Eric Perrotti. Every week I would show up with my (relatively nice) guitar, pull it out of the case, and plunk through whatever I was supposed to be playing that day.

Eric, on the other hand, would pull this old crappy Yamaha guitar off the wall that literally had a folded over piece of paper forming the nut (where the strings rest against the headstock of the guitar) and would amaze me with some new technique or riff.

Today during a quick YouTube search I found Eric as a guest on a local radio show back in 2003.

Later in the episode he remarks that he bought the guitar he’s playing there for $40, thus reinforcing my point here.

Eric drilled it into my head as a kid, but I forgot it: the degree of quality in the equipment does not make me any better of a guitar player. Learning the fundamentals of guitar, music theory, and other (free!) things is what made me a better guitar player. The nicest guitar in the world in my hands would pale in comparison to that crappy old Yamaha in his hands.

And that’s why I’ve redone my website, not with the Genesis theme framework or some other premium framework, but based off of the free Twenty Fifteen theme that comes installed with WordPress 4.1 and later.

At this point in my developer knowledge, putting Genesis in my hands doesn’t help me learn the fundamentals of WordPress theme development. In fact, it may hamper my ability to learn those fundamentals in the same way an effects pedal system would’ve hurt my development as a guitarist.

I don’t need a distortion pedal so that i can sound like Van Halen (who, according to my guitar teacher, was mostly tricks mixed with good marketing). I need to work on scales, intonation, hand strength, and chord changes. Once I get those down, adding some additional tools like effects pedals would likely enhance the music I am able to make.

Where the analogy falls apart is that the Twenty Fifteen theme is not crappy. It’s just not fancy. Eric was proving a point by intentionally using junk to make beautiful music. My goal is to develop a base understanding of child theme development before I hop into the deep end with a powerful tool like Genesis. (See kids: mixing metaphors makes you jump in pools with power tools.)

So, the site you are reading this on is built atop plain old Twenty Fifteen, using a child theme. Once I get comfortable plunking through the notes here, I’ll peek my head around the corner at Genesis.

My WordPress Origin Story And Why It Matters

Here's how I started, then promptly stopped, calling myself an "Expert."  Creative Commons Image Attribution.
Here’s how I started, then promptly stopped, calling myself an “Expert.”
Creative Commons Image Attribution.
Last week I wrote a post helping folks to vet potential WordPress developers.

Lest my developer friends think I am being two-faced, I thought it best to follow up with my origin story, for reference.

I’ve been the theme-tweaking developer I publicly shamed in my previous post. But I’m not much good at fast-talking slick salesmanship.

It’s lots of us second-career developers’ origin story. We were tasked with putting together a website for someone, found WordPress, kicked the tires a bit, and made the first DIY website we’d ever seen that was not terrible. It wasn’t good. It just wasn’t terrible.

So we bought the developer’s license to the Thesis 1.x framework which somehow inexplicably gave us for.ev.er without having to pay again, and a drag/drop(ish) interface for making WordPress sites. It was a high enough bar that it couldn’t be replicated by our target market, but by no means a high one. The techiest we ever got was having to add some code to our functions.php file, and there was always some to copy and paste on a forum somewhere.

If we were savvy enough, we could make a decent living from that point, without ever having to learn anything else. It’s the beauty of WordPress.

I can’t be sure, but I may have even referred to myself as an “expert” at that point.

I wasn’t savvy (or tenacious, or something) enough, so though I got to a point where people would pay me to make sites, I was never making all of my living from development. Then I made the mistake of continuing to learn.

See, had I pivoted away from the development side and into the marketing side of web design, I may have been able to continue blissfully unaware of how little I actually knew about WordPress, the community, or development in general.

I’ve always been a learner though, and soon enough I peeked from behind the curtain of Thesis and it’s hide-the-code philosophy and stuck a toe into the actual code that is holding up the whole affair.

I’m not exactly certain of the timeline, but it goes something like

  • Read something Otto wrote →
  • Read something Ipstenu wrote →
  • Immediately stop calling myself an expert →
  • Cobble together a plugin for a specific client need →
  • Release that plugin on the official .org repo →
  • Start trying to figure out enough code to call myself an expert again →
  • Read something else Otto wrote →
  • Go to a WordCamp developer’s track and watch the lingo fly over my head →
  • Come home with a three page document of terms to Google →
  • Join slack and sit through several meetings afraid to ever speak up →
  • Happily give up on ever calling myself an expert →
  • Volunteer to help a few people with their code on github →
  • Release another plugin →
  • Nothing has blown up as a result of my plugins after “1000+ active installs” on each of them.

See, I’m by no means the best WordPress Developer on the block, but I’ve started to learn how little I know, and I’ve contributed to the community, which puts me in the top 1% according to this great article.

...You are not dealing (any longer) with a guy just in this open-source game because it's cheaper. Share on XThat’s why this matters. For the client hiring me to set up a backup or maintenance plan for their WordPress site, it’s important to know that you are not dealing (any longer) with a guy who is just in this open-source game because it’s cheaper. I’m here to actually contribute to this product which has essentially already made good on its promise to democratize publishing.

For too long I’ve been a freeloader, or at least ignorant of the community supporting this thing with hours upon hours of free labor. It’s time to pay my dues.

Vetting Developers: Working with contributors makes the Word a better Press

Here’s the question to ask a potential developer before they make you a WordPress website:

So, what have you contributed to the WordPress community?

The only reason I’d recommend foregoing the question is if they are charging you north of $3,000–$5,000. But even then, the question is still valid.

I’m not saying that all developers who charge relatively small amounts of money are bad developers. But I am unflinchingly saying: some of them are.

You need a litmus test. The above question is the test I’m proposing.

Here are some sample answers you are looking for:

“I’ve written and actively support XX plugins that are in the official repo (or github)”

or

“I’ve regularly attended the core discussions on slack”

or

“I’m a beta tester with XX tickets in the last beta.”

or

“I help with the Polyglots team to translate WordPress into other languages”

or

“I’m a theme reviewer”

or a number of other valid responses. The only thing that you can’t accept is “I haven’t really, I just make websites.”

Now, there are going to be some really top notch developers who can’t pass this litmus test, some gals and guys who can code circles around me, to be sure.

But none of the low quality shysters will be able to pass this litmus test (or you are at most one quick email, followup question, or Google search away from uncovering their rouse.) If someone says, for example, that they actively support their plugin in the official repo, you can ask for the link to the support forums and see how many users agree with you.

Short of an official test or third-party certification, this is the best way to begin to weed out the chaff in the “WordPress Expert” field.

The sad truth: you as a small business owner have been hoodwinked. You are being sold Candy Apple Red lemons.

What’s the point of a website? Why do you have it? What are your short-, medium- and long-term goals with the site?

If your goal is no return on investment, with a side order of being hacked and promoting male enhancement drugs, then by all means pay somebody once for a website, and then don’t pay attention to it for two years.

If your goal is no return on investment, with a side order of being hacked and promoting male enhancement drugs... Share on X

Business owners are busy. It’s in the name. You aren’t dumb, you’re simply ignorant. You’re like me at a chainsaw repair shop. They could tell me that “saw serum” is a thing that is required by federal law and costs $40, and I’d just nod like a dashboard bobblehead at a stop sign. I’m very smart, but I know nothing about chainsaws.

You are very smart, yet somehow this prevailing thought process has taken hold: (1) get a website, (2) rank—presumably magically—in a Google search for your highly competitive niche, and (3) business will just fly in from the flood of traffic.

Worse yet, you’ve been sold the pack of lies that a $400 website on $3/month hosting can do that, with no attention or further investment from you.

Lies.

One problem: a $50 theme the “developer” purchased and tweaked makes your site look really good. That, to your untrained eye, makes their site look just as good as a $3,000 one, so why pay so much more?

Candy Apple Red lemons.

You’ve confused “pretty website” and “profitable business tool.”

The worst part of the whole deal? There are web “developers” out there who can talk fast and sell well who are trying to convince you that everything I’m saying is a lie.

I’ve been on both sides of this thing. A project management client of mine has a website that ranks really well in Google for a very competitive niche. You know how much money she puts into that site to rank well in her target keywords? About $2,000 per month between writers, editors, social media managers, and me (project manager).

There is no short cut to ranking in a Google search: high quality content, focused attention, and time. All of those cost money.

The long story short (my WordPress origin story is fodder for another post), I’m now smart enough to know how little I know, relatively.

When developers start to know how little they know, that’s the beginning of the real learning.

Which brings me back to the litmus test. If you are going to hire someone to make a website for you, and they are content to charge you $400 one time for it with no mention of a recurring cost, there’s a reasonably strong chance they have no idea what they are doing, or they don’t care at all about your business goals, or both.

What if there were a way to vet those developers?

My name’s Ben, and I actively support my two plugins on the official WordPress.org repository:

Better Click to Tweet

"Very happy with the support and the fast answer! Very grateful for that!"

Palava Better Click To Tweet Plugin User January 19, 2015

Ahhh you are a LEGEND! How peculiar! Thank you so much for being so patient and awesome with this one, definitely the best tech support I've ever received for a plugin.

Anastasia Amour Better Click To Tweet plugin user. February 5, 2015

...the plugin works so well to begin with, but Ben has been great at offering suggestions and implementing solutions... Great work, Ben!

Julie Better Click To Tweet Plugin User January 27, 2015

Wow! The best plugin experience I've ever had! That's no exaggeration -- I've worked with dozens of plugins for WordPress, and this is the happiest I've ever been.

yiddishwarmth Better Click To Tweet Plugin User April 28, 2015

Old Post Date Remover

P.S. This post makes many of the same points as Mario Peshev’s great post on Medium. That post directly inspired this one, and it’s where I hoped his headline was going: address the end user. I think I also widened out his definition of “Contributor” beyond those who have contributed to core code. My goal was to write a post that talked more directly to our potential clients, and keep it under 1,000 words. (he said at word count 927.)