-5

I need your advice about my career situation. My typical performance review feedback/complaint (for years now) is my tendency to take a long time to deliver my pull requests. Despite potential students' syndrome and attention span which might be into play, I feel there is a bit more to the story.

My technical deficient areas

  1. Effectively read and comprehend my colleague's contributed code
  2. Write a code that integrates nicely with the existing code.
  3. Relying on technical docs only to extend closed-source frameworks

Questions

  1. What is the best way to become better in those areas? (ps: what worked in the past observing other engineers working, but that's usually not an option)
  2. I feel I am less of an engineer when someone gives the impression/feedback that I am underdelivering. Is that normal? Is there a better way to think about it?
  3. How I can a good code reading process that I can follow to familiarize myself with a new code quickly?

I hope this isn't too much to ask because I would love to hear your thoughts.

2
  • 3
    Can you remove the jargon and be more specific? Jan 28 at 7:31
  • Sure! simply put, I feel I struggle with three areas. First effectively reading and comprehending others' code. Second, integrating with the existing codebase, and third extending frameworks functionality especially when I have access only to their documentation and not their full source and even then I struggle. Feb 7 at 9:12

5 Answers 5

5

My co-worker's action made me feel strongly angry at myself and ashamed. This isn't the first time; I experienced such a situation in my career. I have worked for the last ten years in the Software industry, and it feels like this situation (and similar scenarios) has been a constant pain. It prevents me from advancing my career beyond my current level and reduces my trust scores in the Engineering organization. Aside from the career part, this diminishes my confidence and raises the question of whether I need to change my career completely.

You need to look how you handle yourself. There is no job and no career path where you will always be correct. Well, maybe Pope or Mafia Don, but otherwise, people will come up with better plans or ideas than yours occasionally.

While you can feel ashamed and humiliated, ask yourself why? What are you ashamed of? Not being the absolute greatest genius the world has ever seen? That is a pretty high bar to live by. If that is your image of yourself, you are in for one hell of a rocky life path. Because news flash: you are not. Nobody is. I'm pretty sure once in a while even Jeff Bezos stubs his toe, no matter how many billions he made. So if you want to live a reasonably happy life, get rid of those expectations for yourself.

So once in a while, someone will have a better idea than yourself. Maybe even publicly, in front of your peers or boss. There is indeed a career limiting move here. If you react hurt or ashamed or bitter, then you are seen as someone who cannot take criticism. Not a good trait. The winning move here is to praise the better idea and congratulate your colleague. That is team spirit. If you are on board with the new better idea, it will be "your idea" too. Your are part of the team. It is about getting the best solution for the business, nobody cares if it was your's. The important part is suporting the best solution.

You don't need to support it right away, you can say "this sounds really amazing. I have not had enough time to think it through, but if you give me a day or two, I will incorporate that into the strategy/plan."

If you take the ideas of others, don't forget to mention them. So when your peer had a great idea, and you pitch the plan to your boss, don't forget to mention that that person came up with it. This is not a carrer limiting move, on the contrary. If you talk positively about people, your conversation partner will implictely assume that you will talk good about them too.

So to summarize: get into the mood of finding the best solution, even if it's not yours. As long as you support a better solution when you see one, nothing bad happend. Only if you put your ego over a good solution, it will be seen as (and in fact is) a bad move.

4

Don't you understand that if you had not presented a working solution, your cohort would not have been inspired to design his improved version?

Design, especially greenfield design, is usually collaborative. One person's design suggests a better one, which in turn suggests a different view. Meanwhile someone else, confident that your design path is well looked-after, is free to think about something else entirely.

Do not fall into the trap of thinking that because your design was not selected, you didn't contribute anything.

And anyway, even if you didn't, there's always tomorrow.

2

So normally, SE works on a 'one question per post' - and you've got 3. But seeing as two of them have pretty short answers, I'll let it slide:

Answer 1: Get Better.

I don't mean to be glib here - but if you are out of your depth or you feel like you are out of your depth - you need to learn more, read more, experiment more and get better - there's no shortcut to competence.

Answer 2: Everyone has brain farts occasionally. I've had projects where I've been stuck on something that when I got a second pair of eyes on it - they pointed out the obvious that I'd completely overlooked. It happens. If your team feel that you are having them with enough regularity that it's an issue - then it's an issue. If they aren't, then it's not.

Answer 3: This is where I think the real question is. It sounds like you are suffering from a little bit of self-doubt, a dash of Imposter Syndrome and a few other things. First and foremost - yeah it sucks when you've invested a lot of time and effort in a way of doing something only to be told 'Nope' and that you've wasted all that energy and work. I can't write anything that will make that sucky feeling any less.

My experience is that the biggest cause of a lack of confidence is a lack of understanding. You need to know your project/idea inside out, upside down and back-to-front. Hand-waiving 'And then magic happens and it works' - is the biggest invitation for critique and it will leave you open to feeling like you are an idiot.

You need to look at your proposed solution and identify what potential issues there are with doing it that way. Make sure in your proposal you have them accounted for.

Now, if you've done all this properly - then when the tough questions come (and they will) you have pre-prepared answers ready to shoot from the hip.

Finally though - if you are frequently coming across situations that you didn't account for or didn't anticipate - it may be that you have missed some fundamentals of whatever software/platform/thing you are working with...

And that's okay

What happens next is that you need to discuss with your management about training opportunities - so that you can fill in these blanks.

Not everyone knows everything about every technology - so don't beat yourself up about it - as I said in answer 1: Get better.

1

So you made a design and it wasn't the optimal solution. Someone else suggested a better solution. Now you feel ashamed.

Good news: You accepted the better solution and worked out the details of how to make it work. This should not be underestimated, I've met too many smart developers unable to do this out of pride or due to some sunken cost fallacy (very common!), ending up costing a lot of time and effort.

Bad news: You say you're feeling ashamed and humiliated. Now I understand it'd be nice if we always came up with the perfect ideas ourselves. Turns out that's not how it works. I tend to have good ideas and rarely get feedback that causes fundamental changes to my suggested approaches. It still happens, though. That's why I'm keen to have others look at my ideas. Why does it happen rarely? Am I a super genius and know everything? Absolutely not. I have good ideas. But of course, I also have flat out stupid ideas. To tell one from the other, I have experience, I prototype, and I can think through plans. But most importantly, I bounce them off people to help me find the best ones. I don't feel bad about that at all, quite the contrary. I do tend to do this before presenting to a group - but if it were to happen during a presentation, I'd happily take that on board. Just make sure it really works for your case. I'm always happy to find out there's a better solution, because it'll probably be easier to implement, less work to maintain, and I can move on to the next great thing.

"ashamed and humiliated" is also bad, because IMO it feeds into what I briefly hinted at above - the sunken cost fallacy. People that are too proud / ashamed / fearful of abandoning a bad design produce a lot of headache. Don't emotionally overcharge this, try and be rational. You'll find this will help generally.

I suspect this attitude is actually holding you back, and part of the reason you feel you're not coming up with good ideas. If you want to get good ideas, you must be able to get and accept feedback. Give credit where it's due. Iterate. Play with ideas. Keep getting feedback. Maybe best case in a more private setting first. I think if you'd pinged one of the people in the meeting and asked for some feedback more privately, you could've avoided this public "humiliation".

Now of course some degree of feeling "bad" may be a good thing, just as an incentive to learn. But you've gone way past that, and it's not helping.

I don't think you should question everything about yourself. That said, you may(!) find you're not very good at design. That's fine, too. Look for your strengths and use them. While there's something to be said to compensate for your weaknesses, I've found it's best to build on your strengths.

Don't beat yourself up. Just make it a success, give credit for the ideas received. If you make this a success, people will be happy with what you've done. If you insist on using a bad design, people will be unhappy.

Re: "trust scores": It may or may not be that people think you shouldn't be designing things. More likely, you just weren't aware of the better approach. Either way, personally, I would stop trusting you if you chose to stick with the worse approach anyway, or couldn't be trusted to implement the better one well. This may be different in your organization - in which case I'd consider changing the organization.

I know developers that can't design well, but are great at delivering. And the opposite. Some can do both. So long as you know where you are, that's not too relevant. I'm very happy to hand off my design and have someone else refine and implement it well. I'm also happy to get a good design and succeed because of it when I implement it. Both skills are needed, the end result matters.

0

It is normal to have others produce better solutions from time to time. It should not concern you when this happens, unless it happens everytime you design something.

Practicing problem solving challenges and studying others solutions afterwards, can help improvement, if you feel you need work.

Not the answer you're looking for? Browse other questions tagged .