Software Development Manager
The role of the development manager: everything you need to know.
Agile frameworks contain specific roles responsible for different areas of product, process, and Agile software development in general. However, when it comes to developing people, creating a learning center, long-term team development, and other areas, there can be real gaps.
The role of a development manager (DM) is often introduced into a Scaled Agile Framework (SAFe) setup with the aim to address these areas and to complement the other SAFe roles.
In this article, we explain how the role of the DM deals with the people management aspect in an Agile setup. You will learn more about the advantages and responsibilities of project development managers and also about the challenges you may face when introducing the DM role.
In simple words, DMs are responsible for people, learning, and strategy. They usually cover four Agile teams, including Scrum Masters and Product Owners, and take care of the individual and team development.
The focus of this role is on the long-term perspectives. From that position, the DM collaborates closely with other Agile roles, that typically have more focus on the short-and medium-term gains.
A typical Scrum team is engaged in producing a potentially shippable increment sprint after sprint, while the development manager focuses on what skills are needed within the team. This includes knowing the company’s strategy and understanding what this strategy requires from the entire team.
What is the Role of the Agile Development Manager?
An IT development manager has a set of responsibilities that we’ll describe below, but the primary one is to get a product out the door. To do this he/she needs to make sure that the development team is able to work efficiently and that they have clear goals, and nothing prevents them from doing their work. Here’re the areas where their role looks relevant and needed:
- Project scoping. Development managers need to know how to scope out a project. Depending on the company and how their work with outside groups this could be a major part of their work.
- Managing relationships. Development managers need to keep good and open relationships with all the people involved in the project. They must be sure they are in the loop and get regular status updates and have good visibility on what the team is doing.
- Project planning. If the project is not large, then there s no need to attract a project manager. For small or medium-sized projects, a dev manager can take this role and responsibilities. However, a project development manager is not is a certified PM. In simple words, the development manager’s job is to get everything done as soon as possible, and the PM’s job is to say what can be done and when.
- Process control. Development managers need to keep on top of the process and keep things on track no matter whether they use Agile or Waterfall methodology. A delegation is a good option but they have to follow up and make sure things get done.
- Technologies. A development manager should not be a tech guru! He/she should be comfortable with the current technologies and be aware of new and upcoming technologies. However, they surely should know enough about the tools the team is using to know if they are using them efficiently, and know when there are gaps in the team’s knowledge.
- Development. This is also the area that they should be comfortable with, but not experts. Development managers can’t afford to spend days buried in programming and forget about the rest job.
- QA. The role of a developer manager is to make sure the tests are done and they should be proactive here. Agile Quality Assurance testing can fail for a number of reasons and to get to the root cause of test failure the managers have to get the developers working with the QA team.
- Release management. Getting a software release out the door can be a separate project (depending on the project complexity). Development managers need a common area to document components, versions for the next release, and make sure everyone has access and can update them.
- Deployment. It should be treated as a separate project, although deploying a release is often seen as part of release management. Getting the site ready to receive the new release is a project itself. And this is one more sphere of interest for an Agile development manager.
- Administrative issues. This is about writing reports, budgets, hiring and firing people, competing for resources and space, accounting, and so on.
Key Responsibilities of an Agile Software Development Manager
1. Discussing implementation tradeoffs with product owners
In order to give teams a shared understanding of the requirements and acceptance criteria, your product features and user stories should define the what, why, and for whom.
Some POs prefer to define user stories with implementation details; however, they shouldn’t be overly prescriptive on how the feature or story should be implemented. The overly prescriptive feature or story will lock dev teams into specific implementations that might be expensive to implement or difficult to scale.
2. Translating best practices to the team members
It is not easy for architects to define and share best practices and standards, and getting teams to use them properly can be daunting for large software organizations.
Companies may have experts who can strive to do things differently than what standards recommend. Teams may also have developers with not enough experience who might not fully understand best practices. The role of the Agile development manager is to understand the skills and mindset of each person on the team and translate best practices to everyone.
3. Minimizing backlogs that don’t address innovation and technical debt
Product owners may face pressure to get more features done and make more stakeholders happy with their choice of priorities. This pressure may lead to an imbalanced backlog that is overloaded with features and lacks sufficient capacity to innovate and address technical debt.
Applying reliable backlog dashboards is one of the ways to make the priorities more transparent. However, there’s no substitute for having a software development manager. This person can feel when teams are frustrated and need additional time to address technical debt.
4. Delivering high-quality releases according to schedule
Let’s say that ensuring that high-quality releases are delivered on schedule is probably the most important responsibility of the Agile software development manager.
Teams that are deemed unreliable and inconsistent or have poor execution put their organization at risk. When these symptoms exist, the software development manager’s job is to identify causes and address them.
5. Driving problem-solving and diverse thinking
Efficient Agile teams collaborate and work together. Important ceremonies (such as Stand Up meetings, demos, and retrospectives) help bring teams together to understand requirements, estimate better solutions, avoid blocks, and improve their process. Software development managers should be able to decide how to get ideas and active contributions from all participants of these events. They need to make sure the team behaves like a team, respects everyone’s opinions, shares ideas, and enables everyone to participate and learn.
Development Manager and Scrum Master: Can They Be the Best Friends?
Traditional managers may sometimes get in the way of Scrum Masters, for example, through the lack of trust in the team, micromanagement issues, addiction to command and control, and general violation of the Agile Manifesto principles.
The role of the development manager, however, was designed to have nothing to do with execution. It is typically fulfilled by professionals that understand and exhibit an Agile mindset. Scrum Masters and development managers collaborate in many areas that affect the success of an Agile team.
Here are some areas where their collaboration can be particularly beneficial:
The process of onboarding should be initiated by the development manager, but obviously, the execution requires the involvement of the Scrum Master. Experienced SMs can run the whole onboarding with minimal involvement of the DM.
2. Team formation
This is a formal responsibility of the development manager, however, SM can share valuable knowledge regarding group dynamics. Scrum Masters can be also influential in facilitating a team self-selection process.
This area is mostly associated with the SM role. However, the support of the development manager can be really valuable and appreciated. Their collaboration may result in more diverse perspectives and better results.
This is also a direct responsibility of DM but SM involvement can bring essential benefits to the recruitment process.
5. Overall strategy
Aligning teams to the overall company’s strategy is a crucial moment, especially when the short-term strategy results in team members forgetting about the long-term company’s goals. The progress in strategic and transformational work often relies on sound collaboration between SM and DM.
What Should Dev Managers Do to Stay Competitive?
Here’s the list of the essential things dev managers need to do daily to stay competitive:
1. Bring operations into the development team
If there is a separate department for operations in your company, start thinking about bringing what they do into the development fold. Developers surely need the power to architect and optimize deployment and infrastructure.
Efficient companies have created DevOps – the entirely new discipline for this. However, this requires a separate DevOps team. Remember that the DevOps developer is the new back-end developer.
2. Do not separate front-end and back-end jobs
Front-end and back-end should not be considered separate anymore. The front-end specialist should be a new full-stack developer.
Nowadays, front-end frameworks (like React or Angular) require architecture and tuning from the server-side to the browser. In case, your team has a discrete front-end and back-end, this is probably not doing so well. Moreover, this is likely to have consequences for performance that has effects on everything from the UI to SEO ranking.
3. Audit your software tools
You may use Hygger, JIRA, Trello, or something else for project management, task tracking, and bug queue for decades.
Do not forget to regularly evaluate the tools you have. Do they provide proper settings? Are their settings full of clutter? Do you still benefit from them? Compare your tools to newer software to see how they stack up.
4. Consider the contribution of remote workers
Many organizations that do software development leave policies about remote work to manager discretion. However, often the distributed workers are totally unsupported on a larger scale and have an insecure outlook on their ability to perform remotely.
A proper way of accommodating remote employees will give you a huge competitive advantage in attracting the best software developers.
5. Popularize your development team
Sending Agile developers to conferences to promote their work is quite a good idea. Actually, it is really strange how many companies don’t do this. Of course, not all developers like going to conferences or public speaking, but many do.
Many dev teams consider junior developers a drag rather than an asset. The real reason that dev teams do not have juniors is because too many just threw these newbies on a team and then wondered why they failed. Proper mentoring is the answer here.
7. Improve interviewing
Improper interviewing processes may cost you money in the form of your developers’ time deter quality candidates.
Try to let go of all your preconceptions on the subject of interviewing. Five-hour-long interviews, pair programming, whiteboarding, elaborate homework assignments that need to be evaluated… Most studies show that none of this works. Instead, plan a more structured interview that will ask questions and evaluate based on the everyday work, not code puzzles or brain teasers.
8. Reward supporting skills
Often the time that developers spent supporting and improving existing software isn’t considered valuable.
What about documentation, tests, bug fixing, continuous integration, and revision control? These practices do lead to better and faster delivery.
How to Be a Successful Development Manager Without Being a Great Developer
Every organization and every workplace is different. But there are some common things when it comes to management and leadership. Developers are not only one specific group of people.
Here are some evident do’s and don’ts dev managers experience:
- Do not overplay your tech skills. Good developers can feel a real impostor from a mile away.
- Do not be overly critical to hide your drawbacks. This may result in demotivation and will give you a bad reputation as the manager who is always critical.
- Do not bow down to a successful developer as he/she is more technically capable than you. It is too important to not try very hard to please a development guru while compromising your role as their manager.
- Be honest about your technical shortcomings. It does not mean you should take a backseat in the decision-making. Just let the team explain the technical stuff in terms you understand.
- Challenge the vision and be positive. Instead of being overcritical, challenge your team in a positive way. Try to discuss ways to solve a problem without being too tied up in the technical details.
- Remember that a great developer does not always make great decisions. Do not let your tech flaws scare you and make you indecisive!
Now you know what a software development manager is for, the next question is how to hire one?
Recruiting a DM can be a rigorous process. If you want to hire a software development manager, study the conventional recruitment method or put up ads online. Working with an offshore software development company is another decision.
Just like the salary, the job description of the development manager varies. The DM’s job description will depend on the size of your company and his/her specific duties. Don’t underestimate this role as it can bring many benefits for your team and company!