ADAPT AND THRIVE: How to Keep Hold of Your Most Important Assets
Part 4 of Adapt and Thrive, our business-focused series of articles on digital transformation, exploring the role of developers and the importance of giving them the right tools in order to retain them.
If you can’t give your developers the tools they need to deliver, they’ll work elsewhere.
Developers want to be productive. And to be competitive, you need them to be productive, too. But as the cloud native era places more pressure on organizations to deliver software quickly, it can be easy to overlook the importance of the developer experience. In this article, we look at why it’s so important – and how GitOps can be used to give your developers what they need.
Boardroom Summary
- Successful digital transformation relies on skilled developers
- Even the best developers can be hampered by a poorly designed software delivery pipeline
- Location is no longer a barrier to hiring the best developer talent
- But they need to be empowered to deliver quickly, using tools they know
- GitOps is a framework you can use to create self-service developer platforms, with no learning curve for your team
Be sure to check out the other articles in our Adapt and Thrive Series:
- Part I: ADAPT AND THRIVE: Digital Transformation for Business Success
- Part II: ADAPT AND THRIVE: The Right Way To Do Automation
- Part III: ADAPT AND THRIVE: The Importance of Locking Down Your Software Development Pipeline
Digital Transformation Can’t Happen without Good Developers
The idea that ‘your people are your most important assets’ has become one of the most well-worn clichés in business. But when it comes to the demands of digital transformation, it rings true – especially when it comes to people in one particular class of job roles: software developers.
That’s because the days of outsourcing all your software development are long gone. Apps, websites and other software projects are integral to your organization’s ability to deliver in the cloud era, which makes you completely reliant on the developers on your payroll. And when it comes to those developers, the best ones are critical to your success. As Bill Gates once put it, “A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” In short, the more skilled your developers are, the more important it is to hold onto them.
Right now, however, that is easier said than done. At a time when structural and social trends are colliding with the highest inflation levels in decades, valued employees in organizations across the developed world are leaving for new jobs. The problem is even worse in software development, where skills were already in short supply. As tech investor and former Dell executive Tyler Jewell recently pointed out, the demand for software development skills is already outstripping the available number of developers. As more and more organizations proceed with digital transformation, this problem will only grow.
Retaining Developers Can be Hard for Most Companies
Clearly, experienced developers are in demand – and the best ones will be able to choose from numerous potential employers. While this poses no problem for tech giants that offer the chance to work on truly interesting problems, ‘normal’ employers will find it harder to compete in the battle for talent.
In other words, if you’re Google or Microsoft, it’s easy to retain great developers. If you’re a bank or a logistics company, it’s going to be a little harder. Dismiss it as an image problem if you wish, but it’s real. Even in the age of widespread digital transformation, some companies are sexier than others. But it’s not all bad news. There are ways to ensure you can retain your best talent, while also competing cost-effectively for new recruits.
Let Them Work Remotely
First – and most obvious – is remote working. When it comes to software development and management, many members of your team should be able to work productively from outside your office. As a result of the changes in working patterns enforced by pandemic restrictions, many no doubt already are – and the fact that so few people wish to return to pre-pandemic working patterns has turbo-charged the recent increase in people moving to new jobs.
But there’s a bigger trend afoot in the world of software development, beyond the desire for less frequent commuting and a better work/life balance. Not too long ago, most software development was undertaken by developers working for the major technology companies, which were concentrated in a handful of the world’s cities – most notably, but not solely, San Francisco.
Over the past couple of decades, however, as other types of business have begun building software development teams, that has changed. Opportunities for skilled developers have sprung up all over the world, which is why developers can now be found living practically everywhere. The upshot is that, as Redmonk’s James Governer has argued, the best talent might not live nearby or want to move there – and that’s fine. If you’re in the US and they’re in Europe, hire them anyway. If they’re local right now but want to emigrate, let them go. As long as they can work for you wherever they want to, you’re well positioned to retain them.
Let Them be Productive
But it’s not all about where your staff work. It’s also about what you actually require them to do. Pandemic or not, talented personnel will always leave if they are unhappy with the content of their working day. And for the people who develop and manage your software, it is vital to minimize any drudgery that can otherwise distract them from the most interesting, gratifying and often, important aspects of their job. In short, if they are bogged down with boring work, they will leave.
This is where the technology itself starts to matter. Digital transformation, by nature, means going cloud native. And for most teams, that means building applications that will run as microservices, in containers orchestrated by Kubernetes.
Kubernetes has come a long way in the decade or so since it was released as an open source project by the team that designed it at Google. It has effectively eliminated all competing container orchestrators to become the de facto cloud native platform technology. Arguably the most powerful feature – its support for declarative instructions and its ability to self-organize and self-heal – has made it the ideal basis for cloud native software platforms.
There’s just one problem. Kubernetes is complex. And developers want to be productive, without being saddled with extra hurdles, just to make effective use of the platform. As Governer explained in a recent Weaveworks/Redmonk webinar, most developers want to be able to achieve their goals without getting bogged down in configuration – and the way to deliver this as an employer is via self-service platforms that focus on improving the developer experience (DX).
Let Them Use the Tools They Know and Love
A self-service developer platform is an important aspect of an effective, cloud native software delivery pipeline. In essence, it limits the degree to which developers can or need to get involved in the configuration of the software they write. It places guardrails around the process by which they deliver code, in the form of automatically enforced policies.
But surely a new platform means new tools – and a correspondingly steep learning curve?
Not necessarily. The most effective model for automating the software delivery pipeline is known as GitOps. It can be used to offer the self-service platform your developers need to deliver at speed – and crucially, it does not necessitate learning new software.
GitOps works by placing all the configuration information for an application in a Git repository, just like application code. By storing this information in Git and employing a software agent to monitor the running application for any divergence from the information in the repository (known as the ‘single source of truth’), it stops the production application from diverging from the version. For developers, it provides a safe framework in which to work, using the languages and version control system (Git) that they already use.
Move Faster with DevOps
Digital transformation is not a one-off event. It involves the creation of infrastructure that will allow your organization to deliver software updates at high speed and low cost.
By introducing automation to the pipeline and judiciously combining new technology with familiar developer tools, you can give your developers something they may struggle to find elsewhere: a fulfilling role where they can be productive and focus on interesting work that makes full use of their skills. That means you can compete in a labor market where the skills you need are becoming scarcer by the day.
To learn more about GitOps, its capabilities and how to make use of it in your organization, contact us today.