Every developer career starts differently. Based on a job choice that is hard to make objectively, you will use different technologies, work with different people, have different priorities and better or worse learning opportunities. Combined with your personal effort, it will determine what kind of developer you become.
During my time trying to build and lead an empowered dev team, out of a lot of job candidates, only very few people sparked my genuine interest. After thinking about it for some time, I figured out a number of reasons.
1. Understanding how the company works and your role in it
As someone wanting to launch a company of his own, I have always been interested in seeing how the company works beyond my own role. How we deliver value, the way we divide responsibilities and other people’s goals. This has been useful for making improvements in the process where departments interface with each other in the past, resulting in increased effectiveness, efficiency and less headache over bad decisions. Pragmatically said, you and your product manager having a good understanding of each other’s challenges can result in a better way of doing things and working together. Stop throwing things over the fence.
Beyond the process, you will also have a good understanding of the challenges your company faces. Knowing these will allow you to make better sense of management decisions and to approach them with suitable propositions. This works even better the more people start thinking and getting involved, as the problems of one person may not be visible to another.
So even if you do not want to start something on your own, this understanding is valuable. Stop complaining about how decisions of others impact you negatively, investigate and try suggesting a better solution yourself.
2. Become more aware of Communication
I am not going to start this with some “developer as lone wolf” joke, as the awareness around communication skills has definitely increased in recent years. But it still is not nearly as appreciated among developers as it could be. Thinking about how you say things can have a substantial effect on your outcome. If you have an unsuccessful encounter, reflect if you could have improved it by communicating differently and embrace the learnings. Furthermore, you or a colleague might have a bad day once in a while and be overly aggressive. Being able to approach and manage a conflict yourself will make things easier for both him and you.
The entire topic is not a new one, either. How To Win Friends and Influence People was released in 1936.
Becoming good at this takes courage and practice, so the sooner you start, the better. It will improve the collaboration within your team and beyond it.
3. Keep learning
A company hires you because you are a valuable asset for them. However, in this fast-paced world, the value of your knowledge decreases over time. So to keep (and raise) your value, you should consistently keep learning, whether your company encourages you to do so or not. Even beyond the appreciation of your current company, the experience you gain there combined with proof of you continuously developing yourself will make you an attractive candidate for another, maybe even better job.
Do not limit your education to technical topics, either. Improving in other business-relevant domains like the ones mentioned above is valuable. Improving on topics you know little about will also give you greater returns than improving on the topics you are good at already, so keep a good mix.
Beyond that, use opportunities to teach, whether it is at your workspace or on meetups. We are standing on the shoulders of giants and helping someone on the way up will make life for both of you more enjoyable.
I am far from alone with this sentiment. Looking at the evolution of software development, strengthening the role of the developer and bridging the divide between developers and business is what the Agile movement tried to achieve (and died trying). Parts of it are also reflected in books like The Pragmatic Programmer or The Clean Coder and also the Software Craftsmanship movement. I have just taken the effort to put some of it into my own words, take a stance and offer some inspiration.
Let us make a difference and help others do so as well.
This post has originally appeared in my personal blog, sparetimehacks.de