Lessons from the Field: Improving the Developer Experience and Cutting through Complexity
The complexity of Kubernetes and the knowledge gap that exists in the software development industry is a serious challenge. Moving to a modern application platform based on Kubernetes has vast benefits, and while tool sets that improve the developer experience are great, cultural change is still needed.
Members of VMware’s Tanzu Vanguard community, who are expert practitioners at organizations including DATEV, OneMagnify, and Terasky, are invested in fostering positive, effective developer experiences. Their insights provide a useful blueprint for companies as they seek to understand the challenges developers face today and navigate the organizational changes needed to combat the growing complexity of application modernization and software development today.
The Developer Challenge: Technology and Mindset
As we move to distributed application architectures and work with multiple clouds, the underlying complexity has greatly expanded. What used to be a simple system call is now traversing over the network and this raises latency, security and many other things developers need to have in mind. Much of the technology used in datacenters today was never intended to be used in a DevOps manner, says Scott Rosenberg, Practice Leader, Cloud technologies and Automation at TeraSky. Often, it requires an administrator to be managed and does not have sufficient tenant isolation. To connect those services to the cloud you have to create self-service and isolation concepts around those services that would allow them to be used or even connected to a cloud. This means that adopting a cloud-based deployment requires adaptations, modifications, and decades of established processes, practices, and tools.
In addition, organizational barriers often include fearing the unknown of newer technologies and methodologies, says Kerry Schaffer, IT Director at OneMagnify. Progress can meet organizational resistance due to concern for budget constraints and unclear goals or communication. Organizational leaders need to lead their teams to modernization even though the change process can be stressful.
From a people standpoint, the main challenge is mostly about developers managing fear, says Juergen Sussner, Senior Cloud Platform Engineer & Evangelist at DATEV. The developer who did a decade of just development, relying on an administrator running their apps is understandably afraid of the “you build it, you run it” concept. They don’t know what it means operating the application, accessing production systems, or getting called in the middle of the night when the application fails. On the flip side of that, the administrator whose mission was to protect stability is also afraid of letting hundreds of developers onto their systems, maybe without knowing enough about it.
There is a transition from a developer to software engineer for the whole application lifecycle and from an administrator to a coach, not responsible for application lifecycle but working as a coach and enabler of self-services. If you can’t create a successful developer experience, you can’t buy it. It’s a constant process of improvement, retros, and experiments. It’s a change in the way we work.
Overcoming Complexity Challenges
The freedom and flexibility provided by Kubernetes is amazing, but the complexity of Kubernetes is also too much to put on our developers directly as they need to be able to focus on what they are paid to do, which is writing code and delivering apps that help the business. By enhancing the developer experience and abstracting away the underlying complexities we can enhance the time to market and make developer and operations team’s lives simpler and better. Moving to modern app designed systems, gives customers better visibility into their applications, which in turn makes troubleshooting issues and remediation times for bugs quicker, which has a huge impact on the business as a whole.
In our modern world, there is a need for communication and collaboration among customers and their clients. That means centralized data, accessible from anywhere, with business processes based on cloud technology. Tools like VMware Tanzu have helped move customers along in their app modernization journey and have seen incredible speed of delivery for new features and apps that is unprecedented in the monolithic application world. In addition, developers are excited to work with new technologies, having Tanzu can help attract top talent, says Kerry Schaffer, IT Director at OneMagnify.
Finally, it’s important for organizations to create an environment where teams can take responsibility for their product and leaders aren’t an obstacle in their way, but rather a guide helping them on their way. Having a good set of services and documentation helps, but also support and effective onboarding are equally important. Defining a platform contract can be helpful to define the developer team’s responsibilities and also the responsibilities of the platform team or datacenter teams. This can help instill confidence, by outlining clear roles and ensuring team members aren’t the last in the chain when something fails.
Modernization of applications is not only about technology. Modern, self-service-based platforms, application architectures are, of course, critical, but the mindset of DevOps teams must also be a central consideration. The biggest part of application modernization is transforming the applications into easily manageable pieces and letting a team take responsibility for this part and for the whole lifecycle, from the idea to customer feedback to retirement of the application. Application modernization is not about having new technologies in place, it’s about having the right tools, culture, and people to react quickly to changing conditions.
To learn more, visit us here.