I thought making mistakes as a SWE is part of the job. We can fix things relatively quickly and in most cases nobody gets hurts or loses money, but I'm starting to wonder if I should keep my mistakes to myself?
Edit: I should explain my manager is relatively new to the role.
My take is that you should always "own your mistakes". In my experience, the people who never seem to make mistakes always have someone else to blame...
The important part is to try your best to prevent the "same mistakes" from happening again. This means improving the system and your own workflow to prevent mistakes from happening (creating bugs, accidentally deleting data, etc...)
Also, "not understanding a new code-base or language" isn't a mistake, it's part of the onboarding process and good management should be empathetic of that.
We all make mistakes as SWE.
As a lead developer there are times I see mistakes that a Sr. or Jr. makes and it reveals the limits of their knowledge and skills.
This is concerning, as you lose trust in that developer and this affects what tasks you are willing to assign to them. Which makes them less valuable to the team. Causes you to spend more time reviewing their PRs.
These 'costs' do lose the company money through lost productivity.
It sounds like you're new to a code base and lang so take some extra time to learn and investigate as you're working on a task. Be curious, explore and learn.
Review your code before you setup a PR. Test your code locally. Does it meet all the requirements. Are tests passing. Did I add enough tests? Could I bulletproof it further? Are there any areas we could improve performance or make other improvements I could recommend as a future card/task to my mgr?
Every team has different levels of SWEs regardless of title or even experience.
So not everyone is going to perform as well as everyone else.
You just want to make sure you're not at the bottom.
Be curious, keep learning, be positive, get tasks completed and working properly and you'll be fine.
(edit) definitely own your mistakes, we all make them, make sure they are a learning experience.
In terms of your own self-improvement improve your internal processes for learning the code, and testing it before sending it off for a CR. Adding test cases for the work you do will help improve the quality of your work and enable it to be integrated easier into the overall codebase. If you need help or find issues with the code try to get clarification after spending time deep diving and learning and being curious (e.g., exhausted all other options).
Also note you can probably create your own dev pipeline so you can push to your hearts content and not break things, then only when things are working as expected submit a CR for others to review.
Maybe that's not what will happen, but it's good to have a backup.
As an individual contributor (not management) you are at the complete mercy of the employer. If they are a mess, then you will be a mess. If head count trimming is about to happen there is nothing you can do. If not you then it will be one of your peers that gets pushed out but unless leadership (not you) radically shifts directions your time is ultimately limited.
My suggestion:
Recognize the symptoms. I saw the writing on the wall months ago and ignored it. I kept making excuses like how great their culture is and how this won’t happen. Stop making excuses. I have been writing software long enough to fully understand the economics of the situation and should have applied more common sense earlier.
The moment economic pessimism starts to creep in engage the planning stages of a back up plan. Once the signs of head count reduction start you are way behind where you need to be. At that point you should be ready to execute as fully explored plan B immediately.
Things to consider:
* Save money. Always have enough in savings for 2-3 months of unemployment.
* Be looking for a pivot. Consider getting a PMP or CISSP. Certs are irrelevant and ignored by your software career, but they make for a nice exit plan if you need it. Once you have those you just need to maintain them.
* Write. Start a blog, a personal diary, or anything else. Always be improving your communication skills. This can help you transition to the next stage in life when all else has failed.
* Build professional relationships. This is critical if you want to do other things later in life, such as business or consulting. This is my biggest failure as I have dedicated all my time to family and technical mastery. I have no regrets here, but I am limited by this.
* Consider more education. I am thinking about grad school and moving away from software towards business operations positions.
If you're feeling cynical, you can tell your manager they are not performing as well as you expected them as a manager. Leave it at that and ask how they feel about it. /s
Learning how to reduce the chance of making mistakes in the future is part of the job. When you make a mistake stop and think why you made the mistake and if there was something you could have done that would reduce the chance of making that mistake in the future.
So if you made a mistake because you're new to the codebase and language then do more pair programming with the people on your team who really understand how it works.
If that is said in public, I wouldn't be happy about the situation, in private, I might chalk it up to the person not knowing how to manage performance.
Don't keep your mistakes to yourself when you require additional help to get over them. If you notice these mistakes and can clean them up by yourself, then get them fixed and move on.
But keep in mind that 50% of managers are below average, and that means a significant fraction of new managers have only experienced below average managers...and a significant fraction were selected by below average managers.
But also, it is possible that what you heard is not what was said...or what was meant.
Good luck.
If he is doing it in public, then that's not OK.
You shouldn't keep your mistakes to yourself, no. In fact go as loud as possible about them, and what you learned from them. Make a google doc and share so others don't do the same.
You know your code is buggy, that's not an honest mistake. So fix it, don't hide it.
---
BTW, I don't agree with how your manager told you that.