Here’s the story. We have a WordPress website.
To be exact, the team I’m working with bought a WordPress theme for our website. Then, we outsourced its customization to a freelancing dev guy.
Let’s call him Jason.
It’s actually not that easy to find a developer who’s eager to dive into WordPress waters. WP is known to resist customization in all the ways possible.
I believe that all work should be respected. So take none of my following words as an accusation.
It’s more like a piece of friendly advice to anyone who might be new to WP and learns new aspects. Just like me.
Sometimes, errors have no logical reasoning.
Sometimes, system errors just pile up — one on top of the other. The only thing left is thinking: “I wish I hadn’t even tried changing that”.
One time, we added some text blocks on the main page. I had to switch texts in them. But the block weren’t editable.
So I had a Skype call with Jason. I shared my screen with him, and he was like: “Oh yeah, I know this mistake. We get it each time. The only solution is to keep refreshing the page until everything works. I’m not sure though how many refreshes you need. More than two, for sure.”
Okay. I can work with that.
I can tolerate even how the text formatting always requires manual changes in the HTML view since sometimes WP just randomly decides to make H2 bold in one case and regular in the other.
Then, the day comes when the hosting fails.
Our old teammates all have a history of finding some loose ends and sending them to Jason. So when we see a mistake, we have a reflex: rolling our eyes and blaming “Jaaasoon”.
The freshest teammate doesn’t get the ritual though. He says: “Why blame the developer? The hosting would have failed with any other guy.”
So I ask myself: Really, why so much prejudice?
Then, I remember the “pop-up thing”.
See, we needed to add the pop-up on the webpage.
We had a different one on our website already, so Jason copied it.
Here’s how it looked:
The thing is, it contained the fields Name, Email, Subject, Message.
In this particular case, we needed to replace the Email field with the Facebook Page field and add the Skype field.
Jason goes ahead, creates a new pop-up by using the existing one as a template.
We get this:
The job is done. But I have to test it.
I fill in the fields, I get nothing.
Now, look at any working device. It has the front part, which you use to operate the device, and the connected inner part, which makes the device functional.
You get the idea. If you take away the cable connected to the button, pushing the button won’t send the signal.
Now, let’s get back to the form. The mission of the form was for us to get data from a user.
The first form had a command that went with it — to send the [your-email] field in a message body of a letter. That should drop to our inbox.
The trouble with the form that Jason gave to us as a “done job” was that it had no commands for the new fields.
The same message body as above.
So I’ve found the IDs of the fields and added them. The form has been finished.
I’m no way smarter than Jason. I’m pretty sure he’s capable of doing even more complicated tasks.
Yet, this whole pool of requests we send him additionally gives me an important question to think over and discuss.
A client can’t anticipate all possible issues.
When a client requests changes, it falls on a specialist to know what other changes should be done as well, so that the requested change can fit in.
That’s why experts get paid — for their expertise. For the collected knowledge they have, which helps them make decisions and explain to the client why some decisions have to be made.
When the task is completed with no anticipation, it shouldn’t be the next task to make the first task complete.
The job might look like it’s done. But as I bite in, it all appears to be like mashed potatoes inside.