Owner of Standards and Processes – Definition of Done
The Software Development Manager defines standards and processes that must be followed in order for any software development project to be considered complete (“the definition of done”), and not the scheduling and/or budget of individual projects.
The Software Development Manager is not:
- a project manager, product owner, or scrum-master
- a technical guru
- a developer, programmer, or software engineer
- these roles may be included in and/or compliment their duties but they are not software development management.
…but the Software Development Manager must:
- have enough technical expertise to be aware when any tools used are being used in the most efficient and reliable way.
- know good code from bad.
- know good software development practice from bad practice.
- manage initiatives that change and/or improve the Software/Systems Development Life Cycle (SDLC)
…and the Software Development Manager is the
- one in the middle who resolves conflicts and maintains relationships and integrations between project managers, product owners, scrum-masters involvement with software development
- process owner of the systems development lifecycle (SDLC) for all software development – whether waterfall or agile methodology.
- Continually looks for improvement
- agent for Service Operations, Service Transition, Service Strategy, Service Design, and Continual Service Improvement within software development. In a DevOps environment the Software Development Manager is owner of these processes for non-production environments.
- owner of the “definition of done” which any change or project adheres. Includes ownership and development of the following standards which may be in collaboration with specialist resources such as solution architects:
- Development Standards (i.e. coding standards, branching and merging strategies)
- Developer Testing Standards (including automated testing)
- Architecture Standards
- Security Standards
- User story and/or documentation requirements
- overseer of technical debt ensuring it is paid back
- receiver of input from Product Owner, Change and Demand Management for changes and new projects
- setter of clear goals by confirming and/or defining project scope with the Product Owner, Change Manager, or Demand Manager
- decision maker for the best development methodology (agile or waterfall) required to best implement a change or new project
- performer of root cause analysis (RCA)
- co-coordinator of the resources required to develop a change or project ensuring all requirements are met
- If the methodology is Agile Scrum then assign the scrum-master and scrum team. The Product Owner is the responsibility of the Change Requester
- If the methodology is waterfall the Project Manager is the responsibility of the Change Requester
- If the change is the result of a Problem with an existing system determine if the change can be fixed with ongoing development or requires fixing using an Emergency Release Process as set by Release Management
- champion and/or creator of the environment to enable high-performing and self-organized teams
- coach, mentor, and trainer to the development teams
- team builder and recruiter
- team administrator
Benefits of a Software Development Manager
- ensures provision of expertise and consistency of standards and process across multiple development teams and that skills are transferable across projects
- standardization reduces cost and drives up efficiency
- Technical debt is managed not forgotten, and paid back
- Prevents product owners, project managers, and scrum-masters deviating from standards and process or overriding them and pressurizing the development team to deliver faster than quality allows
- Encourage re usability of tools and effort by recognition of duplicity across projects
- All the above allows the Software Development Manager to set an enterprise definition of done which is consistent and cannot be compromised