Phone lessons: How I’ve used stickers to make my smartphone even smarter.

When I place my phone on the little sticker on the top of my bicycle saddle, I hear a pleasant little “blu-doomp!” that tells me the following sequence has been triggered:

  1. Send my wife a text that says “Just got on my bike”
  2. Open the Map My Ride application.
  3. Tap the “start workout” button.

Once I hear the “blu-doomp!” indicator, I watch my phone for 1.5 seconds until the workout starts, then put the phone back in my pocket (or my amazing Novara Gotham Rack Trunk from REI) and take off.

Photo of bicycle saddle with NFC sticker
That little beauty there on the seat works all the magic.

The smartphone in my pocket (a Republic Wireless 1st generation Moto X) has an astounding amount of computing power. The one in your pocket does, too.

The one thing that computers do better than anything else is speed up repetitive tasks. You can tell a computer using one line of code to copy the paragraph you are currently reading 1,000 times, outlining each paragraph with a different-colored box, and it’ll be finished before you get done reading the paragraph the first time.

Computers are good at repetition.

App developers seem allergic to harnessing that power as it relates to end user experience and NFC, most likely because geeks like me are the only ones who put in the time to get it set up.

(As an aside, the market is ripe with need of an open-source standard uniting the internet of things with the internet in our pocket. I doubt any of the Googles or Apples or Microsofts in today’s world could pull it off. It’ll have to be a newcomer. But that’s another post entirely.)

The magic of NFC (Near Field Communication, or the technology powering the little sticker on my bike) has not taken mass-market hold as I’d imagined it would by now, apart from Apple Pay and Google Wallet with their 45 minutes of fame earlier this year.

Have you made your smartphone smarter? Use stickers! Click To Tweet

You can do a nearly infinite number of things with NFC stickers. Here’s my top-of-the-head starter list:

  1. A sticker in your car that sends a text to your spouse that says “just got in the car” (I use that one), while opening the navigation app and beginning to play music from your most recent playlist.
  2. A sticker on your nightstand that puts your phone on vibrate, turns off cellular data, and opens the alarm clock app for you to confirm wake-up time.
  3. A corresponding sticker placed on the way out the door to turn on cellular data, launch your podcast app, or load up a live traffic app.
  4. A sticker on your desk at work that toggles between “Home” and “Work” profiles.
  5. A sticker on a keychain that automatically toggles you between “on the clock” and “off the clock” for an app like Freshbooks for freelancers.
  6. A sticker that places a call to your mom in a spot you see about every other day, to remind you you haven’t talked to her in a while.

I recommend the Trigger app, to make even a newbie Android user into an automation guru, if you’re willing to put in the minimal time.

Or, if you’re local, I’m more than happy to get your automation set up. Contact me for an estimate on what you want automated.

You should start using that super-computer in your pocket like it was designed to be.

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. Click To TweetThat’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.

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.

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.

You should be paying $100 per hour for WordPress maintenance.

With a range of services from $5 a month up to $300, where is the sensible guide to how much you should pay for WordPress maintenance?

Get more developer for your money. Original Image Creative Commons Attribution
Get more developer for your money. Original Image Creative Commons Attribution
It depends on what level of service you want. Here’s the simple method to calculate (roughly) how much value you’re getting.

A good WordPress developer* charges at least $100 per hour for their services. Anyone charging less than that either doesn’t take themselves seriously or is just a hobbyist coder, doing this for fun.

For a good developer, routine maintenance will take 15 or 20 minutes per week on most WordPress installs. To estimate on the higher end, that puts us at just over an hour per month, on average, for weekly maintenance.

Those of you who are good at math have already beat me to my punchline (three paragraphs from now): $133 per month. Stick with me, though. There are some ways to bring that cost down without hiring a lesser developer. In fact, your functional cost goes UP as you higher lower end developers.

Most simple sites don’t need plugins to be updated weekly, for starters. Barring major security patches (which good developers will know about because they are plugged into the WordPress community and hear about them hours after they are released. Put a checkmark in the “worth hiring a better developer” column) the average site will be fine with monthly software updates or even quarterly updates. A good developer will be able to tell you in 5 minutes how often your site needs maintenance, based on your size, frequency of posting, and subject matter.

A good developer needs to prepare for the worst case, with regard to those security patches mentioned above. If she is managing 15 sites with maintenance, updating an emergency security bug can take hours, if all of the sites are running the offending plugin or theme. So that cost is going to be baked into her monthly fees.

There are some great systems out there to help developers to manage multiple sites, but even with the best systems, they’ve still got to manually check to make sure updates don’t break things. That’s a non-scalable moment of developer attention, per site. In the world of open source software, security issues and bugs are inevitable.

So, here’s a relatively basic monthly price breakdown:

  • Weekly maintenance: $100-$150 per site
  • Monthly maintenance: $25-$30 per site
  • Quarterly maintenance: $7-$15 per site

So, if you want top-tier maintenance for your WordPress website, expect to pay about $150 per month. That gets you a little over an hour of focused attention from a top-notch developer.

Lesser developers take longer to do tasks, and make more mistakes. That’s not a slam, that’s how we learn. But know that if you are not paying in the $100 per hour range (based on how long I’ve said it takes to update most installs–if your situation is more complex, use the appropriate multiplier), no matter if you are paying a big company or a solo developer, you are probably not dealing with a top-shelf developer.

Some things scale so that costs are covered (like invoicing, administrative work, etc.) As the developers scale the business, the costs (not the taxes, to be sure) can spead over multiple clients, and bring down overall expenses.

The one thing that doesn’t scale in the whole operation is the focused attention of a top-notch developer. And it still takes time to maintain your site.

Focused attention of a top notch developer *never* scales. Pay what it's worth. Click To Tweet

If you don’t need an hour per month of that focused attention (and you probably don’t), scale your price accordingly.

Also, note that the best developers are not going to tell you how many hours a task takes them. They charge per project, or per task, which is fair, because penalizing for efficiency is twisted.

Paying for maintenance is well worth your time. Paying for subpar maintenance is OK, just be aware of what you are paying for.

I’d welcome feedback here: is there something I’m missing? That’s why comments are enabled!

*My working definition of “good” goes beyond someone who can install plugins and themes, and tweak some CSS/HTML. If your developer can’t at least understand PHP and JavaScript, they are still a hobbyist. Pros can (and should) charge at least $100/hr.