The software never really changes. It is, as Capitol Canary CTO Mikhail Opletayev recently put it, “a set of instructions that tell computers what to do.”
Software development – the way people write and deliver those instructions – changes regularly, on the other hand. Some principles remain more or less the same over time, but many facets of software manufacturing – languages and libraries, methodologies, tools, packaging, testing, etc. – constantly evolve.
With that, the realities of what it means to build and run software – and what it means to build and lead a software development team – have also changed. Let’s look at five realities of modern software development that successful IT managers understand.
1. Developer experience is paramount
The phrase is classic hyperbole, but you could do worse than take it literally in computer contexts.
“CIOs in 2022 need to understand the reality that they have the power to shape the developer experience within their organizations – and that this may be the most crucial factor in attracting and retaining developer talent,” says Ravi Lachhman, technical director of Shipa. .io.
Disgruntled developers usually don’t ship good software. But this is an oversimplification. The real problems that come with a lousy (or simply poor) developer experience are worse.
[ Related read: How to explain modern software development in plain English. ]
Talent wars are real, and struggling to fill software roles doesn’t mean you’re a bad boss. But if you’re struggling to hire or retain talent while ignoring developer experience, well, that’s another story.
“Software engineers seek new challenges in order to evolve their skills and expand their domain and technical expertise, in order to both stay relevant and achieve greater professional and financial rewards,” says Lachhman. “If a CIO’s organization fails to provide such opportunities, software engineers can easily find another.”
Lachhman shares some examples of how to prioritize and optimize the developer experience:
- Activate rotations between responsibilities: “CIOs need to allow engineers to rotate regularly between different goals or workflows within digital transformation projects. »
- Reduce friction: “CIOs should seek to reduce the barriers between developers’ raw ideas and their finished products in production.”
- Empower developers to see results and grow them: “It’s also crucial that developers are able to quickly visualize and iterate on their achievements.”
- Monitor (and address) burnout: “Like everyone else, engineers have a limited cognitive load, and few enjoy constant context switching.”
Developer experience goes beyond recruitment and retention: it’s the cornerstone of good software. It’s now also an indicator of the success (or failure) of digital transformation – prioritizing employee experience and mitigating burnout are among the top recommendations of our recent Harvard Business Analytic Services report, Maintain the momentum of digital transformation.
Developer longevity is generally a positive indicator in this regard, according to Lachhman.
“The longevity of software engineers is a critical advantage in digital transformation journeys, given the valuable insights cultivated over time,” says Lachhman. “Keeping engineers means keeping them engaged and motivated. With a positive development experience in place, success builds on success and motivation builds motivation throughout digital transformation. »
2. Automation is everywhere
If the experience of developers is essential to the human success of a software team, automation is its counterpart to technical success. The speed and frequency of software development today could cause motion sickness in even the most hardened engineer; automation is what makes it possible without breaking your team or your systems.
Software development today could cause motion sickness in even the most hardened engineer; automation is what makes it possible without breaking your team or your systems.
[ Also read Automation and digital transformation: 3 ways they go together. ]
IT automation isn’t new, but it’s more powerful than ever — and it’s found virtually everywhere in the software pipeline, from testing and security to deployments and scale. CI/CD pipelines epitomize this reality, as does the massive enterprise adoption of Kubernetes.
Automation comes with some considerations and concerns for IT managers, including the fear factor the term causes in terms of job security. Leaders lean into it with empathy because they recognize automation as a powerful tool that enables software teams to do more with the same (or less) – instead of just overwhelming the team with pressure and loads of unsustainable work.
3. Decentralization is increasingly the norm
Software development is also a link to the trend towards decentralized IT: think containerization, microservices architecture, open source, hybrid cloud and multicloud, for example.
All of these reflect new ways and models of building and operating software in increasingly distributed and heterogeneous ways today. All also reflect new opportunities – and new complexities – in terms of cost, performance, governance, security, and more.
As Kaushik De, VP, GTM lead for custom software development and cloud CoE lead, Capgemini Americas, told us in early 2022, models such as containerization and hybrid cloud reflect the indispensable role of IT in meeting the outsized demand – among customers, boards, partners, investors and other stakeholders – for digital transformation and innovation.
The deepening relationship between hybrid cloud and edge computing – and the development of edge applications – is one of the emerging examples of this general trend.
But decentralized does not mean non-interventionist. Instead, IT managers should look for platforms and processes that enable control and flexibility as distributed software development and infrastructure become the norm.
“Executives should expect to see a push toward a platform that gives control over the environments and services people can provision,” De told us.
[ Build complete automation workflows for hybrid environments. Download the eBook: Connect your hybrid cloud environment with IT automation ]
4. Security is (duh!) critical
This should be obvious, but IT pros know the reality: Security has long been treated – whether by design, ignorance, or some other root cause – as an afterthought in the lifecycle of software development: that’s for someone else to worry about.
This is changing, probably for good. Tight security is now a board-level issue for many companies. The threats are too numerous – and the costs of not doing enough to prevent and mitigate them are too high – to ignore. Bank of America CEO Brian Moynihan said on CNBC’s Squawk Box in 2021 that the company now spends more than $1 billion a year on cybersecurity.
While this is a particularly large security budget, it is part of a larger trend: security is ranked as the top overall funding priority in Red Hat’s Global Tech Outlook 2021, with 45% of IT managers surveyed who rank it as their #1 priority.
As Red Hat technology evangelist Gordon Haff noted at the time, at least some of that money was being spent simply to stay afloat in an incredibly complex threat landscape. But it also reflects a greater focus on integrating (and automating where possible) security throughout the software development pipeline, especially given the trend toward decentralization and heavy reliance with respect to external container registries, libraries and other software components.
“Increased awareness of issues such as software supply chain security—understanding the provenance and vulnerabilities associated with dependencies such as libraries—represents an important step toward mitigating them,” Haff wrote.
5. Software is business
Last but not least, the era of software development as an obscure technical silo in a back-office IT function should officially be declared over. (It already attracts flies.)
This reality may not have permeated every organization yet, but that doesn’t make it any less true. Software development is inextricably linked to top and bottom bottom lines. There is no digital transformation without software development. Pick one of the biggest buzzwords in business (“digital transformation” among them), and software almost inevitably has a role to play.
There is another dimension to this reality: it is not magic. IT and business leaders need to be focused and intentional about how, why, when, and where they develop software (the “what”) for it to have the transcendent impact of buzzwords like the promise of innovation.
“Modern software development should be doing something different for your business — improving customer experience and generating revenue — or you should probably be wondering why you’re doing it,” Haff says.
[ Need to explain key Agile and DevOps terms to others? Get our cheat sheet: DevOps Glossary. ]