Rethinking the Role of Development Managers: A Call for Change in the Software Industry

Have I caught your attention? If you’re a part of the management team at a software development company, this article is a must-read. If you’re a development manager or software engineer, share this with your higher-ups! In this piece, I will explore a critical issue that has been plaguing teams since the late 2000s: the rise of ineffective development managers within companies.

I recently conducted a Twitter poll targeting software engineers, inquiring about their managers’ ability to dedicate sufficient time to effectively oversee their teams. As evident, and as anticipated, the overwhelming consensus indicates that most managers fall short in this regard.

As a consequence of this trend, your applications and services are suffering, your users are growing frustrated and seeking alternatives, your development team is struggling, and your top engineers are heading for the door. This exodus leads to diminished profits. Let’s work together to change this trajectory for the better.

It’s worth noting that I’ve held the role of a development manager myself, with experience dating back to my time at Proflowers.com when they were in-between CTOs. I’ve been leading people and teams since the age of 18, even overseeing software development on a global scale at a biotech company based in San Diego.

What Do Development Managers Actually Do?

Before we explore this topic further, it’s crucial to gain a clear understanding of the roles and responsibilities associated with a development manager. Let’s dissect this based on ChatGPT’s insights:

  1. Project Planning: Development managers work closely with stakeholders, such as product managers or clients, to grasp project requirements and define the scope of work. They collaborate with the team to establish project timelines, set goals, and allocate resources effectively.
  2. Team Management: Managing a team of software developers is a core duty. This includes hiring and training new team members, conducting performance evaluations, providing constructive feedback and mentorship, and fostering a collaborative and productive work environment.
  3. Technical Guidance: Development managers should possess a strong technical background. They provide technical guidance and expertise to the development team, aiding in solving complex technical problems, reviewing code, and ensuring the team adheres to best practices, coding standards, and development methodologies.
  4. Process Improvement: Continuous evaluation and improvement of the software development process are vital. Managers identify bottlenecks, inefficiencies, or areas for enhancement and implement strategies to boost productivity, quality, and efficiency. This may involve introducing new tools, methodologies, or process changes.
  5. Communication and Coordination: Effective communication is a pivotal aspect of the role. Development managers act as a bridge between the development team and other stakeholders, like project managers, product owners, or clients. They facilitate clear communication, provide regular project updates, manage expectations, and address concerns or issues promptly.
  6. Risk Management: Assessing and managing risks associated with software development projects is crucial. Managers identify potential risks or obstacles that could impact project success and develop contingency plans to mitigate those risks. They also monitor project progress, track key metrics, and take corrective actions when necessary.
  7. Budget and Resource Management: Development managers are responsible for overseeing the budget allocated to software development projects. They track expenses, control costs, and ensure efficient resource allocation. Collaboration with other departments, such as finance or procurement, may be required to secure necessary resources or negotiate contracts with external vendors.

In addition to these responsibilities, it’s crucial to recognize that an effective manager should always support their team and advocate for them when issues arise. Furthermore, a healthy dose of empathy is essential. No one wants to work under a manager reminiscent of the character depicted in the 90s movie “Office Space.” If you haven’t seen this film and work in the tech industry, it’s a must-watch to gain some insightful (and comical) perspectives on office dynamics!

Bill Lumbergh: “Ah, ah, I almost forgot… I’m also going to need you to go ahead and come in on Sunday, too. We, uhhh, lost some people this week and we sorta need to play catch-up. Mmmmmkay? Thaaaaaanks.

Now, let’s move forward.

Revitalizing Development Management for Success and Sustainability

It’s high time for companies to take a hard look at the effectiveness of their development managers and address the issues that are causing frustration, burnout, and talent attrition. The solution lies in reevaluating workloads, fostering a supportive and balanced work environment, and recognizing the pivotal role that development managers play in a company’s success. By making these changes, you can ensure that your development teams thrive, your products excel, and your profits soar.

Navigating Work-Life Balance and Managerial Challenges in the Tech Industry

Allow me to start by sharing a story from my experience as a Principal Software Engineer at a San Diego-based company, where I worked from 2008 to 2012. The title of Principal Software Engineer represented the pinnacle of achievement for software engineers within the organization. Given my role, I was responsible for conducting performance reviews of my development manager every six months.

First and foremost, my manager was one of the best I’ve had the privilege of working with throughout my career. In fact, he was so exceptional that I decided to stay with the company longer than originally planned. A great manager is something I consistently seek in a team, alongside a great team itself. For me, this is even more critical than salary considerations. In each of my reviews, I made comments similar to this:

I must commend James for his excellent management skills. However, it’s worth noting that the heavy workload imposed on him, including a constant stream of meetings and round-the-clock support for various tasks, has left him with insufficient time to manage the team effectively.”

James was not only expected to attend meetings for the better part of each day but also to work during the wee hours to oversee builds or attend early morning meetings with offshore teams. He even had to work on weekends. I recall saying to him multiple times, “I don’t know how your family puts up with this.”

You might think that after several reviews with these concerns, the company would take action, but unfortunately, nothing changed during my time there, and I suspect the situation remains unchanged. Well, there was one attempt at change – the introduction of “No Meeting Wednesdays,” which lasted a mere two weeks. This company was notorious for hosting an excessive number of meetings. I once humorously coined the term “Marry-go-round Meetings” when discussing this with James. We felt like we were going in circles during these lengthy meetings, with little to show for it. Regrettably, my experience extends to several other companies plagued by a similar issue, and in each case, the common denominator was ineffective development managers.

At one point, they approached me about transitioning into a development manager role. My response was a resounding “No way.” Why would I willingly accept a position that demands more work, accomplishes less, and pays less? It simply didn’t make sense to me. This would have been a recipe for a complete lack of work-life balance.

The Plague of Excessive Meetings!

As demonstrated in the story I recounted, managers often find themselves drowning in an endless sea of meetings. Their calendars are chock-full of back-to-back meetings, leaving them with no time to engage effectively with their team members. How can we expect managers to fulfill their role when they are perpetually tied up in meetings?

Team Members Require Timely Responses

During the course of a day, team members inevitably have pressing questions that demand prompt answers from their manager. However, a manager’s day packed with meetings often obstructs this crucial communication. While it’s possible to address emails during meetings, doing so diverts attention away from the ongoing discussion. Additionally, some questions may be intricate or necessitate comprehensive responses. In such scenarios, it becomes more time-efficient to handle these matters in person or through a virtual meeting, especially when working remotely.

Team Members Require Clear Guidance

Throughout the workday, team members often find themselves in need of clear direction. Exceptional development managers serve as a crucial link between the team and upper management. They are expected to be well-versed in management’s expectations, budget constraints, and other critical details. Consequently, they should be readily available to answer a wide array of questions concerning features, development, testing, deployment, and more. It’s imperative that they furnish this information promptly to ensure team members can seamlessly carry on with their tasks.

Frequently, these inquiries can bring work to a standstill. Hence, it’s paramount that managers are accessible to address these questions without delay. Extended waiting periods, spanning hours, days, or even weeks, for answers signal an overload of responsibilities and should serve as a signal for the company to intervene and alleviate some of the manager’s workload.

While engineers can pivot to other tasks during these wait times, this context switch invariably results in time loss within the project. If your teams consistently struggles to complete tasks within a sprint, this could indeed be one of the major contributing factors.

Team Members Seek Assistance

Throughout the workday, team members often require various forms of assistance. They may need guidance to schedule vacation or sick leave, support in managing expense reports, help with interpersonal issues involving teammates or other colleagues within the company, or even assistance in installing necessary software, among other things.

Challenging Company Practices Hindering Productivity

I’ve come across many companies that unintentionally impede productivity by introducing intricate processes, particularly in the realm of computer configuration and software installation. Surprisingly, even a prominent American company falls into this category. In certain instances, the process of installing new software can extend to a month, and even routine updates can consume several days. Such practices substantially hinder team members in their pursuit of efficient task completion.

So, how exactly do managers go about managing their teams? Unfortunately, the answer is often quite grim. Many managers find themselves in an arduous position, working exceedingly long hours – sometimes up to 12 hours a day or more – and sacrificing their weekends. What makes this situation even more disheartening is that, as salaried employees, they don’t receive additional compensation for the significant extra time they invest. In fact, it’s not uncommon for managers to earn less than the top engineers on their teams.

It’s essential to consider the impact of such treatment on the morale and retention of your managerial talent. Expecting managers to endure these conditions can lead to the loss of both skilled managers and engineers, ultimately detrimental to your company.

Moreover, the expectation for managers to participate in middle-of-the-night calls with offshore teams is worth revisiting. These offshore teams are part of your organization and should ideally operate within your time zone, particularly during core meeting hours. This adjustment can help strike a better balance in managing global teams while respecting the work-life boundaries of your managers.

Burdened with Tasks Outside Their Scope

I’ve covered the fundamental duties of managers. Now, let me recount a recent experience involving one. However, before delving into that, I’d like to reflect on an enlightening remark by a Microsoft manager during the Visual Basic Insiders Technical Summit conference I attended in the late ’90s.

One recurring observation I’ve made throughout my career, including during my time in the US Navy, is that managers often find it challenging to keep up with the rapidly evolving technical landscape. Once they transition into managerial roles, they tend to lose touch with their technical expertise. However, the manager overseeing Microsoft Office offered a valuable perspective by stating that all managers engage in some level of coding. I wholeheartedly endorse this notion as a means to keep managers connected with the technical side of their teams. Furthermore, any code they contribute should undergo rigorous code reviews to ensure quality and relevance.

Managing an Excessive Number of People and Teams

Earlier this year, I encountered a manager tasked with overseeing two substantial teams, with my own team comprising approximately 17 individuals. This was the largest team I had ever been a part of, and it primarily operated within the Microsoft technology stack. However, the manager lacked a background in Microsoft .NET, and his coding expertise seemed to be primarily in Java and/or JavaScript. Additionally, he appeared to be the sole individual knowledgeable about configuring and troubleshooting the build and testing setup, which ran on a Linux container (the reasons for this choice remained unclear). Consequently, several of my pull requests languished in a state of limbo, not for days or weeks, but for months. I’m thankful that I have moved on from this situation, as I was not looking forward to merging code into a branch that hasn’t been updated for months – a potential nightmare that could significantly impede project progress.

Moreover, every developer on the project encountered challenges related to Linux, minikube, scaffold, and bazel, and it appeared that this manager was the sole individual on the team capable of addressing these issues. Ideally, such tasks should have been within the purview of someone else in the company, perhaps within a DevOps role. The absence of backup resources created significant bottlenecks, especially when the manager was absent due to illness or vacation. During these times, it often seemed as though everything came to a halt until his return. The resulting backlog placed immense stress and anxiety on him to catch up, a task that proved elusive during my time on the team. This situation also gave rise to considerable stress and frustration among team members.

Given these circumstances, I have reservations about considering full-time employment with this company, as the existing management structure and resource allocation hinder effective project management and team productivity.

The Role of Development Managers in Builds

As highlighted in the earlier story, it’s unreasonable to expect development managers to be working late into the night to oversee builds – a task better suited for DevOps or the configuration management team, if available. Similarly, development managers should not be burdened with middle-of-the-night calls involving offshore teams. These responsibilities should be allocated more appropriately, allowing managers to focus on their core duties of team leadership and project management.

The Role of Development Managers vs. Project Managers

Development managers should not be tasked with daily project management responsibilities. This role is traditionally fulfilled by project managers. Yet, over the past decade, it’s become increasingly common for many managers to assume these project management duties, in addition to serving as scrum masters and conducting daily standup meetings. This raises the question: why are they performing tasks that should be handled by dedicated project managers?

This practice extends to engineers as well, and it’s difficult to ascertain the reasoning behind it. This misallocation of resources not only wastes valuable talent but also poses a significant risk of project delays. While development managers should naturally play a role in project planning, they should not be encumbered with the day-to-day tasks of project managers. Clarifying these roles can enhance efficiency and streamline project execution.

The Role of Lead Developers vs. Development Managers

As previously mentioned, development managers should indeed possess a robust technical background. However, they should not be tasked with performing the duties of a lead developer, as was the case with the manager I encountered earlier this year. In his team, the absence of a lead developer resulted in him taking on responsibilities that were outside his expertise, particularly in the realm of .NET.

It’s worth emphasizing that in my experience, once an individual transitions into a managerial role, they tend to fall behind in staying current with evolving technologies and practices. This is where a lead developer should step in and provide valuable guidance. Lead developers should always remain at the forefront of the latest technologies and be a source of guidance for both the manager and other team members.

During my time at one company, for instance, part of my role involved dedicating 20% of my time to mentoring other team members and offering guidance. As the resident .NET expert in the company, my manager, James, often deployed me to assist other teams, even enlisting my help in conducting technical interviews. My experience from interviewing many developers who joined the company during my tenure inspired me to write my book titled “Rock Your Career: Surviving the Technical Interview.” I released a new edition of it this year.

Lead developers should be the primary go-to individuals for addressing technical inquiries and providing assistance, relieving the development manager of this responsibility. In situations like my recent role, where the development manager assumes this role, the project and team can suffer due to an overwhelming workload.

Furthermore, lead developers should be prepared to step in when the development manager is absent due to illness or vacation, ensuring the project’s continuity during their absence. In the company I worked for earlier this year, having a lead developer could have significantly improved productivity and aided in meeting project deadlines.

Provide Adequate Support for Development Managers

Throughout my career, I’ve observed that most of the managers I’ve worked with have not received the requisite support from company management. This often manifests as insufficient resources, particularly in terms of engineers and other key positions. As illustrated in the earlier story, even when one team was reassigned to a different manager, it didn’t seem to alleviate the workload significantly.

It’s essential to guarantee that development managers within your organization have access to the requisite resources. These resources comprise project managers, lead or principal engineers, quality assurance support, DevOps support, human resources, and accounting support. To illustrate, during my tenure at the company mentioned earlier in this article, the accounting department’s intricate procedures often posed significant challenges when it came to processing expense reports. On several occasions, the intervention of our department head was required to hasten payments, often with a simple directive: “Just pay David!”

Just like every member of the company, development managers should also enjoy a healthy work-life balance. A lack of balance can serve as a clear sign that your company isn’t providing adequate support. Encourage open and candid discussions with development managers and senior team members to gather honest insights, free from any fear of repercussions. This dialogue can be instrumental in identifying areas where additional support and resources are needed to ensure effective management and project success.

Beware of Micromanagers: They Can Ruin Teams

Engineers, have you ever had the misfortune of working under a micromanager? ChatGPT defines micromanagers as individuals who excessively and obsessively control or closely supervise their subordinates or team members. They tend to involve themselves in even the minutest details of a project or task, often to the detriment of productivity, morale, and the overall success of a team or organization.

From personal experience, I can attest that managers of this ilk can indeed wreak havoc on teams. It’s my belief that many of these micromanagers often lack the necessary experience in team management or are managing teams in areas where they have no expertise.

Consider my time at one company as a case in point. When I initially joined the company, the manager was a capable one who hired me not just to work on projects but also to mentor the team, particularly in the transition to cloud technology. About a year later, this manager decided to step down from management and return to his role as a database administrator – a choice I can sympathize with given the challenges of managing at at this company.

Upon his departure, the most senior team member temporarily assumed the management role, doing an admirable job for about six months. He was an ideal candidate for the permanent development manager position, which he actively pursued.

However, much to the team’s dismay, the company made an unsettling choice by appointing an individual from the finance department with no prior experience in software development as the new development manager. This decision was compounded by the fact that this person had been embroiled in an HR dispute involving verbal harassment directed at a team member during a meeting – an incident I personally witnessed. Furthermore, every team member explicitly expressed their reservations about him assuming the managerial role.

Given his complete lack of experience managing software engineers, he swiftly descended into micromanagement. He introduced a plethora of largely unproductive meetings, causing us to spend excessive time in sessions that contributed little to project advancement. Additionally, he instituted weekly one-on-one meetings with every team member, further eating into our productivity.

Furthermore, he was designated to lead the daily standup meetings but frequently failed to attend. At one point, he introduced a new spreadsheet for me to enter my time, even though I was already using three separate systems for this purpose. I pushed back against this additional burden, as I felt that I was already dedicating too much time to time tracking. I understand I may come across as having an attitude, but I felt that if he consistently missed our daily standup meetings, it didn’t make sense for me to spend my time reporting my work to him.

To compound matters, other departments within the company were hesitant to collaborate with him, leading to a steady decline in project assignments for our team. Ultimately, my contract was terminated, and shortly afterward, the entire team was disbanded and reassigned to other teams.

The lesson from this story is twofold. First, if you find yourself working under a micromanager, I strongly recommend considering a move to a different team or company. Managers of this ilk can induce substantial stress, anxiety, and frustration, while also impeding your professional development.

Second, for companies with micromanagers in leadership positions, it’s crucial to either find new managers or invest in training your existing micromanagers to become effective leaders. Failure to do so can have detrimental effects on your projects and lead to the departure of valuable team members.

In Conclusion

I understand that I may come across as nostalgic for a time when things seemed different, and to some extent, that’s accurate. It’s possible that the role of development managers will continue to bear an overwhelming burden of responsibility and work for the foreseeable future.

If you’re grappling with issues such as declining product and service quality, customer attrition, revenue loss, or declining stock prices, I’ve provided several real-life experiences to illustrate the underlying reasons. The crux of this article centers on the challenges faced by development managers in fulfilling all seven responsibilities outlined at the beginning.

It may be an opportune moment for introspection and a reevaluation of your company’s practices. Initiating change can begin with increased support for your development managers, equipping them with the necessary resources to succeed. Without such changes, it’s unlikely that the current situation will improve.

Please feel free to share your thoughts in the comments below. I welcome your feedback and insights.

Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks

One-Time
Monthly
Yearly

Make a one-time donation

Make a monthly donation

Make a yearly donation

Choose an amount

$5.00
$15.00
$100.00
$5.00
$15.00
$100.00
$5.00
$15.00
$100.00

Or enter a custom amount

$

Your contribution is appreciated.

Your contribution is appreciated.

Your contribution is appreciated.

DonateDonate monthlyDonate yearly

If you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave

© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.