Grow as a Professional Software Developer
Tags: productivity, management, career, advice
Published: 2019-10-04 17:24:20

When I stared my journey as an iOS Developer, it was super easy to find things to learn - to be honest it was hard to find things I knew and I felt confident about. Nonetheless after a year or two there came a dangerous moment of *routine*: my level of knowledge let me do my job and give a phoney 😱 feeling of being a professional.

Luckily for me a wake-up call came when I was talking with some other iOS Developer and he started to talk about things that I should be familiar with - but I didn’t have a clue what he was talking about. Since then I’m trying to always be aware when there is too much routine in my daily workflow, and now I know how to grow on top of that.

## Find your weaknesses
In my opinion, it doesn’t matter what’s your current experience or where you want to be in 5 years, some people naturally see only good sides of themselves while others suffer from [Imposter Syndrome](https://www.youtube.com/watch?v=yT3xZQQHK4Y). That’s why people have problems deciding what parts of professional life they should improve - the way we see ourselves may be completely different than the perception of us other people have. If there is no feedback culture in your workplace you can ask other coworkers for help in few different ways:

### 360 Feedback
If you aren’t familiar with this term, it’s a process in which you can receive anonymous feedback from people that you work with. Maybe it’s a common practise at your workplace, and maybe you have to initiate it, but it’s worth it - trust me. In our team, I’ve created anonymous google docs with 7 sections:
* Communication
* Problem-solving and decision-making
* Organisation and time management
* Interpersonal skills 
* Continuous improvement
* Motivation
* Team working

[Here](https://forms.gle/CfUwsmFW421Q2uM79) it is. Every team member had his own copy of this form. When everybody received feedback from everyone who was involved, I shared results with my teammates. You can export results to csv and add some rule to make and highlight weighted results under X and over Y. This is how you can recognise your gaps and strengths. I like to split results in two types: programming and communication -  to work on both simultaneously. Communication skills are as important as programming skills, you are part of the team and you have to know how to build good and healthy relationships, because internal conflicts may destroy even the best project.
![TeamMates](https://media.giphy.com/media/5BYFBPTB5RcE6ppakN/giphy.gif)

### Annual review
Usually annual reviews are twice a year and are part of company’s policies, but if it’s not your case, just ask your line manager or any other teammate for a meeting, describe what do you expect from him/her.  As a line manager I always prepare myself before a meeting and stick to the agenda:

* Receive a feedback about yourself, and workplace.
	The most important rule during this part of talk is to *Avoid Defensiveness*, you may be surprised how easy it is to discourage someone and stop getting honest feedback. Even when you do not agree with your subordinate’s opinion, just hold your tongue, and try to understand his/her point of view. You can always respond later after analyzing it from different angles. 

* Give a feedback
	Try to prepare yourself as good as possible, do not make personal assumptions and stick to facts. Do not say stuff like “you are bored on our sprint planning meetings” - that’s just your perspective, someone can easily disagree and you can’t prove it. Phrase it like this “when you are going through your phone during our sprint planning meetings, it looks unprofessional”. First give an example of behaviour which is objective, and then state the result, without judging. You should give positive feedback as well, it’s even better to only give positive feedback at the beginning - you can learn how to construct a correct sentence with behaviour->result approach. I do not like sandwich technique, people may notice it and ignore positive feedback. It may seem like you’ve only said praises because you had to, they would focus only on the negative parts.

* Future
	Now it’s time to focus on what we can achieve together in the next few months. It may be related to the processes, or someone’s grow - create new personal goals which will be verified on a next annual review. I like the idea I heard from my line manager: go through some dream job offers, and point the weaknesses (“Why I’m not feeling confident enough to apply for that job?”), and then change those to goals. This way your goals are pushing you in your career.

### Other
The usual day to day activities that may keep you up to date. You can be subscribed to some weekly newsletters with best articles about topics you are interested in or watch some videos on Pluralsight and YouTube.

## How to keep being motivated? 
This is as important as creating goals for yourself, I will try to provide some answers in my next article.

P.S. Growing is good, but everyone has their limits, remember to not overstrain yourself.

Thanks! If you like it please follow me on Twitter.