4

I'm an experienced web developer at a very small software development company. We are a startup with 4 months to deliver a prototype, and no project manager. My coworker is significantly older than me, with some web development work, but is not familiar with modern web development. As a result I have been required to teach this developer various web technologies (Typescript, React, etc).

I am having difficulty utilizing feedback from this older developer who is less experienced in the specific work we are doing.

The issue arises whenever I try to explain my code, or discuss new features. My coworker almost always manages to say some variation of the phrase: "I'm sure there's a library that can do that". I would be open to this, but their suggestions often don't make sense to me.

I am not a very confident developer, and so the constant repetition that I am writing code wrong, without any real concrete guidance on what to change, is demotivating me and seriously slowing down my development speed.

How can I productively respond to this criticism?

3
  • 7
    Just assume that any third party library, big or small, will cost you five to ten working days over the next years. If it saves you three weeks of work, fine. To save a change in a stylesheet? No way. We had someone work several months removing third party libraries that were not maintained, that we couldn’t trust, and that were in the end not needed. – gnasher729 Jun 17 '20 at 8:04
  • 2
    @gnasher729 is right, using a library to do alignment that is trivial in CSS is insane. This sounds like a deeply insecure individual just trying to pretend they are superior by belittling your perfectly good idea in a vague way that makes anyone questioning it look dumb for not knowing what they know. It's a pretty toxic thing to do. – user Jun 17 '20 at 10:40
  • Interesting relevant article about what relying on libraries for trivialities can do to your codebase. – Flater Jun 22 '20 at 9:15
4

How can I productively respond to this criticism?

Given that you also say,

I would be open to this, but their suggestions often don't make sense to me.

I would start there:

I would be open to using a 3rd party library to [accomplish task/solve problem]. If you have a specific one in mind, we can discuss whether it's suited to the project. In the meantime, I'm going to continue working on the solution I suggested.

This doesn't obligate you to use whatever they come up with but still only use this for things you're willing to have a discussion about. For anything you think using a 3rd party at all is a bad idea you would say some version of:

I think using a 3rd party library for this problem would [cause problem]/not be worth the effort because [reasons].

For example, when they suggested using a grid layout to handle tabular data, you could have said,

Grid is really meant for handling page layouts. Given that this is tabular data, it's better semantically to place it in a table. It's better for accessibility as well; screen readers will treat a table as tabular data when reading it to users. 1Also, the text alignment can be applied to the n-th column of the table so it's not like we have to apply the style to each cell.

1Or however you planned to do that.

If, after conceding that you're the expert, they continue to grumble about how they're sure there's a library for that, feel free to ignore it. Until they come to you with a specific library with an explanation of how it'll help with the work, you don't have to keep treating it like a real suggestion.

4

I am not a very confident developer, and so the constant repetition that I am writing code wrong, without any real concrete guidance on what to change, is demotivating me and seriously slowing down my development speed

I think you are looking at this with a negative perspective.

Your coworker is merely stating that they suspect that a library already exists that could do X thing. They are not saying you are writing code wrong, nor does stating or mentioning that such library may exist imply that your code is wrong.

Even more, you mention that at the end of the discussions they end up agreeing with your expertise, and that no 3rd party library has been added to the project (implying that the consensus was that your approach was better [and, on a personal note, the less external dependencies the better :D]).

So, I think that maybe you are taking this too hard on you.

However, I am not dismissing that your older coworker may be a bit reluctant, or may be a bit uncomfortable with you, a "younger" coworker having to teach him. Some senior coworkers may feel intimidated by newer recruits, specially when they have more knowledge and experience on certain topics.

This could be the case with your coworker, and perhaps why he is "dismissing" your suggestions (again, which they aren't as your suggestions are elected at the end) or suggesting that you don't reinvent the wheel (as in "ah, this youngling thinks they know it all, but I don't know enough to refute... let's play the 'I'm sure there is already a library for this' card").

7
  • I think you are correct that I am looking at it negatively. I think I was somewhat unclear, I added an edit explaining a bit more. They aren't exactly stating a library exists, but stating that they don't understand any of the code, and it seems to be that whenever they don't understand a piece of code they say a library must exist that can replace it. – anon Jun 17 '20 at 1:16
  • 1
    @yeerk I see your edit. I hold my answer. They saying "I don't understand your code" actually means just that: they don't understand it. It's no surprise though, you mentioned they were not knowledgeable on the subject and thus why you are teaching them. Also, they saying "why aren't you using 3rd party libraries" is on itself a valid question. It's also not rare for someone learning the subject, and you must have some reasons why your solution is better than a 3rd party one if any exist. Your task as teacher involves teaching/explaining these details if needed as well. – DarkCygnus Jun 17 '20 at 8:13
  • That makes sense, I try to explain, but he seems to focus on the wrong aspects. For example, while reviewing code, he saw the Function type, and asked what it was. I explained it was just a function without types. He pressed F12 on it, taking him to the internal/built-in Typescript typings. I told him that those were just the built in typings, and he didn't have to understand them. He proceeded to argue that yes he did, and that I should just explain them. 30 minutes of explanation later he said he still didn't understand, but I convinced him to focus on our code, not the built-in typings. – anon Jun 17 '20 at 23:34
  • I certainly believe them when they say "I don't understand your code". But how can I proceed with an explanation when they seem to be asking impossible questions? I'm not the kind of person that can just shake it off, especially without some kind of action plan moving forward. – anon Jun 17 '20 at 23:37
  • 1
    @yeerk I feel I already said things regarding your second comment. Regarding your first comment, if you actually said* "Those are just typings, you don't have to understand them"*, then that could have come up as a bit rude or blunt, or in a way that makes your coworker feel excluded. Comprehensive knowledge of the systems involved is always beneficial. If you are teaching them, then this would again fall into that scope; don't shush your coworker when they ask deeper questions (doing it only hampers their learning). Do, however, keep an eye so the discussion does not derail. – DarkCygnus Jun 18 '20 at 1:06
1

I'm sure there's a library that can do that

For instance like this:

I wish! That's why I spent two days looking for one last fall but I couldn't any. Did you?

This accomplishes several things:

  • it acknowledges his input
  • it shows them where you agree with it (in this case, you agree on intent, but not the solution)
  • it shows that you have already considered this, and why you have rejected the idea
  • ... and invites them to contribute (if they can contribute at that level)

but their suggestions often don't make sense to me

I'd clarify my "acceptance criteria" for a solution, and then ask them how their suggestion meets those requirements.

If they can answer that, you have found a good solution.

If they can not answer that, they'll now understand why the solution doesn't work, and be equipped to make better suggestions in the future.

You must log in to answer this question.