A great developer needs to work on both their tech skills and their soft skills, being the foundation for any professional that wants to be an effective piece and inspire positive change in their team and organization.
I have compiled a series of recommendations that I consider to be basic and of vital importance for teamworking, based off my experience as a software developer working with efficient and productive teams, after observing how in education and the labor market the focus is often way too much in the technical abilities, which while still important, are not enough for making an excellent professional.
So, let’s get into those 7 key points that I believe every developer should incorporate into their daily lives to be a successful team member.
I want to start by pointing out the advantages of having a positive attitude, since it seems so obvious that it is almost not worth mentioning but is an important foundation for the other key points.
With the right attitude, you can share ideas with a good chance that your peers will receive them with an open mind and consider them valuable, as well as show yourself as someone reliable, able to listen, collaborate, receive feedback and solve problems. A good attitude is contagious and helps with team productivity.
Part of having a good attitude is valuing the opinion of your peers, especially when those opinions differ from yours. Being humble opens the door to breaking old habits and refining your knowledge. I’ve witnessed smart people with advanced technical skills, making the mistake of shutting down new ideas without first giving it an opportunity.
It’s important to keep a positive attitude even in tough times, especially in lead roles, since you are expected to set the tone and serve as an example to your peers, the way you handle it will make a big difference when facing big problems.
Share your knowledge
A behavior that I first observed in college and then later while working as a developer (thankfully not first-hand) is being over protective of one’s own knowledge.
It may happen because of general lack of maturity, fear of losing the advantage of a seemingly indispensable position or some other reason. No matter how prepared and intelligent you may be, complex problems are better solved as a team, fomenting a collaborative and reciprocal culture helps to learn and understand how to solve issues, taking advantage of the different perspectives and ideas born from collaborating as a team.
For example, I heard from a friend one instance of this happening. When she was a junior QA analyst, she asked help from a more experienced peer in her team and got a “do the course and get the certification” reply. She had a good reaction, found the solution by herself and eventually got the certification, putting herself in a place where she could help her peers with her new skills.
Keep your team updated
The effectiveness when solving problems as a team is not only dependent on how good we are with our code, our commits, or solving bugs.
You need to make sure that the other pieces in your team are up to date about your contributions, so they can react in an adequate manner and remove any friction that may result in strong repercussions.
You have to encourage a culture where you keep an honest and frequent update over:
- Progress: this allows to keep a precise idea over velocity and predictability, making it easier to communicate the state of the project to the team and the external entities at any time.
- Blockade: keeps the team able to react early to any unforeseen issues, adapt and reduce the changes in the scope, keeping the expected projection.
- Discoveries: there are situations when you will stumble with behaviors, situations or unexpected flows in a project, that haven’t been taking into consideration by your team and that are not necessarily covered by the established planning. These cases, if not dealt with promptly, could grow into exponentially bigger issues for you or your peers in the future. You have to create spaces in which you can share your discoveries to your team, so if necessary, they can be taken into consideration within the planning.
When it comes to working as a team to solve complex problems, regardless of ability, expertise, confidence or roles, we all make mistakes. You should make use of records to reduce the likelihood of falling victim to misunderstandings or other problems.
If something relevant to planning is communicated, whether it’s updating on the detail of a user story, a change in scope, priorities, or any other situations (as minimal as they might be), make sure it’s done in an official way and can be referenced in the future.
Personally, in a job in which I worked for many years with a very professional, responsible and capable team, we were able to avoid having serious problems within the organization and with our clients by implementing communications policies. Enough times I’ve seen this happen that we had to go back to old sprints records and official email conversations to check for projects that needed maintenance even after a few years of being deployed.
You never know when something you had a conversation about 2, 3, 6 months or even a few years back could be relevant and vital again to solve a current or future issue.
Be competitive in a healthy way
Depending on your personality, you’ll lean more towards wanting to actively participate, taking on new challenges when they arrive, leading or standing out one way or another in your organization, not every developer will be inclined to such behaviors with the same passion. If it’s not forced and it’s done in a healthy manner, it is good to create spaces and foment this kind of behavior.
If you are the type of team member who likes to stand out, keep in mind that these qualities are well received if you know how to handle them.
Remember to credit your teammates for their achievements and fomenting a culture of collaboration and positive feedback.
Pick your battles
There are situations where the team must reach an agreement to solve issues and move on. You can have discussions over different solutions, conventions, ways to organize, priorities and so on.
When reaching this state of disagreement, finding a balance in how much you should pressure your team to implement your ideas is of outmost importance. This will depend on multiple factors, since the work environment can vary a lot between different organizations and teams. Regardless of your work environment there is a general recommendation I can share to work this out:
- Don’t give up on your point of view too easily: specially when the issue has an objective clear-cut solution as this could make you look like lacking self-confidence and can become a future technical debt for the team. A friend whom I worked with for years and is smart, has a lot of experience as a developer and a leader, was starting a new job and was worried about his first impression with his team. In more than one occasion he stepped back from his point of view when reaching disagreements over implementations for solving issues. Later he found out through feedback that his team wanted him to pressure more in such cases specially when he was sure that his solution worked best, because the team was facing issues created from not implementing his ideas. The feedback helped him find balance and learn how to deal with this kind of situations.
- Don’t be a tyrant: even when you are in a leadership position. Your team will work with less friction if you allow their ideas to be shared and taken into consideration. Having meetings to get feedback or other dynamics such as retrospectives helps you having an idea on how your team feels if they are being allowed the time to participate and contribute.
On some occasions, even after making use of these key recommendations or giving your best efforts in general, you will make a mistake. In those cases, you must keep in mind that this is something natural and humans make mistakes, the best way to confront this is accepting your mistake, taking responsibility and being a part of the solution.
When there is a good work environment and a collaborative culture, these mistakes should always be taken into consideration and handled in a professional manner. You must encourage this behavior whenever you find yourself in a leadership position.
Taking responsibility goes beyond answering for your mistakes. There are moments when you will have the opportunity to take initiative and help solving a problem that has been presented to a teammate, your team, or even other teams. Taking the initiative of collaborating and adding value with solutions to problems that have not been caused by you is a great quality to have and it’s indispensable to become a great leader.
Some final words
Becoming an effective team member is crucial in today’s collaborative work environments.
In a software development company, embracing these seven keys will not only make you a valued team member but also contribute to the success of your projects, ensuring that high-quality software is delivered on time and as expected.
Comments? Contact us for more information. We’ll quickly get back to you with the information you need.