Managing software developers requires leadership skills that enable your team to deliver the best product — and deliver it on time. To reach those goals, managers must understand their teams, their customers, and development challenges and provide developers with the tools and support they need.
Tatiana Smekhnova, Senior R&D Project Manager, Map Visualization at HERE Technologies, answer some common questions about how managers can create the right culture and provide the right resources to help software developers succeed.
ISV managers have to balance giving developers autonomy with keeping projects on track. How can managers find that balance?
Smekhnova: It’s important to note that “autonomy” doesn’t waive the need for follow-up and “keeping a project on track” doesn’t mean micromanagement. It truly is all about striking a balance between the two.
When assigning a developer with a project, I recommend focusing on the problem that needs solving, not the steps it will take to get there. The manager likely has an idea of how they personally would approach the problem, but it’s better to let the developer find the solution on their own. Setting clear expectations and explaining why a certain result is expected will help the developer keep their sights on the big picture. Of course, managers should be available for coaching and be able to ask specific questions to guide the developer in the right direction.
Another important step in the project management process is agreeing on how progress will be tracked and reported. This could be in the form of a daily stand-up meeting, weekly written report, or even automatic status updates via a tracking tool. My team at HERE uses a combination of these — agile sub-teams share their updates via daily stand-up meetings, and the manager can get a general overview from our tracking tool. Alignment on reporting is key to keeping projects on track.
How can you encourage a team to fully address the administrative side of their work when they will inevitably always give priority to development?
Smekhnova: Development should be prioritized because it has the most impact on the business, but administrative tasks are inevitable.
A good manager should evaluate the end value of the admin task versus the time spent to fulfill it and decide where it’s appropriate to automate or change processes. The manager is responsible for helping the team understand the goals and benefits of administrative tasks. For example, regular backlog grooming helps to keep the backlog clear, so everyone can more accurately predict completion timing.
Is it the best strategy to allow your team to work on their own schedules or make them adhere to a common schedule? Why?
Smekhnova: There are many factors impacting this decision, and it’s important to ask the right questions. How mature are team members? What is the product or project they’re working on? What are the team’s goals?
The manager should choose the working schedule that best suits their team’s specific needs and clearly define best practices the whole team must adhere to.
What are the best methods for estimating software development time?
Smekhnova: There are many techniques for estimating the timing of software development projects. A few of the most common are:
- Expert and group estimation, which is usually done by a group of experienced team leads and/or experts.
- Analogy-based estimation, which uses historical data from previous projects.
- Parametric estimation, which uses models to estimate the scope of a project based on the parameters of the future software system. For example, the number of interfaces or number of third-party components to be integrated.
- Breaking down requirements into small and easy-to-estimate tasks and then aggregating these estimates.
There is an additional approach in which the length of a project is estimated three times to predict the best scenario, worst scenario and most likely scenario. This approach helps identify the risk associated with each scenario.
Because managers are usually short on time, I usually use a mix of iterative and incremental techniques to estimate the time spent on my team’s projects. This method develops a system through repeated cycles (iterative) and in smaller portions at a time (incremental). This allows developers to establish a deeper understanding of the system through iterations and offers more accurate estimations.
Which metrics or KPIs should managers use to gauge performance and measure success?
Smekhnova: Metrics and KPIs should be highly customized to each development team. Managers should make sure they fully understand what success looks like for their product or project and how their team contributes to overall business success before creating performance metrics. Examples of metrics I’ve used are the number of new customers using a certain product or a particular NPS score.
What additional advice do you offer for managing software developers?
Smekhnova: Managers are responsible for the culture of the team. Creating a safe and trusted working environment is a crucial factor in establishing a high-performing team.