Let’s be honest: software development has not always been the most worker-friendly world. Historically, crunch times made super-human demands on developers. This frequently resulted in highly-disgruntled employees, and ultimately led many developers to unionize against crunch culture. What’s more, the end-products of this culture were – unsurprisingly – not always optimal.
Thankfully, today’s forward-thinking development leaders are taking a wholly different approach to productivity. Especially in light of COVID-induced work from home (WFH) culture, more and more dev orgs are thinking and working in terms of developer velocity – and producing better software, faster, because of it.
What’s interesting is that in a world inherently defined and driven by technology, even tech-centric market analysts like McKinsey have come to realize that developer velocity is equally dependent on technology, methodology and people skills. Microsoft research backs this up, revealing that developer fulfillment, happiness and health boosts their ability to innovate and maximize productivity. And when GitHub found that developer well-being was at an all-time low, we started seeing companies like Google, Cisco and others encouraging workers to take mental health days.
It’s become clear that in addition to providing dev teams with the right tools, software stakeholders need to empower developers with an environment that encourages innovation, reduces points of friction, and maximizes developer performance and satisfaction. And the beauty of this new focus on developers as people is that it does not compromise productivity in any way. Quite the opposite. A stronger emphasis on managerial soft skills has been shown to raise developer throughput, speed release cycles and (most importantly) enhance quality.
Soft skills have finally gained recognition in the software world. Basically, it pays to be a softie in software.
The Secret Sauce: Four Tips
Soft skills in software development are the secret sauce that drives business performance. Here are some best practices you should consider adopting:
- Tip #1 – Teach your developers to fail
It’s sometimes difficult for dev team leaders to accept this, but more and more companies are realizing that failure is not a bad thing in software development. And the faster you fail, the better. Why? Because products fail when they don’t meet customer needs. The faster we find these failures, the faster we can correct them.
By teaching your developers that failure is acceptable, you offer them a safety net. Keep in mind that an effective “fail-fast” methodology must be accompanied by a thorough post-fail analysis process to ensure continuous company and stakeholder improvement.
- Tip #2 – Grow their confidence
Nobody proceeds quickly when they don’t feel confident. Developers are no different. In addition to teaching them that failing is OK, ensure they understand that your process has got their backs. Because when developers understand that A/B testing, feature flagging and other tools will give them fast feedback on proposed changes in the product, and test-driven development (TTD), static code analysis and a shift-left approach will empower them to find and fix problems earlier, and move much faster – they gain the confidence to raise velocity while relying on the course correction you built into the system.
- Tip #3 – Help them find work-life balance, even with WFH
To facilitate effective communication and collaboration among your dev teams working remotely, first ensure that they maintain a clear timeframe for working hours. Daily work should have a start and a stop, just like in the office. During onboarding of new developers, assign them a team buddy and ensure that they touch base regularly. Schedule quick daily team sync meetings (no more than 10 minutes) with open cameras, and weekly or bi-weekly in-person team meet-ups, even if work itself remains remote.
Encourage team friendships and self-education, and embrace new tech whenever possible – developers love to work with, or at least be exposed to, the latest gadgets. Take the time to update developers about company news, strategic goals and (especially) wins. Help them understand that wherever they’re located, they remain a crucial part of the team.
- Tip #4 – Take KPIs with a grain of salt
Although they are important managerial measures of development progress, don’t over-emphasize product and development KPIs. The reason? They can be false indicators of progress, and relying on them too heavily can inadvertently incentivize your developers to make the metrics the target rather than a tool for reaching the target. Need an example? Code coverage: in testing it’s important, but as a lone KPI it may lead to naïve tests that cover the code, but not actual scenarios of interest. Rather than defining KPIs that divert your team from your actual targets, try setting goals closer to these targets, and allowing team members to arrive at these targets faster. Set them up to win in what really matters – not just what you need to show to management.
The Bottom Line
In software development or any domain, soft skills are an essential part of leadership. Successful leaders motivate and inspire their teams, but also strategize, listen to feedback and incorporate their team’s ideas. Being a softie on software development teams was once considered managerial weakness. Today, it’s increasingly seen as a strength that should be nurtured and ultimately implemented to create a stronger, more resilient, more productive development organization.