Have questions about buying, selling or renting during COVID-19? Learn more

Zillow Tech Hub

The Day I Broke Zillow: Tackling Fear of Failure

About one month into my internship at Zillow, my worst nightmare materialized. Zillow.com was broken, and it was my fault. To be fair, what I actually did was introduce a broken link into zillow.com/advertise (not bring down the whole site), but on the other hand, it did potentially affect Zillow’s revenue.

Breaking the website

My task had been to migrate a page from the content management system, CMS, to our main Java server and adjust the HTML and CSS to add new advertising material. It was a fairly straightforward task, but I used the test environment version of the CMS page to dictate how I built the Java version of that page. Consequently, I accidentally included a link to a test environment page instead of a link to a production page.

Although I spot-checked my work, the error was easy to miss with a manual check because I personally had access to the test environment page, so the link did not seem broken to me. However, a normal user outside of the Zillow network did not have access to the test environment page, hence the broken link. One of Zillow’s sources of revenue is from real estate agents who sign up to be featured on Zillow as Premier Agents, and the link that I broke was one that would bring them to the signup page for our Premier Agent program. So, though my bug was a small one, it had potentially substantial impact.

Because of the mistake’s potential impact, I was reeling — all of the things I did wrong and what I could have done to prevent the mistake bombarded my thoughts. Why, why, why, didn’t I write integration tests?? I agonized. If I had written integration tests they could have detected the broken link and this situation could have been avoided. I had learned my lesson. It is one thing to know that integration test coverage is important; it is another thing altogether to see firsthand where an integration test could have caught a bug before it was shipped to production.

If my thoughts had been mere reflection, I would have been able to break out of them to focus on the matter at hand. Instead, my mind drifted to the dangerous territory of “analysis paralysis”. What if… I should have… I shouldn’t have… I was so anxious that I couldn’t think straight. My sensitivity to failure was, in part, a vestige of my former career.

Dealing with Fear

Before I was a software developer, I was an Army officer, and failure tolerance is often a luxury the military cannot afford. The military’s zero defect stance is not without good reason. In war, even a simple mistake can be fatal. In fact, when training junior officers, military instructors commonly ask students to consider the gravity of their actions and their potential to mean life or death on the battlefield.

The “gallows humor” way that instructors urge such reflection is to quip that junior officers “just killed their platoon” when they make a mistake. Did you navigate to the wrong point? You just killed your platoon. Did you tie a knot incorrectly? Everyone’s dead. Within a military environment a bit of fear can be healthy because it encourages individuals to follow the instructions that are issued from higher authority exactly. The strength of the military comes from its overwhelming force and unified action, so if one wannabe hero goes around making risky decisions, everyone can be in jeopardy.

When we weren’t “killing platoons,” being in the Army was actually pretty fun. I’m on the right.

Though it is true that in combat, mistakes can cost people their lives, failure intolerance offers little benefit in the civilian world. The fear of failure can be paralyzing and counterproductive because it can prevent your brain from processing information in a helpful way. Coming from that environment, though, it is easy to see why I would be terrified of making mistakes.

Still, I had to do something to get unblocked. I thought back to the classroom instruction at Ada Developers Academy, my alma mater and an intensive full-time program that helps women and those of non-binary gender transition to software development careers. At Ada, my instructors urged us to lean on the strong community that we had built among the 47 of us who had embarked on a journey together to transition from various careers to software development. The response from my classmates was incredible. They reassured me that one mistake didn’t mean I was a crappy programmer, reminded me that this was just the beginning of our internships, and encouraged me to look at this experience as an opportunity rather than a source of terror. Some even shared their own stories of mistakes they had made and how their supervisors had reacted. Talking to my support network gave me the courage to re-enter the situation with newfound clarity and calmness.

A Culture that Embraces Failure

I contacted the team that was impacted by my mistake and worked with them to get a temporary fix. They used an existing A/B test framework to patch the bug. Within a couple of hours of being alerted to the broken link, we had a working fix. In the meantime, I went to my manager and broke the news, letting him know of the temporary fix in progress. The next day, he calmly led me through the process of making a hotfix. When we were finished, he smiled and said “Congratulations on your first hotfix!” “Thanks…”, I gruffly responded, audibly not pleased. I could not believe I had done something so stupid and impacted the website like that. The next thing my manager said blew my mind. He nonchalantly replied, “Well, if you’re not breaking things, you’re not working, right?” His attitude changed everything for me. He seemed totally unphased by my mistake, and even suggested that it was encouraged as a sign that I was doing real work that impacted the business.

It was then I realized that Zillow was the right place for me. As a junior developer, it is important for me to work somewhere that I can grow. Often, failure is a primary catalyst for growth, so it is wise to seek out organizations with tolerance for failure within the context of learning. It is hard to learn from anything when your mind is blocked by fear, so when companies adopt a failure tolerant atmosphere, they also create an atmosphere ripe for learning.

In the end, my mistake taught me a priceless lesson about being more comfortable with failure, and contrary to my fears, that experience did not damage my manager’s perception of my abilities. In fact, four months after the incident, I was given an offer to stay at Zillow as a full time developer, and I’m happy to say that I accepted. Though I haven’t needed to do another hotfix yet, I know that if and when the time comes that I’ll be much better poised to take it in stride.

The Day I Broke Zillow: Tackling Fear of Failure