How is the relationship between developers and businesses changing?
Kai Hilton-Jones, Senior Director of Solutions Engineering EMEA, GitHub, writes for Digital Bulletin
The pandemic ruptured traditional ways of operating for just about every organisation and we witnessed businesses across the world scramble to adapt. Digital transformation rocketed up their list of strategic priorities. The pace of business innovation is once again proving there is wisdom behind the old cliche that necessity is the mother of invention. But if I had to pick one growing trend that will have the most transformative impact on the way enterprises function, without hesitation I would say it’s businesses’ evolving approach to DevOps and relationship with developers. DevOps is a vast topic that means different things to different people. So let me get more precise about the important changes we’ve seen in software development recently: DevOps automation Automation is essential for accelerating DevOps. Not least because it enables consistency, reliability, and efficiency within the organisation, making it easier for teams to discover and troubleshoot problems. As much as we don’t like discovering problems, it’s the only way to deliver quality results.
Despite automation in DevOps teams not being completely new, it is far from being widespread and universally adopted. Knowing where to get started is often the hardest part and understanding which processes can and should be automated. But last year we saw many organisations make significant progress and identify a few best practices. One of the biggest areas of success was continuous monitoring. It’s a critical part of the DevOps ecosystem as the processes and technology that monitor performance and stability of applications and infrastructure throughout the software lifecycle provide operations teams with data to help troubleshoot, and development teams the information needed to debug and patch. We saw this take an important role in security, where DevSecOps takes on these principles with a security focus. Automated logging means that teams have access to a continuous stream of data about the business’ critical components. Application logs, infrastructure logs, and audit logs all provide important data that helps teams learn and improve products. Similarly alerting run by automation provides proactive notifications to respective teams to help them stay ahead of major issues. When effectively implemented, these alerts not only let you know when something has gone wrong, but can also provide teams with critical debugging information to help solve the problem quickly.
It’s become clear recently that continuous integration and continuous delivery (commonly referred to as CI/CD) create a collaborative process for people to work on projects through shared ownership. At the same time, teams can maintain quality control through automation and bring new features to users with continuous deployment. Change management is often a critical part of business processes. Like the automation guidelines, there are some common principles and tooling that development and operations teams can use to create consistency. This includes version control to help people revert changes and learn from past decisions. Secondly, change control allows users to maintain code’s version history and maintain product direction, reduces the probability of harmful changes to your code, and encourages a collaborative process. Finally, configuration management makes it easier for everyone to manage complex deployments through templates and manage changes at scale with proper controls and approvals. DevOps culture Since the pandemic, we’ve seen people in all scenarios pull together to make the best of usual and bad situations. This was mirrored in DevOps teams. Collaboration within and between teams has significantly improved in the last 12 months and that’s because of a culture change. Organisations with a culture of trust have better communication. This is vital for any DevOps team, particularly the case for engineering and products teams. Last year we saw a real step change in the number of representatives from the engineering team that were integral parts of regular product planning meetings, and product people were invited to engineering status updates. These were not gestures but important practical meetings that ensured both departments were pulling in the same direction. The benefit of having a dedicated expert embedded in each team is undermined if the role is treated as a funnel for automation work.
Similarly there was a maturity in sharing tools, a very simple solution to help collaboration between the product and engineering teams. For example, we saw that if a product team used Jira and engineers track work in GitHub projects, it would reduce the risk that materials were “hidden” from the other department. This is just another example of how transparency and communication, embedded with the company culture, improved DevOps. Enterprises are financially rewarding the open source community We’ve seen a growth in enterprises rewarding developers for the work conducted to keep the community alive and thriving. Before last year, the financial rewards for the open source community was limited to peer-to-peer support. But since the introduction of GitHub Sponsors, businesses can financially reward the individuals and groups who design, build, and maintain the open source projects. Given many of these enterprises are dependent on the code, both sides see it as a fair value exchange. We have seen sponsor relationships crop up all over the world and for contributions including bug reports, issue triage, code, documentation, leadership, business development, project management, mentorship, and design. One inspiring example is Caleb Porzio, a regular contributor to the open source community. After a sabbatical, he signed up to receive sponsors and within seven months, he was able to shift into full-time open source development and has made over $100,000 per year. Sponsors really changed the open source game last year. Developers and contributors will always be driven by their enthusiasm for improving the community but without a doubt having the option to make a living out of their passion is extremely rewarding. As the saying goes, choose a job you love, and you will never have to work a day in your life. This has become closer to a reality for many developers. In summary At a time when it can be hard to see silver linings, it’s worth recognising the important steps that have been made between developers and enterprises. In doing so, we can learn from the experiences and provide the best chance to maintain positive progress.