How Much Should WordPress Plugin Customization Cost?

I get a fair amount of project inquiries. One of the biggest things I see is people wanting small WordPress plugin customizations. I don’t mean small in the sense of change a line or two of code, I mean small in the sense of changing how part of the plugin works. Changes that may take a half day or up to maybe two days.

I even get requests that involve wholesale changes to how a plugin works, these types of changes can take up to a week’s worth of development time. Though this isn’t really “small” in my book, it usually still is in the eyes of the requestor. They don’t understand the mechanics of why a “premium” plugin costs $49 (or $99 for that matter) and add-ons cost $19.

Surely if a plugin costs $49 and an add-on costs $19, you should be able to do my custom tweak for like $15, right?

No. 

To make that assumption is to throw out basic principals of how things are made. The plugin may cost $49, but that wasn’t the cost to make the plugin. Hundreds, perhaps thousands of hours went into the initial plugin creation. The plugin developer makes this back on sales of the plugin. If 1000 copies are sold, they’ve grossed $49,000.

The same goes for add-ons. Depending on complexity, they can be made in a day, or over the course of a week or so. Selling 100 copies of one for $19 gets the developer $1900 towards the cost of development. Common-use add-ons are great. You generally won’t see an add-on that only 5 people may use. Either it’s more expensive or the developer would never make back the cost of building it.

I’m not going to complicate things at this point on how products are bundled and priced to add value and drive sales, lets just stick with basic math for the sake of this argument.

The custom shirt scenario

Have you ever looked at the cost to screen print shirts? The more shirts you buy, the cheaper the cost-per-shirt becomes. Sure you can get 1 shirt made, but it’s going to be expensive. The screen still has to be made whether you use it 1 time or 100 times.

But if you get 100 shirts made, the cost to make the screen is divided out over the shirts produced. The same goes for plugins and add-ons. The cost can be divided if it’s re-sold as a generic add-on, but this doesn’t apply to the single-use customization someone requests.

Now, when you contact someone to do custom work on a plugin and change how it works, you need to understand that you’re paying for time.

For a beginner developer this may be $35/hour. You might expect to pay closer to $100/hr for a seasoned developer, and upwards of $150 to $200 (or more) for an expert. Choosing a developer is a topic for another day, but keep in mind– if your customization is going to take a day, expect to spend more than $500 to make it a reality. You’re paying someone to make something custom for you that they aren’t going to resell.

Assembly Lines and Customizations

Henry Ford revolutionized the Auto and Manufacturing industries with the invention of the assembly line. The best part of the assembly line is that it works great when you’re doing the same thing over and over. Ford was able to assemble a Model T in 97 minutes.

The downside to the assembly line is that it didn’t allow much room for customization. If you wanted a custom product, it was usually still made by hand; and at the time, hand-assembled automobiles cost more than assembly line automobiles.

The Bottom Line

In the end, if you want custom work, understand the mechanics of your request. You’re asking for something custom that isn’t going to apply to anyone else. If you need something super custom, be prepared to pay for someone who knows the ins and outs of the systems you plan to use.

As the requestor, you have to afford the full development cost. If you can’t do that, assemble a solution based upon what plugins and extensions exist. That’s the inexpensive way out.

2014 Goals

Better late than never…

I had sketched out some goals I wanted to accomplish this year. I normally don’t bother because follow through on goals never ends up as expected. I figured maybe if I do a recap at the end of the year it’ll highlight points I failed at and how I can do things better. In either case, here’s the short list:

On the personal side I’d like to be more active. I tend to be active in the summer with yard work and tending to the garden. It’s nice to get that movement but it’s never consistent. I’ve gained a few pounds over the past 5 or so years and am nearing the top of the “good” area of the BMI scale for my height. The plan is to do some regular exercise (2-3 days/wk) as well as find ways to change up my diet and hopefully lose 20-30lbs near the end of the year. Current weight is around 165-170lbs and I’d like to get back to something more healthier around 135-145lbs.

I’d like to also book and schedule the honeymoon cruise that we’ve already had to cancel one or two times. Now that the kids are older it’ll be easier to get away for a week without them.

Lastly for personal goals, I’d like to make a habit of eating out with my wife, without the kids, at least one night per month. This shouldn’t be too hard to do, we managed 4-6 times last year. Consistency will make this easily attainable.

On the business side of things I have an internal sales figure I’d like to hit. Will report on that at the end of the year.

I’d like to get to at least 6 WordCamps this year, with 1 of them being international. 

I’d like to blog more regularly– I plan to offer some video tips and posts on workflows, etc. This will be implemented once I re-launch a new design of my business site. I’d like to shoot for 1-2 posts per week for the tips feature and as-needed on regular blog posts. Focus will be on content, not frequency.

Lastly, I’d like to find a way to contribute 1 day per week to WordPress core development, plugins, or other non-paying open source work. This will take some time to get worked into my schedule, but as long as I’m consistently doing it on a weekly basis by the end of the year and it’s sustainable (i.e. I don’t feel like it’s a chore always finding a spot for it on my schedule) I’ll consider this goal met.

Choosing a Web Host for a Project Should be Like Pairing Wine

Think about it– 

You walk into a fancy bistro for dinner. The chef has crafted a wonderful three course meal for his guests this evening. He’s carefully picked ingredients that compliment each other and make three wonderful dishes. Along with those dishes, he’s paired a wonderful wine selection. You eat your meal. It was delicious.

When doing web projects for clients, your role should be similar to that of a chef. It is your responsibility to pick the ingredients (plugins, themes, code) to make the dish (project) come together. But it doesn’t end there, they need a fine wine (hosting) to compliment it.

Looking at things this way gives a good illustration of all the pieces involved to launching a successful web project. Hosting should be paired depending on the scale of project you’re doing. You wouldn’t pair a light white wine with beef entree; the beef would overpower the wine. Likewise, you wouldn’t pair a heavy red wine with a delicate fish entree.

More often than not, I see hosting mis-paired for web projects though. With more and more specialized/niche hosts appearing it’s key to remember everything isn’t one size fits all. A host with a great cache setup might be good for content driven sites where the site is for the most part read-only. That doesn’t really work when you have a lot of moving parts like dealing with sessions (e-commerce) or geolocation.

Knowing how to pair projects with hosting will save you the pain of developing an awesome project for a client then falling flat on your face when rolling it live. I’ve learned those lessons before– the hard way.

Guilt and Control

Guilt, much like fear, is a controlling factor. Guilt and fear should motivate you instead of control you.

Remember, freedom is the power to choose right over wrong. By allowing an outside force to control your decisions, you are giving up your freedom to choose. Once you give up your freedom to choose you are no longer a free person.

Positive not negative. Right not wrong. Freedom not control.

Remember that.

(Note: I’m referring to the feeling of guilt, not the act of being guilty.)

What Drove Me to Git on the Command Line

This past Wednesday I had a chance to to my first #WDSLunch. Something we’re trying over at WebDevStudios– a brief session of hanging out and learning something new with team members. I presented a topic about Git on the command line.

I’ve been doing a lot of Git lately, and about 2 months ago, finally switched to Git exclusively on the command line. After showing off some of my workflows and answering some questions I had a revelation about why I had switched. It’s just easier.

Sure there are tools, like Tower, and SourceTree that help you do Git tasks in a GUI, but they cost you time and effort. That was a big thing to me. Eliminating time and effort, in most cases, boosts productivity.

When I used Tower, I was constantly adding repos. I needed to touch something temporarily, I’d add it in Tower. I’d do some stuff, make some commits, and then what? Sometimes the repo would stick around and sometimes I’d delete it. After a few months of usage, I had a ton of repos listed in the GUI. Some were active projects, some were old projects, and some were temporary repos that had since been deleted. It was a mess.

I’ve always been a fan of the command line so I tended to be doing things in it at some point during the day. Why not manage my Git repos there too? I mean, when you do Git on the command line, things are just “there.” There’s no GUI to set things up in, nothing to manage. If you’re in a directory that’s a Git repo, you’re good to go.

One thing that helped facilitate this was switching my shell to ZSH + Oh My ZSH + Agnoster. It makes things easier because it highlights when you’re in a repo, and it’s current status. This certainly isn’t the only setup like this, but it’s what I’m using.

Now I can just do Git. No need to open a fancy GUI just to add a repo so I can manage it. This alone has changed how I work, and even more importantly, how I think about version control.

2013 BBQ

It’s that time again– we’re just a few weeks away from my annual BBQ.  This year it’ll be on Saturday August 3rd.

Festivities will begin around 3pm and food will be served around 4:30-5pm. If the weather is decent and not oppressively hot, we’ll have a bonfire around dusk.

Now for the finer details–

What I’ll be providing:

  • Meat: Pulled pork, ribs, chicken
  • Plates, plasticware, cups, napkins
  • Ice, bottled water

What you’ll need to bring:

  • A side, desert, chips, iced tea, soda, etc.
  • It’s BYOB so bring an adult beverage of your choice if you wish.
  • Chairs. I have a bunch of tables and chairs, but if you have folding camp chairs, you may want to throw some in your car just in case.
  • We’ll probably set up a sprinkler for the kids, so bathing suits/towels if you want.

Please leave a note in the comments with how many people and what you’re bringing and I’ll update a list here so others know what’s already taken care of.

Thanks and looking forward to seeing everyone in a few weeks! ~Ryan

Address:
114 N York St
Etters, PA 17319
 

Update with RSVP list and what people are bringing:

RSVP – 41 total

  • Misc friends/neighbors – 18
  • Aaron B
  • Jayvie + 1
  • Travis T
  • Brad & April
  • Jason C + wife, kids
  • Aaron & Lindsay
  • Doug + Stewart clan
  • LJ
  • Dustin & Nicole
  • Michael & Steve
  • Camden + 1

Food

  • Mac and cheese

 

Linode Hacked? Who can fill in the missing details?

I’m seeing mixed information online that Linode may have been hacked. The biggest collection of comments seems to be on the hacker news post. There are quite a few there saying they got new credit cards recently or have had suspicious charges.

I got a letter from my bank last early last month telling me I’d have a new card by March 25th. I got a new credit card by that date as well as a separate mailing for a PIN reset. The mailing from my bank did not mention which merchant triggered the card replacement.

I didn’t get the email from Linode until after I had a new card, which leads me to wonder if they’re related or merely a poorly timed coincidence.  This post leads me to believe that it happened only 2 weeks ago, which is funny because I actually updated my Linode account to the new card a few days after the 1st. If it did in fact happen 2 weeks ago they would have had my old credit card number that was on file and already canceled by my bank.

Since Linode seems to be short on details at the moment I was hoping to aggregate some info regarding who’s a customer and was sent new cards from their bank recently. I haven’t noticed anything suspicious on my statements like some others noted.

Unfortunately there’s not a lot of clarity on what’s going on and Linode has been quiet since their email on Friday. I’d venture to say it’s a mix of truth and lies at this point.

This comment highlights the fact of how incompetent Linode staff would have to be. To me it’s a bit far fetched.

These guys are looking totally incompetent at this point.

If you believe this Ryan guy, credit cards stored on the same server as the key to decrypt them, Lish passwords stored in plain text, they’ve known for some time and lied about what actually happened and now they’re saying “we won’t do anything about it” via email?

“You are of course free to take any steps you deem prudent or necessary to ensure the integrity of your online presence.”

Unbelievable.

Edit: not to mention they “made a deal” with the hacker not to tell anyone? What the hell?

WordPress theme for Colloquy

I got bored the other week and created a WordPress styled theme for the Colloquy IRC client. It uses the standard WordPress colors and includes a nice WordPress logo in the background.

There are two variations of it– WordPress, and WordPress Busy. The only difference is that the latter hides events (join, part, nick, etc), which I find very useful for very busy rooms. Hence the name. ;)

Colloquy WordPress Theme

To install download the zip file containing the styles and image, unzip and drag the variants folder into ~/Library/Application Support/Colloquy/Styles/

From there you should be able to activate the style in Colloquy from Style > Standard > WordPress / WordPress Busy

Updated Theme

In sticking with the busy developer mantra of “I’m too busy to update my own site’s theme” I did what I usually do and update to the the latest WordPress default theme. Now featuring TwentyTwelve instead of TwentyEleven.

And hey, I blogged about it! ;)

Speak of the Devil

I’ve had something bugging me for years. It’s been so long that I can’t even remember specific dates anymore. It all started when I was in high school. I think it was about 10th grade. Fall; so November 2000 perhaps.

It all started at a Hunter’s banquet at the church I went to at the time. A bunch of us were volunteers to help serve and bus tables.  A friend, Ethan Bennicoff, and I were working together most of the night and were having a fairly regular conversation– until it got really weird.

Through the process of conversation various people’s names came up– people we didn’t even know were at the event. Moments after we brought the name up in conversation we’d look up and see the person walking past. The first time it happened we gave each other a funny look and Ethan said “speak of the devil.” From there it only got worse. It happened at least 20 times that night, each time with us looking at each other and saying “speak of the devil.” Each time getting creepier and creepier.

For those that don’t know, or didn’t click the above link– “speak of the devil” is a short form of the idiom “speak of the devil and he shall appear.”

This continued through high school, happening fairly regularly. By the time I had graduated I think it had happened at least 50 times. We didn’t really keep count, but it was enough for it to be a running joke. We could talk about people and they would show up. (If only we could harness this when we needed somebody!)

It happened on and off over the years since even though I’ve had little interaction with Ethan other than my first wedding in 2005, and a friend’s wedding in 2007. Recently it’s begun to happen more frequently. Unfortunately in my old age of late 20’s I haven’t kept track.

Most recently this week it’s happened a few times. I was talking with a friend the other evening about the cost of Air Force One. I noted how it came up to my area and did touch and go practice at MDT on occasion. These practice sessions are always unscheduled so there’s no way I could have known. The next afternoon, guess what plane I saw circling around outside my window?

I laughed to myself and immediately went to tell another mutual friend that was in the know since the other person wasn’t online. No sooner did I tell the mutual friend, the other person signed on. This was all within a matter of two minutes. It was a double “speak of the devil” — and quite creepy at that.

Tonight after dinner I was talking with my wife and continuing a conversation from earlier in the day. A person’s name came up and not 30 seconds later my phone lit up– a twitter notification from that person. The tweet was not a reply, but a random question. The timing was a bit odd to say the least.

Maybe I’m reaching a bit with the whole online scenarios, but it still happens IRL too. Perhaps I should start a blog to log the occurrences. I don’t know. What do you think? 12 years later and it’s still happening and still freaking me out.

ramblings and more from ryan duff