Project success hinges on many factors, but the human element of development teams should not be overlooked. While the team primarily delivers code, software systems and intricate system architectures, the journey to project success can be streamlined by prioritising the soft skills and relationships amongst developers – your fellow warriors in the trenches. With the right foundations, unbreakable bonds are formed that are worth striving for, ensuring a more cohesive and productive team.
“I have gained valuable experience through years of experience, collaborating with diverse clients and enterprises, and working within several development teams. The insights within this article stem from operating in both Technical Lead and Sales Engineering roles,” says Gabriel Eisenberg, Senior Data Engineer at Synthesis Software Technologies.
Leadership goes beyond titles
Regardless of the role, be it a Technical Lead or Developer, everyone can lead by taking ownership of their domain and contributing to the project’s success. Taking on responsibility goes a long way and empowers everyone. In my experience, I’ve seen that fostering a culture where everyone embraces ownership and actively contributes not only enhances individual growth but also strengthens the collaborative fabric of the entire team.
Be on the same page
Teams perform best when communication is frequent, and individuals lean on each other for help. As my friend Lara Timm pointed out, although communication is critical, comprehension is what will ensure that the team is truly on the same page. While meetings are a wonderful way to bring the team together, it is worth taking the time to ensure that the team is aligned in these sessions. This simple act can save a lot of time over the duration of a project and can prevent large scale changes.
Often, people can be shy to speak up in meetings when they don’t understand what is expected of them. Hopefully, they will ask for clarification in private. I have found that encouraging questions in a supportive environment, while still being patient, can encourage more introverted types to open up and contribute their valuable opinions in a group setting.
Asking for help is a strength
Engaging with the team throughout the day is fantastic for alignment and ongoing communication. It also encourages asking for help when necessary. Willingly seeking aid recognises the team’s eagerness to help and foster collaboration for more effective problem-solving than solo efforts.
Asking for help is critical when consulting across industries and enterprises, as you will be exposed to numerous technologies which can be overwhelming. You cannot possibly know every technology and its nuances as there is a massive scope of technologies that is ever-increasing. Matt Turck’s 2023 MAD (Machine Learning, Artificial Intelligence & Data) Landscape shows the sheer scale of available technologies.
By asking for clarification or assistance from a knowledgeable teammate, the time to understand and implement a solution can be shortened drastically. There is humility in asking for help and doing so helps build relationships with the team. Hopefully, by getting help, one can empower others too.
Turning to project managers for aid
Not all members of the team are technical, but their contributions are just as valuable. Such roles include project managers, product owners, business analysts and others.
Project managers play a crucial role as intermediaries between the business and the development team, adeptly navigating the inherent human challenges in projects. Leveraging their people and administrative skills, project managers ease project progression by addressing obstacles and streamlining communication channels. For example, they can advocate for the team when developers may struggle to present their work or need to engage with business or client stakeholders, alleviating these burdens and allowing developers to focus on their core tasks.
Despite the more subtle nature of their impact, project managers are instrumental in ensuring project success and should be leaned on by developers. Their involvement is critical to supporting project alignment with budget, schedule, and scope.
Own up to mistakes early
Mistakes must be raised early. The sooner this is done, the quicker the team can join and manage the problem. This is especially important if it is a large-scale problem with far-reaching impact.
The reality of development work is that there will always be problems and mistakes that happen – even in the most established companies. We have seen examples of this at Meta (Facebook, Instagram, and WhatsApp), GitHub, GitLab, and many others.
While there might be frustrations from the team when mistakes happen, if they are not raised as they occur, they could compound into greater challenges.
Mentorship
One of the most meaningful things I have done in my career is mentoring juniors technically and in terms of their conduct in the workplace. As we’ve already discussed, this field can be overwhelming, particularly for someone new to it. Through mentorship, juniors can accelerate from an uncertain start to more stable productivity and growth.
In my opinion, technical mentorship is best conducted within a project. Not only will the senior have context of the junior’s challenges but also their day-to-day experiences. By investing time into their growth, the mentee will feel more comfortable. In turn, they will also be able to take on greater responsibility for the project which can ease the load across the team. Additionally, by taking the time to engage with your juniors (or really anyone in the team) you can notice their gaps which might be surprising.
For example, I was working on the development of an enterprise scale data platform with a highly skilled team. One of our teammates was a graduate student who had studied Actuarial Science and through conversation with him, I realised that he did not have foundational systems thinking. Systems thinking is emphasised throughout engineering studies and is critical to understand technical architectures and the flow of data throughout the various systems.
Without this core skill, he found it challenging to understand how the various pieces of the overarching architecture fit together. We took the time to delve into systems thinking and to his credit, he picked it up very quickly. To this day I support that he is one of the most intelligent and gifted people I have ever met, and my hope is that the time I took to address some of his gaps will allow him to take on greater challenges and accelerate his growth, skills and achievements over time.
Cameras on
In this era of remote working, many individuals opt to keep their cameras off, leading to a loss of crucial non-verbal communication cues such as body language and facial expressions. This absence of visual feedback significantly affects our ability to understand others’ thoughts and reactions.
Consider a scenario where you’re presenting to a client, and a comment provokes a bristling reaction. If cameras are switched off, this crucial non-verbal feedback will be missed and if the client chooses to say nothing, there’s a risk of a worsened relationship and assumptions may be made. Conversely, having cameras on allows for the prompt identification and addressal of such reactions, effectively handling any concerns that may arise.
Moreover, maintaining camera visibility encourages others to follow suit, facilitating a more connected and engaged virtual environment. This practice proves beneficial not only with clients but also with the development team. As Gabriel explains, “I always keep my camera on, even if I am the only one to do so.”
Give credit where it is due
It’s essential to acknowledge the efforts of the team’s great work and the impact they’ve had. When discussing features or problem-solving approaches that the team has implemented, it’s crucial to give credit to those who contributed to these solutions. This is especially important for team leaders. By recognising the efforts of the team, cohesion is strengthened, and team members feel valued for their contributions.
Gabriel concludes by saying, “We can never escape the human element, but cultivating stronger relationships and maintaining clear communication enables more effective management of the unpredictable aspects of projects, allowing us to devote greater attention to the technologies we enjoy”.