Question

BACKGROUND: I've been developing in PHP for two years - self taught, and beyond the most basic editing, really just a year and a half - but my experience is limited to a small number of environments. For the last three years, aside from random side projects, I've basically spent all my time developing custom solutions for one company's 12 sites, mostly WordPress with some occasional Drupal work for good measure. Most of these sites are for annual conferences and trade shows, so I stay busy constantly releasing new features, annual style overhauls, etc. I also build weekly marketing emails for their various campaigns.

Essentially, everything I have built has been on servers and systems I know intimately. I never have to wonder very long what could be causing a problem, as my browser console and WP_DEBUG are never far away.

PROBLEM: I've begun to reach out to prospective employers and had my first technical interview with a legit silicon valley development firm yesterday. I failed miserably. Aside from the second question which dealt with PHPUnit, a tool I had never heard of and was nowhere in the job description or mentioned in the earlier interview, I fell apart on the third question.

Since then, this question has been plaguing me, and I've been trying to learn what the best answer I could have given is. I'm coming up short. Here's the gist:

"So, knowing that our plugins are distributed to over a thousand websites, with all of their many possible configurations, how would you proceed when a customer reports an error of an unknown nature?"

My answer: "Well, most plugin companies I've worked with have asked detailed questions to try to root out the issue. I would begin by asking the user to deactivate their other plugins one at a time to see if that resolved the issue. If resolved, I would setup a local environment to see if I could duplicate the issue with both of those plugins installed..." etc. "From there, if still not resolved, I would request Admin access, as I've seen some of the largest plugin producers do (WPMU DEV, for instance) to try to resolve the issue - by using WP_DEBUG(TRUE), or other methods as the specific problem may dictate."

Apparently, this was hella wrong. She claimed that many users would feel uncomfortable giving out those credentials (either wp admin or ftp), and that many users would not have the requisite savvy to go through the plugin-deactivating testing steps. So what then should I do?

I got stuck. No idea. If I can't get in at all, and you can't at the very least tell me what plugins and theme you're using so I can try to duplicate... How in the world could I possibly figure out what is causing an error that can't be seen on the front end?

She began leading me to the right answer by asking me about whether there was a way to use var_dump (which I never use because, once again, I deal with a very limited number of environments usually).

Apparently, she felt that the right answer was to build a var_dump function into the plugin that linked up to an email script which would email me the results of the var_dump. This function should be activated by an easy to find button somewhere in the plugins admin panel so the user can send me the information.

Now, I'm not saying she's wrong. I know there's a ton I don't know and my limited experience with large scale productions is holding me back ("hello first public project on Github"). What I do know is that I'm digging through some of the larger plugins that I've downloaded from the WordPress repository to find some instance of a similar approach to error handling and I'm not seeing it. I'm also not finding much in the way of tutorials that address this scenario via google. So, can anyone advise on where I should look to develop better error handling skills? Or was my answer, by some weird bit of luck, right (though I doubt it)?

For extra flavoring - she was quite obviously displeased by everything that happened after the first question (basic query and loop question, easily nailed), and I was so completely caught off guard hearing what I thought I knew to be right was apparently so disgustingly wrong to her, that I basically broke down at the end of the interview. When she asked if I had any questions for her (with a heavy note of impatience in her voice), I basically said "I feel like I bombed this..." She said "Yeah." I said "I'm sorry if I wasted your time. I hope you have a great day." She hung up.

Was it helpful?

Solution

Looking at log files would indeed be the next logical step. Often there might be a toggle setting to enable/disable logging output. If that did not help identify the problem, you might go one step further and send the customer a special build with additional logging calls in it.

If that didn't work, you'd try to reproduce their setup (same OS, same PHP version, same database version, and whatever else was relevant) to see if you could duplicate the problem that way.

Asking for access to the server in most cases would be a last resort. But its really going to depend on the nature of your product. If this is a $30 Wordpress plugin, then I suspect most people wouldn't let you anywhere near their server. If this was a $300,000 CRM system and the customer knows you from user conferences, it may not be a problem at all.

Licensed under: CC-BY-SA with attribution
scroll top