The Dos and Don’ts of Software Development Coaching
In my recent article on hiring and retaining developers in a hybrid work world, I shared several recommendations, including improving communications, commitment to diversity, and work-life balance. . Leaders need to increase their commitment to teams while trusting and empowering individuals to perform at their best.
These are important leadership goals, but they can be difficult to translate into day-to-day interactions between software developers and delivery managers with their agile teams. So, for this article, I asked technology managers to share their recommendations for development managers, team leads, devops managers, and data scientist managers. They’ve contributed several do’s and don’ts for improving engagement and productivity without micromanaging.
Communicate goals and increase empathy
Ravs Kaur, CTO at Uplevel, knows that development managers are always under pressure to deliver more features with each release and sprint. His suggestion is to balance motivation with empathy and build human connection. She says, “An engineering manager can support their team members in many ways, like setting goals and having open communication, but the most impactful thing a manager can do is be empathetic.
Kaur acknowledges that the pandemic has put empathetic leadership in the spotlight. “Over the past two years, we’ve 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
To move beyond empathy, software developers need to recognize the symptoms of burnout. Signs of burnout include decreased productivity, increased cynicism towards co-workers, and feelings of detachment from the company.
Dawn Parzych, Developer Marketing Manager at LaunchDarkly, believes that development teams can reduce stress by using 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, seek to eliminate stress and help your team members avoid burnout by improving build and deploy processes through the use of chaos days, observability or feature indicators.”
Look for resourceful people who are looking for 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 are a host of software as a service, open source services, cloud services, and low-code solutions available to developers.
Marcus Merrell, vice president of technology strategy at Sauce Labs, emphasized 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 than not you need someone who can fetch the answer from a library or tool more than from someone whose first response to difficult problems is, “I can build this all on my own, 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, Product Manager at DevGraph, says, “Coaching is essential. Not only will coaching improve developer skills, it will also save time and money.
He continues, “The development manager should analyze code to find specific errors and work with developers to modify their coding patterns to avoid costly errors. Not only does the developer gain new skills, but the cleaner code reduces QA and testing costs and reduces technical debt.
Learn the technical details, especially for data, machine learning and devops
Software development is not just about code, and development managers need to know the technical details around cloud architectures, deployment automation, data operations, and managing the development lifecycle of software models. machine learning. “Managers need to understand the nuances of MLops, modelops, dataops, devops and Xops,” says Michael Berthold, CEO of KNIME.
Knowledge of 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. »
Berthold has reason to be worried. Recent studies show that 90% of machine learning models never make it to production. Software developers should apply a DevOps mindset to machine learning models. He adds, “Data science is more than just throwing a well-packaged model over the wall.”
Don’t make all the decisions
Helping developers understand the operational and business context is important for development teams. Sometimes dev managers need to protect developer time and minimize developer disruption, but bringing them into the crosshairs often teaches valuable lessons.
Vlad Mystetskyi, senior Monday Apps team leader at Monday.com, says software developers should involve developers in decision-making to better understand the trade-offs. “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 do,” he says.
Mystetskyi continues, “Managers need to foster transparency even when things seem uncertain, so teams feel involved in the full picture of a project. »
Communicate in commercial 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 such as annual recurring revenue (ARR) versus software product revenue, or capex versus opex can be helpful for engineers can gain insight into the larger decisions that are made within their organization. »
She also recommends leaders “to err on the side of communication, especially in terms of roadmaps and career paths. People like to know what’s coming and what they can expect to work on next.
This is 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 longer-term roadmap. From my perspective, helping developers understand the need for estimating in agile, collaborating on solutions, committing to their sprint work, and delivering reliable releases are some of the main responsibilities of the lead. of development. Development managers should try to balance the principles of self-organization with collaborating on best practices.
Copyright © 2022 IDG Communications, Inc.