Saturday, August 26, 2023

"Toxic" Answers

Preface: This observation is not intended to call out any specific people.

Something I've observed in the work environment: a tendency from some types of people to provide what I would term "toxic answers". This is when, broadly speaking, someone on a team asks a question (re tech, process, how to do something, etc.), and someone else provides an "answer" which is not really helpful. This can take several forms:

  • Reference to existing documentation which is out of date, incomplete, or inaccurate
  • Reference to process which is surface-level related, but not germane to the actual question
  • Reference to something which someone else has stated to be the answer, but is not actually the answer, and the person echoing it has not personally verified
  • Some related commentary which expresses opinions on the topic, and pretends to answer the question, but isn't actually actionable
  • Commentary which expands the scope of the question to include more questions/work, without answering the original question
  • etc.

Obviously the above could be deemed "unhelpful", but why do I think of these responses as "toxic"? I will explain.

In a work context, you have various levels of understanding of topics discussed, ranging from your subject matter experts (with in-depth knowledge) to you high level managers (with usually just buzzword familiarity), and levels in between. When someone on a team asks a question, and someone (especially a more senior person) provides a "toxic" answer, this typically has a few effects:

  • The manager(s) believe the question has been addressed by the person providing the response, even though it has not
  • The asking person might be disinclined to pursue to topic further, and thus (at best) waste time working on it solo, because they feel they cannot inquire further
  • This can create more work for the person asking (in the case of a response which expands the scope), which creates a negative motivation to seek help
  • In the case of false/misleading or out of date information, this can waste lots of time going down paths which are ultimately not fruitful
  • If the information is known not helpful by the person asking, it can strain the working relationships
  • It generally "shuts down" the discussion, with the question effectively unanswered
  • Worse, it propagates an inaccurate/damaging perception of value to the team:
    • The person asking the question should (possibly) get credit for reaching out for something difficult/nuanced, but instead they are likely perceived as less capable of independently solving problems
    • The person providing the response should (probably) be viewed negatively for damaging the team dynamics and time management, but instead will likely get credit from their management for providing timely and helpful answers

In addition to the damage above, it can be challenging even for a "good" employee to navigate the process of trying to improve this behavior, depending on the perceptions of the employees. The secondary harm of someone providing toxic answers is that over time, they are perceived as more valuable team members by their management, so negative feedback about their answers or behavior is typically seen as more of a negative for the reporters than the subject. This is an observable effect within teams, of course: you don't want to criticize the person who management views as a "star employee". This compounds the effects, ultimately driving the actually more productive employees to seek roles elsewhere, away from the toxic influences which they cannot modify.

My advice to companies and managers, with respect to the above, would be this: do proactive follow-ups for inquiries where the outcome is unobvious, and ask the team members if the answers provided led to actual resolutions. Assume people on the team are not going to proactively raise concerns about people viewed as "untouchable" or senior within the org, and factor that into your information gathering. Be on the lookout for people who just provide links for answers, without checking if the information referenced actually solved the issue presented. And understand that your best employees are not the ones providing the most "this might be related" type answers, but the ones providing the most actionable and accurate answers. If you don't identify and curtail people providing toxic answers within a team, you're going to have problems over the long run.


Tuesday, August 22, 2023

An amusing employment opportunity interaction

So I was recently doing some casual employment opportunity exploration (as one should do periodically, even if the situation is not pressing if nothing else just to see what else might be out there, and to keep one's interviewing skills updated), and a funny thing happened.

I was being screened by a developer as part of a normal process, and got a typical "test" problem to write an implementation for. In this case, it was something which would be real-world applicable, but still small enough to be feasible for an interview time slot. Germaine to the story is that, for this interview, the other party was not using an online shared text editor for sample code, but rather just having me share my favorite (or handy) IDE/editor from my local system to write the code in.

Now, for this instance the position I was being evaluated for was primarily Windows-based, so naturally I opened Visual Studio, and switched from my default most recent personal project to a new blank file, where I took down the problem description as described. As I was doing this, though, I realized that what the counterparty was describing was something I had already written for my own open-source library, which was the same project which I had already had open in Visual Studio.

So I asked if I could just show him the solution I had already written for my open source library, and explain it to him, rather than writing it again. He said that was okay, since I already had it open, and I did so. The total explanation took about a minute, he was satisfied that I fully grasped the solution (I'm sure the working and unit tested code helped with that), and we were done with that section of the examination.

Now obviously all interviews don't go like this (or mostly any), but it was pretty funny to happen to have code readily available which solved the exact problem being asked for, including being computationally optimal and templated already, which I could just point at. I feel like notwithstanding effort to make interviews objective and separable from any previous work, it would really save a lot of time if one could just point to working code one had previously written (say, open source utility libraries), and assert that you can write code based on those previous efforts. I wouldn't expect that to be the norm (especially since it's comparably easy to fake), but I can attest that it's pretty cool when it does happen like that, to an expedient and positive outcome. :)

Friday, August 18, 2023

On Company Review/Info Sites

For various reasons, I find myself once again at a point in my career where I am considering both searching out unbiased feedback about organizations, and potentially providing such myself. I perceive a considerable amount of value in the general existence of such information, in a few different ways. From the employee perspective, obviously, it can bias where you take a job, help align the working conditions with your expectations and desires, and consequently increase overall job satisfaction and potential for a good fit. From the general economy perspective, transparent information can be a powerful force in motivating companies to create better working conditions, by aligning that goal with economic incentives (vis-a-vis the ability to recruit better people). It's a general objective good thing.

It's also a hard thing, mainly because there are a lot of bad actors in the corporate space, and companies can be very punitive and litigious when it comes to negative feedback about them. Just as Yelp.

Conceptually, it would be great if there were open, pseudo-anonymous forums where this could be done, with some semblance of accountability (ie: to prevent outright falsehoods and misrepresentation, as opposed to just subjective opinions). There are some current efforts (eg: GlassDoor, Blind, etc.), but all of these include some amount of peril for contributors, and suffer from some amount of selection bias. To the former point, it can be somewhat perilous for current or future employment prospects if comments on working conditions are associated with a current or potential employees identity, and even the willingness to provide feedback on an employer might be seen as a risk for employing someone. On the latter point, the current sites tend to have a large amount of selection bias: in general, disgruntled employees are far more likely to post information to the sites, rather than content employees. Both of these tend to skew the overall data, and impede the ability to have comprehensive and unbiased information available.

Personally, I am hesitant to provide feedback on any current or former employer which could be construed as negative, because I don't want to imperil any future employment potential. This is actively bad for the market and other potential employees, though, as lacking insight and perspective can not only lead to bad choices from others, but prevents the market forces from helping to improve working conditions overall (ie: by financially impacting "bad" employers). My self-interest is unfortunately somewhat opposed to what might be considered an optimal scenario for the market in general.

Hypothesizing, I think two things would improve the current situation quite a bit here (and note that both are unlikely to transpire, but we've got our idealized world hat on):

  • Government protection for expression of opinions about one's employers (in the same sense as other labor protections and rights, which are often not very protective in practice, but far better than nothing)
  • A general pseudo-anonymous authentication system which could validate information (eg: uniqueness, employment, etc.), but did not expose the actual person's identity

This would allow, in theory, employees to be encouraged to provide regular information about employers (working conditions, policies, etc.), and have that data be validated and aggregated. It would really allow much better accessibility to information about employers, and leverage the market to improve working conditions overall. It would be, in short, a "good thing".

Now that just leaves the near-insurmountable hurtle of getting something done in practice which involves both the government acting for the benefit of the people, and the government respecting privacy protections. But we can dream, I suppose.


Saturday, August 12, 2023

On Working Relationships

I posted an answer recently on a reddit post, where someone was asking if they should stay at a company which fired them, but then offered to rescind the firing after discussing the situation with the employee. Thread is here (at time of post): https://www.reddit.com/r/jobs/comments/15or3du/got_fired_from_job_and_then_rehired_within_an/

I figured I'd copy my response here, though, since it's general career advice (not developer specific, but within the sphere of development as a profession). My advice is/was as follows.

You will have a general "working relationship" with every employer, which is a combination of how you are treated, how your input is valued, how you are evaluated, how well your perception of "good work" aligns with that of you management, etc. In a job where you have a good working relationship, those things are broadly positive, and of course there's a spectrum.

A company taking significant actions to undermine/damage the working relationship (bad performance review, different alignment on value or working expectations, firing then retracting, etc.) is signaling that you probably should not be there, if there are better options available. When this happens, you should start exploring for what other options might be available. The urgency of that exploration will likely be relative to the damage to the working relationship, but at the point where the relationship is damaged, its almost always prudent to explore. This gives rise to sentiments like "one foot out the door", etc., and is why as an employer you never want to damage that relationship if you are not prepared for the employee to depart.

How quickly you depart (or if at all) will depend on the other options available, and to a lessor extent on any effort from the employer to repair the relationship (which may be new internal directions, comp adjustments, new management, etc., but usually are nothing). You can certainly stay in the short term if you have no better options, but you should internalize (as the company certainly will) that the relationship is damaged, and you are more likely to depart at some point. That is, generally, a bell which is very hard to un-ring, as it should be. 

Anyway, that's my general advice, fwiw.

As an addendum, in case any employers ever read this blog, and you're not already far more familiar with managing employee psychology than I am, I'd encourage you to consider the implications of the above advice in the context of the employer. The way you manage employees (alignment with values for their productive work, management, reviews, environment, how you communicate changes, company actions, etc.) all affects this working relationship, and is cumulative and "sticky". I recently had a manager tell me that what was being done which was affecting me was not personal, it was "just business". That may be accurate, but that does not in any way diminish the effect on the working relationship, and it would be foolish (and borderline idiotic) to not fully anticipate the downstream effects of such actions. That is not to say that such actions and effects are not a normal part of operating an organization (they are), but it is to say that if, as management within an org, you do not properly account for this when deciding on your actions, that could be damaging enough to the organization as to constitute a termination-level failure on the part of the management involved.

In a sense, effective companies need to take a page from back-propagation training algorithms in ML networks, and ensure that feedback is propagated enough upstream to affect the higher-level inputs to the downstream outcomes. Moreover, they also need to understand the outsized impact of some seemingly less impactful decisions.

Anyway, that's my general advice, fwiw.