Gap.

station platform pavement with the phrase the gap printed in yellow on the floor

In the last decade as a software developer and recently as a technical coach, one of the patterns that I observed while delivering or coaching is the tendency for the developers to focus heavily on technical details and technology rather than broader business domains or social aspects.

There are several reasons why this might be the case, let’s explore some of them:

Job specialization: Developers often specialize in specific technical areas and spend a significant amount of time honing their technical skills. This specialization can sometimes lead to a narrower focus on technical details rather than broader business considerations.

Technical mindset: Developers are trained to think analytically and solve complex technical problems. This mindset emphasizes attention to detail and precision, which can sometimes overshadow the ability to communicate in a more abstract or business-oriented manner.

Lack of exposure: Some developers may not have had significant exposure to the business side of things or opportunities to interact with stakeholders outside of their technical teams. Limited exposure to the broader aspects of the business can contribute to a lack of understanding and engagement with non-technical domains.

Communication challenges: Technical jargon and complex concepts can create communication barriers between developers and non-technical stakeholders. It can be challenging for developers to translate technical details into more abstract or business-friendly language, especially if they haven’t had much practice or training in this area.

Time constraints and priorities: In fast-paced development environments, developers often have tight deadlines and multiple technical tasks to complete. This can result in a focus on immediate technical deliverables rather than spending time on understanding the broader context or developing non-technical skills.

Command and control approach: Yes, a command and control approach can potentially contribute to the lack of abstraction and focus on technical details among developers. In a command and control management style, decision-making and control are centralized, with strict top-down direction and limited autonomy for individual team members. Some of the above reasons are a consequence of the adoption of this style. I would like to dive more into this complex topic in another post.

To address some of those issues here are some ideas I find useful to try:

Cross-functional training: Provide developers with opportunities for cross-functional training and exposure to different aspects of the business. This can include sessions on business domains, industry trends, and customer needs. By broadening their understanding of the business context, developers can better align their technical work with the overall goals and requirements.

Soft skills development: Offer training and workshops focused on developing soft skills such as non-violent communication, collaboration, and presentation/storytelling skills. These skills are crucial for developers to effectively interact with stakeholders, understand their needs, and convey technical information in a more accessible manner.

Pair programming and collaboration: Encourage pair/mob programming and collaboration between developers and non-technical team members, such as business analysts or product managers. This promotes knowledge sharing and allows developers to gain insights into the business domain, while also providing opportunities for non-technical team members to understand technical aspects.

Requirement analysis and feedback loops: Incorporate robust requirement analysis processes that involve regular feedback loops between developers and stakeholders. This ensures that developers have a clear understanding of the business requirements and can provide input on technical feasibility and potential trade-offs. Three amigos?

Mentorship and role models: Establish mentorship programs where experienced developers can guide and mentor junior developers, emphasizing the importance of broader perspectives and effective communication. Role models within the organization who excel at both technical and non-technical skills can inspire others and serve as examples to emulate.

Continuous learning and professional development: Encourage developers to pursue continuous learning and professional development beyond technical skills. This can include attending conferences, workshops, and webinars on topics related to business, leadership, and communication.

As I wrote previously in my article “Holistic Developer” (what? You didn’t read it ? Time to catch up!)

I strongly believe that we need to foster a more holistic approach to software development, leading to better alignment between technical solutions and business needs.

Is there anything else would you like to recommend? Please leave a comment!

Stay tuned!

comments powered by Disqus