What Does a Development Manager Do?

As a (software) Development Manager myself, I am always pondering exactly what it is that makes someone great at this role. While surely every company has their own take on the role (if they even have the role!), here are my thoughts about what makes a good Development Manager.

As with other members of the development team, the primary responsibility of a Development Manager is delivering software. Obviously this needs to be the right product, with the appropriate level of quality, delivered in an acceptable amount of time. Without directly gathering requirements, doing design work, developing, testing, etc., how does a Development Manager contribute to delivering great software?

Here are what I believe to be the most important responsibilities of a Development Manager that have a direct impact on a team’s ability to deliver effectively:

  1. Ensure your teams are following an effective development process. This should likely include a focus on communication both within and outside the development team(s), a continuous improvement model like frequent “retrospectives”, and some basic mechanism for measuring and communicating progress. This is in large part what being Agile is all about. A hugely important function of a Development Manager could also be drumming up support for Agile if there is a culture challenge within your company.
  2. Do the normal managery stuff. Make sure teams are appropriately staffed and equipped. Mentor the team leads. Train and grow team members. Make sure people are happy. Be accessible. Break down barriers for your teams. Keep your teams informed of what is going on in the business. Participate in the budgeting process. Share responsibility for failures and shield your teams from politics and drama.
  3. Keep upper management informed. Upper management should know what your teams are about. Let them know about your teams’ successes and opportunities on a regular basis. The only way you can grow your teams and get the resources you need is if the company understands and believes in what you are doing. This responsibility would ideally be shared with the Product Owner(s).
  4. Understand the business and advocate technology solutions. As with a Product Owner, I believe a good Development Manager needs to have command of the company’s strategy and major initiatives. This understanding coupled with a strong grasp of technology and your teams’ capabilities puts the Development Manager in an excellent position to advocate solutions which can be delivered by your teams. Of equal importance can be understanding what is not a good fit for your teams. For example, don’t commit to building an enterprise chat system when there are perfectly good packages that could be purchased instead.
  5. Help wherever it is needed. A Development Manager needs to have a strong technical background and needs to understand all of the roles of the cross functional team. I believe a good Development Manager should be able step up and provide hands on help when the team really needs it. This could be anything from doing actual development to manual system testing to requirements refinement and gathering, or anything else that might be blocking the team. If this is happening frequently then it is a sign of a bigger problem, but occasional help at this level is appropriate.

What do you think are the most important functions of an effective Development Manager?

Advertisements

2 comments

  1. Hi jake,
    Congratulations on your first blog. I have just started blogging myself.

    Software development managers seem to have a different role at your company than at mine. At the company I work I have two managers. I have a line manager who does 1:1s and manages leave requests, performance reviews and other HR type work. I also have a scrum master who does exactly that role.

    You mention that you mentor the team leads. Is that in a technical or non technical way? Do you have a developer background or did you work your way up from another position?

    • Thanks zombiecodekill. Congrats on your blog as well. It seems as though we passionate about the same things!

      You make some great points. Much of what I said does overlap with the responsibilities of the Scrum Master.

      A Scrum Master most definitely should be ensuring that the team is following an effective development process. Marshaling productive retrospective sessions is one of the many ways a Scrum Master can do this. The Development Manager on the other hand may have a broader view of best practices across multiple teams, or may have perspective on the development practice from the viewpoint of the business that are worth sharing with the team.

      I also believe it is possible for a Scrum Master to tackle some of the other responsibilities, but it has been my experience that if you require your Scrum Masters to do budgeting, quarterly status update meetings with executive management, etc. then you could be distracting them from the more important day to day delivery of software. On the flip side, there are also some traditional “HR responsibilities” in which I think a Scrum Master should participate. Reviews are a great example. It makes a lot more sense for a Scrum Master to provide the bulk of the feedback for a team member’s review — as opposed to the Development Manager who may not be working with the individual as closely. Finding the right balance of responsibilities between the Scrum Master(s) and Development Manager is surely an art, and something which each company could and probably should do differently based on the skills of the individuals.

      In regards to mentoring team leads, I’ve been a developer for 7 years prior to becoming a Development Manager and have experience with nearly all of the technologies we employ. I’ve also been a Team Lead (before we called it a Scrum Master) so I’ve got lots of experiences on which to draw. I find this to be invaluable and can’t imagine having any other background to effectively have this position.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s