The wall behind the wall
Published: 2021-10-29 20:10:00

---
title: The wall behind the wall
published: true
description: A story in programming and a lesson in project estimating
tags: 
//cover_image: https://direct_url_to_image.jpg
---
Here is a paradigm or a pattern that many programmers journey throughout their careers.

It can also be applied to life in general.

So let's get started with a simple problem: A wall.

And once you get over that wall, there is another wall.

And then, after that wall, another wall.

I call this **The wall behind the wall**. 

---

One day, my manager came asking for help troubleshooting a problem on a WordPress site.

The contact form was not working on the homepage, but it would work on a private page.

I investigated to see what was going on. What was missing? Why didn't it work on the homepage?

The contact form on the private page had events attached to the form while the homepage did not.

In conclusion, the contact form was not loading properly on the homepage. Still, but why?

Further investigation lead to that form loading on the private page required a script. That script was being minimized from a plugin. We disabled that plugin, but that did not fix the issue.

After prodding and poking around, we found another plugin that was "unloading assets" on the page.

Configuring the plugin on the homepage allowed the script to load and fixed the issue.

We were finally over the wall.

But it worked half heartily.

The form could be submitted but it would error:

"Your submission is considered spam"

A wall behind the wall.

After enough head banging on the wall, we found that there was a invisible reCAPTCHA (anti-spam feature) on the form. 

Disabling reCAPTCHA all together solve our problem and we were finally over two walls.

We are free!!!

---

Two days later, I get a text message from my client: 

"Did you disabled the reCAPTCHA on the site? I am getting a TON of spam"

I realized I have just hit an invisible wall.

I had to reactivate the reCAPTCHA but that would mean the form would break on the homepage.

How do I get the best of both worlds? That is getting reCAPTCHA and the form to work without fighting each other.

After wallowing on my bed for some time, I get back up and worked on the issue.

Utilizing the plugin that unloaded assets on the homepage, I targeted the reCAPTCHA script on the form. 

It worked.

Now we were truly free.

----

As you can see, I had traversed two extra walls behind one wall. 

Why did I tell you this story? Because you are going to face what is called, the "Unknown unknown".

That is when you can only see one wall but not the many problems or walls that hide behind it. Possibly an infinite number of walls.

And that infinite number can burn you out.

----

When it comes to estimating a project, there is a reason why it should be normalize to "double" the quote.

We are charging for the **Unknown unknown**.

Most developers do not have the insight to see behind the wall.

In my recollection, it's with experience that we are able to deduce that there are many walls behind the wall. 

That experience is usually from being burned by exploring many walls. 

----

Hey look, a simple task!

"A simple task like putting a border on a box? Yea! Done."
"Henry, this doesn't look good on the phone. Look how it collapse the contest beyond the phone's width"
"Okay. Media Query."
"Good. Oh wait, it doesn't look good on the iPad"
"Okay... More media query"
"Oh yeah, it doesn't look good on my watch too..."
"(Internally scream)"