If you’re trying to become a better software developer, you probably already have some ideas how to approach this challenge. For instance, you should listen to webinars, video conferences and tutorials. Reading books and articles on your chosen technology is also a good idea. So is finding yourself a mentor who will guide you through tough times. You can keep a notebook to organize your thoughts and design solutions before you implement them. You should also listen to subject-related podcasts and attend interesting events. Updating your LinkedIn profile in order to get a better job should be on your to do list as well. Basically just dive deep into the world of algorithms, conditions, loops and multiple lines of code [1].
Many people can tell you how to become technically better at what you do. The problem is, it’s not enough. You could be a genius coder and still have issues at work or have trouble getting new assignments. The secret to truly increasing your value is in your approach to tasks and the attitude which you present.
Value from the client’s perspective
Quality is important. ‘I only write high quality code’ should be your mantra. It’s an undeniably good idea to do all of the things listed above, which will make you a better software developer. But your skills are just a small part of how you’re perceived by your team, your Project Manager (PM) and the clients whom you work for.
First of all – think
Creating software is about responding to very specific business needs and goals. As far as the client is concerned, they are what matters most, not quality. If it works, that’s good enough, if it works well, that’s great! But if it works well, but doesn’t do what it was supposed to do or brings no results, it’s a disaster. Nobody is going to care whether the response time of the feature you’ve just written is 0.03 or 0.02 seconds, because it’ll be irrelevant. Customer journeys, user stories, wise implementation and careful thought into what you do at every step of the way is a completely different story. You need to remember that if you want to be a better software developer.
Remember about showing progress
Another issue that may occur while you work on a project is the question of development speed. Is the team working fast enough? Maybe they are lacking the necessary skills and that’s why it’s going so slowly? I rarely see slow development caused by slow developers. What is more common is a lack of good communication and last-minute changes of requirements. To make sure that you provide value, always remember to commit as soon as possible, communicate about finished tickets and ask if it’s necessary to change your focus mid-feature. Because if you are heard, you will be understood.
Stay vigilant and think ahead
The worst kind of programmer is a person who has great technical skills but simply doesn’t care. They know how it all should be done and have immense experience but refuse to use it. They get given a feature to implement, but they don’t ask questions, don’t ever challenge the status quo. Consequently, the team builds a mediocre product and the client is dissatisfied. If you want to help, try to do a bit more than ‘just code’. If you see something done badly, speak up. Remember to do it politely, though.
Value from the team’s perspective
How about your value to the development team? The relationships you build with other team members are key to your performance. If you like each other then you will become more productive at work. Working together gives you joy and satisfaction, and we do things better that we enjoy doing.
Do code reviews
Having your code reviewed will not only help you to become a better specialist, but also to maintain consistent principles of programming in the project. When someone spends time reviewing your code, they do it to help you. For instance, they want to ensure that your collaborative work is at the expected level of proficiency. Make sure your work is reviewed and carry-out code reviews for others. It is a great learning tool on your way to become a better software developer.
Help to solve problems
In every team, there are always a few developers who help others in trouble. As a result of one person doing something improperly, the whole team has a problem. Surprisingly, not everybody feels obliged to take action to address it, though. Being helpful is crucial. As William Frierson points out in his article ‘Teamwork in the workplace’, “An excellent team player will be reliable and responsible” [2]. If your team can’t count on you, then your PM can’t count on you either, and consequently, nor can the stakeholders. If nobody can count on you, then why are you working on this project in the first place?
Cooperate with the QA Specialist
Testers are not your enemies. Their job isn’t to make your life miserable. It is to make it easier by identifying your mistakes for you. It is good practice that developers test their work in order to say for sure that the task has been done correctly. Testers bring one big advantage to the table – they test multiple ways that the customers might use your software and try to break it. They are a luxury that not every project has. Therefore, be a team player and act nicely when one of your tickets is reversed because you’ve just got a chance to fix it.
Share knowledge
If you’re only at the beginning of your journey as a programmer, or you’ve only been coding for two or three years, you’re probably still in need of a mentor. But, if you’re a senior practitioner already, then odds are that you probably know more than the other members of your team. What may not be obvious is that sharing what you know with others will make your life much easier. Teach them and let them draw from your experience. It will prevent you from spending time fixing their mistakes. It’ll sldo let you focus on more difficult tasks which you can see as an appealing challenge. Help at least them to become a better software developer and you will be valued.
Value from the Project Manager’s perspective
When you’ve made sure to increase your value for the stakeholders and are now in good terms with your co-workers, there is still one person left who has quite an impact on whether you’re perceived as a great software developer or not – the Project Manager. In some companies it’s your team leader, in others the Product Owner. It is always, however, the person responsible for your work and results.
Stay flexible
Flexibility is a key skill when you need to start using a new technology. Similarly, when you change projects or your role in the team. It’s also important when you’re asked to take on more responsibilities. Such situations happen quite often. Therefore, if you learn to approach them with a positive attitude, your PM will happily depend on you. It’s also beneficial to have more responsibilities, as you ‘must be’ reliable, and reliable people get raises more easily.
Be self-reliant
Project Managers tend to have a lot on their plates. Try no to add to it by asking about the little things that you can deal with on your own. Be responsible and try to look for answers by yourself. Solving problems on your own and with the help of your team will teach you ownership. Taking responsibility for your work is valued and highly appreciated.
Don’t say ‘no’ just for the sake of saying ‘no’
I believe this one to be pretty self-explanatory. Keep a positive approach. Try to stay on the right side of all the goings-on. Communication is not only about raising an alarm when a problem approaches. It’s also about not saying anything negative if it doesn’t have any value. After all, we are all here to produce results, not create conflict.
Prevent instead of curing
To sum up, being proactive means taking action when needed. It means making a decision when nobody else wants to. It’s about being a team player and a leader and simply a good person. It’s about thinking before doing and not doing without thinking. Being proactive is the key to everything, because, as they say: “Being proactive is all about taking responsibility of your life“ [3]. Additionally, being responsible in your life means being responsible in your work. We all want to be surrounded by people who are trustworthy, committed, and loyal. Becoming so means that you’re also evolving into a better software developer.
Sources:
- [1] Dan Bader: How to become a better software developer, https://dbader.org/blog/how-to-become-a-better-software-developer
- [2] William Frierson: Teamwork in the workplace: 10 qualities of an excellent team player, https://www.collegerecruiter.com/blog/2015/07/14/10-qualities-of-an-excellent-team-player-at-any-workplace/
- [3] Pavneet Singh Saund: The Proactive Software Developer, https://codingwithempathy.com/2016/04/26/the-proactive-software-developer/