Software development – how people write and deliver those instructions – changes regularly, on the other hand. Certain principles stay more or less the same over time, but many facets of how software gets made – languages and libraries, methodologies, tools, packaging, testing, and so forth – continuously evolve.
With that, the realities of what it means to build and operate software – and what it means to build and lead a software development team – have likewise shifted. Let’s examine five modern software development realities that successful IT leaders understand.
1. Developer experience is everything
The expression is textbook hyperbole, but you could do worse than interpreting it literally in IT contexts.
“CIOs in 2022 need to understand the reality that they have the power to shape the developer experience within their organizations – and that doing so can be the single most crucial factor in attracting and retaining developer talent,” says Ravi Lachhman, field CTO of Shipa.io.
Unhappy developers don’t usually ship great software. But that’s an oversimplification. The real problems that come with a lousy (or just mediocre) developer experience are worse.
[ Related read: How to explain modern software development in plain English. ]
The talent wars are real, and struggling to fill software roles doesn’t mean you’re a bad boss. But if you’re having a tough time hiring or retaining talent while ignoring developer experience, well, that’s another story.
“Software engineers seek new challenges in order to evolve their skill sets and expand their domain and technical expertise, in order to both remain relevant and command greater career and financial rewards,” Lachhman says. “If one CIO’s organization fails to deliver such opportunities, software engineers can easily find another.”
Lachhman shares a few examples of how to prioritize and optimize developer experience:
- Enable rotations across responsibilities: “CIOs should allow engineers to rotate regularly across different objectives or workstreams within digital transformation projects.”
- Reduce friction: “CIOs should seek to reduce barriers along the path from developers’ raw ideas to their finished products in production.”
- Empower devs to see results and build on top of them: “It’s also crucial that developers are empowered to quickly view and iterate upon their accomplishments.”
- Watch for (and address) burnout: “Like anyone, engineers have a finite cognitive load, and few enjoy constant context-switching.”
Developer experience goes beyond recruiting and retention: It’s a cornerstone of good software. It’s now also an indicator of digital transformation success (or failure) – prioritizing employee experience and mitigating burnout are among the key recommendations of our recent Harvard Business Analytic Services report, Maintaining momentum on digital transformation.
Developer longevity is typically a positive indicator in this regard, according to Lachhman.
“Software engineer longevity is an essential advantage on digital transformation journeys, given the valuable knowledge cultivated over time,” Lachhman says. “Keeping engineers means keeping them engaged and motivated. With a positive developer experience in place, success builds on success, and motivation builds motivation across the digital transformation.”
2. Automation is everywhere
If developer experience is core to human success on 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.
IT automation isn’t new, but it’s more powerful than ever – and it’s virtually everywhere in the software pipeline, from testing and security to deploys and scaling. CI/CD pipelines epitomize this reality, as does the considerable enterprise uptake of Kubernetes.
Automation comes with certain considerations and concerns for IT leaders, including the attendant fear factor the term causes in terms of job security. Leaders lean into that with empathy because they recognize automation as a powerful tool that enables software teams to actually do more with the same (or less) – instead of just saddling the team with unsustainable pressure and workloads.
3. Decentralization is increasingly the norm
All of these reflect new methods and patterns of how software gets built and operated in an increasingly distributed, heterogeneous manner today. All of them also reflect new opportunities – and new complexities – in terms of costs, 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, patterns such as containerization and hybrid cloud reflect IT’s indispensable role 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 broad trend.
But decentralized doesn’t mean hands-off. Rather, IT leaders need to look for platforms and processes that enable control and flexibility as distributed software development and infrastructure becomes the norm.
“Leaders should expect to see a push toward a platform that provides control over which 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 a no-brainer, but IT pros know the reality: Security has long been treated – whether by intention, ignorance, or some other root cause – as an afterthought in the software development lifecycle: That’s for someone else to worry about.
That’s changing, likely for good. Strong security is now a board-level issue in many enterprises. The threats are too many – and the costs of not doing enough to prevent and mitigate them are too great – 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 per year on cybersecurity.
While that’s a particularly big security budget, it’s part of a broader trend: Security ranked as the top overall funding priority in Red Hat’s 2021 Global Tech Outlook, with 45% of IT leaders surveyed listing 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 embedding (and automating wherever possible) security throughout the software development pipeline, especially given the decentralization trend and the significant reliance on external container registries, libraries, and other software components.
“An increased awareness of issues such as software supply chain security – understanding the provenance of and vulnerabilities associated with dependencies such as libraries – represents a significant step towards mitigating them,” Haff wrote.
5. Software is the business
Last but certainly not least, the era of software development as an obscure technical silo in a back-office IT function should officially be declared dead. (It’s already attracting flies.)
This reality may not have sunk in yet in every organization, but that doesn’t make it less true. Software development is inextricably linked to the top and bottom lines. There’s no such thing as digital transformation without software development. Pick any of the biggest buzzwords in the business world (“digital transformation” among them), and software almost inevitably has a role.
There’s another dimension of this reality: It’s not magic. IT and business leaders need to be focused and intentional about how, why, when, and where they’re developing software (the “what”) for it to have the transcendent impacts buzzwords like innovation promise.
“Modern software development should be doing something differentiating for your business – improving customer experience and driving revenue – or you should probably ask why you’re doing it,” Haff says.
[ Need to explain key Agile and DevOps terms to others? Get our cheat sheet: DevOps Glossary. ]