In this series, a number of roles have been covered including the following:
- Subject Matter Expert
- Functional Analyst
- Solution Architect
- Development Lead
- Quality Assurance
- Project Manager
It is possible to believe that there is nothing left to be done. That all of the roles outlined thus far is all that is needed to make the process work. However, the role of the development manager is critical to the long-term success of the software development team. The role that the development manager plays - particularly when interacting with the project manager - is essential to a continuously improving process. (If you've not been following the series, you might want to read Cracking the Code: Breaking Down the Software Development Roles.)
What's the Development Manager role?
The development manager's role can be described as "everything else". Although accurate this description is not very illuminating.
The development management role is the role whose purpose it is to keep the vision on track. This is much like a CEO, who sets the vision for an organization. This of course differs from the COO, who-like a project manager-ensures the day-to-day operations. While it's the project manager's goal to get the project to the finish line, it is the Development Manager 's responsibility to look ahead to make sure that the finish line is the right finish line to be reaching. While the project management position is a management position, the development manager role is a leadership position. Click hereto see how the the Deployment role fits within the full organizational chart.
The development management role works closely with the project management role to ensure that the projects are completed. They also spend time working with the business owners on planning and preparing for new projects that will soon be consuming the group. They're constantly making small changes in the current project to get a better product, develop a better skill set in the group, or just generally preparing the development team for the next hurdle that they must face.
While the project management role is dutifully executing the current process, the development manager is examining, evaluating, and assessing the impact of potential changes in the market. The development manager is constantly evaluating ways to improve the skill set of the group. That can be through the use of a new tool or technique, or additional training on fundamental skills that the group already knows but doesn't execute consistently. The project manager's short-term focus allows the development manager the ability to focus on longer-term objectives.
In addition to the long-term objectives the development management role is intimately involved with prioritizing multiple, nearly always conflicting, priorities across software development projects. With the help of the project managers, the development manager intertwines the activities of multiple projects to improve the efficiency of the team.
In some organizations the development manager is also responsible for evangelizing to business leadership. While the training role was responsible for evangelizing to the "rank and file," the development manager evangelizes the solutions, the process, and the team to business leadership and customers. This portion of the role is more marketing than development, but is an essential part of ensuring that the business is aware of the value of the software development team.
The development manager also is often the cheerleader that pumps up the development team, encouraging them to remember the vision, to be a part of greatness, and generally be excited about the work that they're doing. Great teams work hard but have fun with each other and believe in what they're creating. It's the development manager's role to create that shared destiny that the group needs to be truly powerful.
In non-software development or consulting companies, the development manager role is often played by the IT management. Often times the IT manager leverages the strengths of a project manager or a solutions architect to fill the needs of the development manager role, retaining tasks such as cross prioritization of projects.
Getting Started as a Development Manager
The development manager role is at the top of the food chain, so to speak. Because of its position at the top of the IT organizational chart, it's a role for which there is generally great competition. One of the most important parts of preparing for this role will be differentiating you from the competition. (See Standing out from the crowd )
People filling the solutions architect role or the project management role have the best chance of moving into a development manager role. The development manager who comes from the solutions architect position generally leads from technical strength. Conversely, the project manager who moves into the development manager role leads from a process strength. Neither is better than the other, however, the approaches to the role will be different. Understanding that both can be successful is important.
To prepare for the development manager role, you should be primarily concerned with learning how to communicate with the business leadership and learning how to adapt software development priorities to match the business goals. Offering to get involved with business management meetings in lieu of the development manager - or in addition to the development manager to take notes or document action items - exposes you to the kind of discussions that the development manager must be able to be effective at.
Communication is more than just one directional, however, while learning to understand the business goals and the impact on the software development process is important, it's also important to be able to communicate with business management about the state of the software development group, good or bad. This includes the state of software development projects. Volunteering to present or prepare status reports helps to encourage this kind of communication.
Ultimately, becoming a development manager is demonstrating these communication skills, gaining the respect of others, consistently delivering, and a little bit of luck since development manager positions don't come around that often.
What's in their Toolbox?
The toolbox of the development manager is less about the kinds of "hand tools" that most other roles are intimate with. The development manager's tools are more about "power tools" and "automated machinery" which the development manager leverages to transform the group. Here are some of the tools the development manager will use:
- Methodologies- Development managers have their own methodologies for developing software. The ability to execute that methodology or their methodologies is a great tool. Some development managers may use existing methodologies derived from the Capabilities Maturity Model Integration (CMMI) framework created by The Software Engineering Institute (SEI) at Carnegie Mellon University in Pittsburg. The SEI web site at http://www.sei.cmu.edu/ has a wealth of information about the metrics for ensuring that the processes that are in place at an organization are effective.
- Practices- Development managers need more than just broad methodologies they need a practical guide to understanding what does and doesn't work in Software development. The Guide to the Software Engineering Body of Knowledge (SWEBOK) contains the high level overview of software development best practices and is freely available at http://www.swebok.org. The development manager can also use the guide as a tool to identify gaps in the team's knowledge and develop strategies to fill those gaps.
- Career Development Process- Development managers are responsible for developing the group. That means a firm understanding of how to develop people in the organization. The development manager may be familiar with one or more than a dozen approaches to developing the careers of the people that work for him (or her).
- Scheduling Tools - The development manager is adept at scheduling multiple conflicting priorities and as a result is skilled in the use of a resource scheduling tool. Whether a simple Excel spreadsheet or a deployment of Microsoft Office Project Server 2003, the development manager knows how to ensure that resource management is well taken care of.