Software development coaching dos and don’ts

Software development managers can support their most valuable asset—people—with these seven tips.
Author
uplevel
Tags

This story originally appeared on InfoWorld.com by Isaac Sacolick, Contributing Editor, InfoWorld, on March 2, 2022.

In my recent article on hiring and retaining developers in a hybrid working world, I shared several recommendations, including improving communications, committing to diversity, and enabling work-life balance. Leaders should increase their engagement with teams while trusting and empowering individuals to do their best work.

These are important leadership goals, but they may be hard to translate to the daily interactions between software developers and delivery managers with their agile teams. So, for this article, I asked technology leaders to share their recommendations for development managers, team leads, devops leaders, and data scientist managers. They contributed several dos and don’ts to improve engagement and productivity without micromanaging.

Do communicate goals and dial up the empathy

Ravs Kaur, CTO at Uplevel, knows that development managers are always under pressure to deliver more features every release and sprint. Her suggestion is to balance the drive with empathy and to establish a human connection. She says, “An engineering manager can support their team members in many ways, like mapping out goals and having open communication, but the most impactful thing a manager can do is be empathetic.”

Kaur recognizes that the pandemic has brought empathetic leadership into the spotlight. “Over the last two years, we have seen how intertwined our personal and professional lives are, and, as a manager, it’s crucial to understand that everyone has challenges and needs that require empathy. Without this human connection, team members will feel disconnected, unhappy, and eventually leave.”

Don’t let developers burn out from stress

Going one step beyond empathy requires software development managers to recognize the symptoms of people burning out. Signs of burnout include decreased productivity, increased cynicism toward colleagues, and a sense of detachment from the company.

Dawn Parzych, manager of developer marketing at LaunchDarkly, believes that development teams can reduce stress by utilizing devops tools and practices. She shared a recent study showing that 91% of software development professionals who lack processes, such as using feature flags, report feeling stressed during deployments. She suggests, “As a manager, look to how you can remove stress and help your team members avoid burnout by improving build and deploy processes through the use of chaos days, observability, or feature flags.”

Do seek resourceful people who research solutions

Development managers should remind software developers that they don’t need to reinvent the wheel and code solutions from scratch all the time. There’s a wealth of software as a service, open source, cloud services, and low-code solutions available for developers to leverage.

Marcus Merrell, vice president of technology strategy at Sauce Labs, stressed the importance of identifying solution seekers when managing development teams. “There are occasions when the smartest person with the best algorithm is the one you need. However, more often, you need someone who can go find the answer in a library or a tool more than you need someone whose first response to hard problems is, ‘I can build this all by myself, from scratch!’”

Don’t expect coding skills to improve without coaching

Of course, when it comes to coding, software development managers play an important role in reviewing a developer’s practices, adherence to standards, and path to improving their skills. Ravi Duddukuru, chief product officer at DevGraph, says, “Coaching is critical. Not only will coaching improve developers’ skills, but it will also save time and money.”

He continues, “The development manager needs to analyze the code to find the specific errors and work with developers to change their coding patterns to avoid costly mistakes. Not only does the developer gain new skills, but the cleaner code reduces QA and testing costs and reduces technical debt.”

Do learn the tech details, especially for data, machine learning, and devops

Software development isn’t just about code, and development managers must be versed in the technical details around cloud architectures, deployment automation, data operations, and managing the development cycle of machine learning models. “Managers need to understand the nuances of MLops, modelops, dataops, devops, and Xops,” says Michael Berthold, CEO at KNIME.

Familiarity with dataops and machine learning models is important. He says, “Developers can overlook two key factors: Data preprocessing is part of the production process, and model monitoring in the production environment is often static and non-reactive.”

Don’t make all the decisions

Helping developers understand operational and business context is important for dev teams. Sometimes, dev managers should protect the developers’ time and minimize their disruptions, but bringing them into the line of fire often teaches valuable lessons.

Vlad Mystetskyi, senior team lead of Monday Apps at Monday.com, says software development managers should involve developers in decision-making to understand trade-offs better. “By sharing ownership of the decision-making process and giving teams the ability to learn from their mistakes, managers can encourage developers to feel more responsible for the work they achieve,” he says.

Mystetskyi continues, “Managers need to foster transparency even when things feel uncertain so that teams feel engaged with the full picture of a project.”

Do communicate in business terms

Part of understanding the full picture is helping developers discuss their work in business terms and metrics. Colleen Tartow, PhD, director of engineering at Starburst Data, says that “understanding concepts like annual recurring revenue (ARR) versus revenue for a software product, or capex versus opex can be useful so engineers can gain insight into the larger decisions that are made within their organization.”

She also recommends that leaders “err on the side of over-communication, especially in terms of road map and career paths. People like to know what’s coming and what they can expect to work on next.”

That’s a two-way recommendation. As much as developers want to know what’s next, business stakeholders also want to know what improvements are coming in the next release and the longer-term road map. From my perspective, helping developers understand the need to estimate in agile, collaborate on solutions, commit to their sprint’s work, and deliver reliable releases are some of the dev manager’s key responsibilities. Dev managers should try to strike a balance between self-organizing principles and collaboration on best practices.