No two managers are alike. Styles differ, their approaches to their roles differ, and face it – their levels of energy differ. But how important is it for managers overseeing software development to get down in the weeds with their teams, or should they remain above the fray, enforcing coding practices and setting policies? We spoke with John Mathon, founder of TIBCO and a new company called Agile Stacks, to get his opinion on the subject.
SD Times: Development managers have to make sure projects run smoothly and are completed as requested. So, how close to the code do they need to be? Should they be jumping in and coding, or merely helping to set policies and internal best practices for developers?
Mathon: Development managers need to be close to the code; however, leadership work is different than the technical work. Managers need to focus on establishing engineering practices and teams, managing projects, and organizing developers. It really helps when development managers can perform a technical code review, as well as know how to submit a pull request and write unit tests. Even more importantly, development managers need to establish and support an agile culture, DevOps automation, and continuous improvement.
Development considerations include the supporting infrastructure, but many developers don’t understand infrastructure or concerns about security and resource utilizations. Many also either don’t know how or want to implement CI/CD with automated testing in an adequate way. It’s critical to ensure that security scanning has been performed and passed before deployment. If there is a security problem, the entire enterprise can be massively impacted.
Many software projects today are built from pre-existing components, whether open-source or off-the-shelf. What is the development managers’ role in assuring license compliance and security?
First, managers need to know what components are being used. It is easy for developers to use cloud services and open-source components. However, a proliferation of tools can lead to risks and costs later when the components are scaled, need upgrades, have problems or incompatibilities. For this reason, organizations should limit the number of different components offering similar services.
Additionally, managers generally need to be aware of how popular an open-source project is and if it is supported well by the community. License compliance is less important today, since almost all open-source components use Apache or similarly loose licenses. More important is watching each component for security concerns.
How responsible are development managers for testing? How hands-on in that process should they be?
Development managers need to know what tests are being created and what tools are being used to run the tests. They also need to know if security testing and performance testing are being done on a regular basis, and they should receive alerts or notices if the testing identifies issues.
Outside of the development process, how involved with business decision-makers and marketers should a dev manager be?
Today’s DevOps-oriented Agile approach requires development and business teams to be highly synchronized. Each iteration of a business offering should be driving the apps and services to be created by the development team. A proper Agile and DevOps process should enable releases to production for every iteration, and these should correspond to business priorities. Additionally, the development process should inform the business team, so business managers can be aware of the reliability of predictions made by development.
Is it the development manager’s responsibility to introduce Agile or DevOps practices to the team? If so, must he be an expert in these areas? How does he gain that expertise?
It may be the responsibility of the development manager to run the Agile process. If so, training via well reviewed consulting organizations would be good. There are excellent books on the subject as well. A lot of people think they know Agile and in reality they don’t.
Even if not running the Agile process, a development manager should still have a thorough understanding because he or she then will be able to assess the process implemented by the team and work with the Agile coaches and project managers effectively.