5

There have been two times in my career where I tried, as gently as I could, to offer a better solution when I was being asked in an interview to help the employer do something not in their best interests.

Three-fourths of the job description was standard front-end development. The remaining one-fourth was to make an object-oriented PHP webapp that, on every signal I could discern, nobody could understand. Their basic ask in all of this was to improve code quality in the PHP and make it easier to understand: I was being interviewed in the wake of a junior developer being hired to do the same, and floundering.

I tried to gently make the point that sometimes mechanic's bills can exceed payment on a new car, and talked about what is possible with Python. (I don't want to start a holy war on technologies, but I've found myself personally to be significantly more powerful with new Python and Django than I can achieve in a legacy PHP application .)

Retrospective advice? Anything I should do from here?

Christos Hayward
  • 1,529
  • 2
  • 12
  • 23
  • 8
    It seems premature to make judgment calls about the viability of an existing software application during an interview. – Sam Dufel Aug 14 '15 at 21:48
  • It may be premature to speak up; it is not premature to judge: @WesleyLong states criteria for judgment that are only viable some distance in. At least where I'm from, the rule is that the company interviews you but you are also interviewing the company: you're supposed to do due diligence starting well before accepting an offer. Therefore the criteria for reaching a conclusion cannot be reserved for after sustained contact in the workplace : judging should be done before an offer is accepted, and that means on criteria discernible from the interview process. – Christos Hayward Aug 14 '15 at 22:14
  • 2
    What's the question? I assume in those cases you didn't get the job. But I assume that you probably wouldn't want a job if the employer is convinced that they want to do something stupid. So it sounds like you were successful at avoiding an untenable position. Not every employer is trying to do something reasonable. – Justin Cave Aug 14 '15 at 22:26
  • 3
    If I was asked to help arrange deck chairs on the Titanic and I had the option of working on another ship or taking a land-based job, I would choose to work elsewhere. – emory Aug 14 '15 at 22:35
  • "I was being asked in an interview to help the employer do something" - that sounds very fishy action from employer. Asking for actual work advice during interview (aka "do my work for free") does not sound like good starting point. (You may want to clarify your post if that way of reading your post is your intention). – Alexei Levenkov Aug 15 '15 at 02:14
  • Are you implying that anyone who builds with PHP is making a sinking ship? – Brandin Aug 15 '15 at 10:56
  • I would not hire someone whose response to a challenge is to start afresh with his or her own favorite toolset. – Eric Aug 15 '15 at 22:34
  • @JonathanHayward - I completely agree about evaluating prospective employers. By 'judgement call', I was referring more to a spoken recommendation to the employer to abandon technology A in favor of technology B. – Sam Dufel Aug 16 '15 at 21:02
  • @Eric I think that makes plenty of sense, particularly if you did not know this was the second time in my career taking this course of action. But in this case they had bad PHP (not all PHP is a sinking ship, but some is), bad enough that no one really understood the codebase, and they hired a junior developer, and while they wanted to keep the junior developer even though he was baffled by the code, and they were offering heavy pay even for a senior developer for someone who would go through the PHP codebase and make it better and easier to understand in situ. – Christos Hayward Aug 17 '15 at 22:40
  • @Eric Your response makes plenty of sense and I can sympathize with it. On my end, though, I would prefer significantly lower chances of receiving an offer, on conditions where I have a shot at success, than sell, sell, sell and be hired after creating the expectation that I would in fact go through the PHP codebase and make it easier to understand, in situ, with the knowledge that a developer they wanted to keep on board couldn't understand the legacy codebase. – Christos Hayward Aug 17 '15 at 22:45
  • One other comment... My suspicion is that a lawyer (or perhaps a linguist) could put significantly different distinctions between outright lies, misleading, and leading the impression. But unless it's a matter of getting in trouble with the law, I don't consider the distinctions too significant. Professionally, if there's something I knowingly walk out having said or left an impression I can do something I know is a nonstarter for me, and I have not taken any effort to clarify, I HAVE FAILED. Wish I'd said what @Wesley suggested, though. – Christos Hayward Aug 17 '15 at 22:59
  • @Brandin, I don't think that anyone who builds a PHP is making a sinking ship. PHP5 includes multiple attempts, right or wrong, to make it easier to write well-engineered PHP. That's a global answer. A local answer is that if the reason I'm being interviewed is because they can't find anyone who understands their codebase, this might not be the best time for me to tangle with PHP. – Christos Hayward Aug 17 '15 at 23:09

3 Answers3

16

I would say that until you've actually become familiar with the business domain, the architecture of the solution, and the current state of their development, making that statement is premature.

An answer that would be appropriate might be, "You've explained the concerns you have well. However until I can do a fairly thorough review of the project and its objectives, I can't make a specific recommendation as to the best approach. Certainly I have some thoughts, but those are based on my suspicions from your description. To say right now what has to be done would be premature."

Just my thought. Obviously context is everything, here.

Wesley Long
  • 63,364
  • 22
  • 144
  • 213
14

Retrospective advice? Anything I should do from here?

Stop wasting your time in these interviews.

Your goals in an interview are solely to determine the fit between you and the company, to sell yourself, and to try and get the best offer you can.

You are not a consultant. You don't know the company history, you don't have a sense of the company politics. Basically, you have insufficient knowledge to apply to this situation. You should not be trying to fix the company, or right the ship, during the interview process.

If you decide to go ahead and accept an offer, perhaps then you can take on the role and try to change the architecture, set the company on the right path, and be the hero.

But until you are an employee, you can't lead the prospective employer to salvation. So, don't try.

Joe Strazzere
  • 382,456
  • 185
  • 1,077
  • 1,492
5

I for one love when anyone challenges the status quo. I welcome anyone on my team to challenge the validity of our tools, architecture, code handling, whatever. A lot of times people have valid points. These points may not lead to the exact right answer but put you on a path. And by the time you talk about something 10 times with 10 different people who are "experts" you form a pretty good picture of what you could do to be most efficient.

But at the same time when we dig a hole we might have to use a spoon and just live with it. No use in walking to China (I am in the US) to get a shovel to dig your hole if you have a spoon right next to you. Yes the shovel will dig faster but how long does it take to get there? And when you get there is there a better shovel in Brazil?

So I agree with Wesley to a point. However I like when people disagree. If I found you talented and hired you for this position, I would have very high expectations since you have deemed your way "way easier". So I would expect you to come in and make significant progress quickly or I would get rid of you. This is simply because if I am going to let one of my guys go to China for a shovel they aren't walking there.

So this comes down to how confident you are in your abilities. When I was younger I had much the same attitude. But then after working on an app for 80+ hours for 5-6 weeks straight because I said it was "way easy" I learned my lesson. At some companies there are layers of bullshit to figure out. An app my seem easy on the outside but may have to connect to a legacy system or do something completely illogical because people are used to it.

blankip
  • 22,297
  • 7
  • 56
  • 86