Cracking the Code for a World-class Developer Experience

Several years ago, Dell Digital, the internal IT team at Dell Technologies, did a study that showed us something that most IT organizations have long struggled with—a lack of developer productivity. We found that our developers were only spending an estimated 20% of their time writing functional code. The rest of the time they were dealing with administrative tasks like provisioning infrastructure, running quality and security scans and getting their code into production. This required coordinating with change and release management, operations and a variety of other dependencies across the organization.

Faced with that nagging statistic, we decided to double down on creating a developer experience that could support them so they could spend most of their time doing what developers do best — creating solutions for the business. This is what all companies are trying to do as they accelerate their digital transformation agendas.

I am happy to say that we have cracked the code on how to create great experiences for our developers — to let them run faster and do the work they like to do without being bogged down in administrative tasks and manual processes.

Our approach is multifaceted, including a fully automated cloud, with a catalog of robust services and a fully automated DevOps pipeline that has resulted in skyrocketing development productivity and quality.

Three years into our journey, our developers are now spending between 70% to 75% of their time writing functional code and using their innovative talents to introduce new solutions and add value to our company. They can provision the infrastructure they need in a matter of minutes instead of days, weeks or months and quickly deploy the code in a standardized and automated manner using our CI/CD pipeline.

Moving beyond manual

When you go back several years at Dell, it could take 70 or more days to build an infrastructure before a developer really started writing the first line of code. This continues to plague many companies still using manual processes to build an environment.

Many times, you had to have a one-off design, order hardware, get approvals, receive it, get it racked and stacked, connect to the network, apply security settings, download the operating system, add configurations and then build your services on top, depending on what the workload was designed to do in that environment. Administering all these manual processes to build an environment is overwhelming and not an efficient use of time.

Along with the hugely time-consuming back and forth of manually building an infrastructure, the other burdens are the manual side of change management and of running code through quality and security scanning tools in disparate places. These activities have everything to do with the setup of the environment and nothing to do with writing functional code.

This is why developers turn to public cloud providers to get infrastructure services at the swipe of a credit card.

We knew the solution was clear, albeit challenging. We needed to adopt a maniacal focus on automating everything we do in our IT environment.

Automation, automation, automation 

Making the transition to automation is a marathon, not a sprint. We began to build the automation of infrastructure services back in 2016 and pushed for a real change toward adopting DevOps across the organization the following year.

Uniquely, I had previously run the infrastructure team and pivoted to the DevOps team in 2019, I spearheaded a joint effort by both teams to drive automation. I understood both sides of this equation and how important it is to have empathy for the challenges that both infrastructure and development face. Only with both teams working together is it possible to transform your IT environment.

On the infrastructure team, we had to determine what automation capabilities we were going to use and how we were going to spin up those environments. This included creating capabilities that automated the provisioning of virtual machines (VMs), a network to build and segment containers, load balancing, security, database and caching services. We used, and continue to use, VMware technology, including VMware Tanzu for self-service cloud-native solutions and NSX for networking.

We also had to determine a reference architecture defining how our services were going to be built in a standardized yet flexible way. We took an API-first approach for everything that we built and incorporated that into our architecture. We worked closely with the development teams and created a self-service catalog that lets developers define and chose the capabilities they need—compute, network, database, etc. Today we have provided an environment that lets developers build what they need in five to 30 minutes. 

A single DevOps pipeline

In parallel with infrastructure automation, the DevOps team worked to create all the automation services that a developer needs to optimize their job. We started by analyzing the more than ten pipeline solutions that had evolved around different development organizations over the years and defining the strategy of what we needed our single comprehensive pipeline to do.

Working with the development teams, we built a path with all the integrations and blueprints our developers needed to deploy their code. And then we migrated all teams to a single pipeline platform.

Developers write test cases, write their code, test the code against the test cases, deploy it into staging, perform code fixes and redeploy. They also need to run a variety of security checks before, during and after deploying into production. All of that is automated in our CI/CD pipeline.

We use third-party vendors and in-house capabilities to create service integration points to put everything that a developer needs at their fingertips — from scanning code for security vulnerabilities, to checking for 12-factor coding best practices, to credential management.

Our API-first approach to developing code has yielded further development efficiencies. Developers can share APIs via our API marketplace. APIs are acting as gateways to unlock digital assets and data for use by IT and other internal business units and departments, as well as external businesses, customers and partners.

Our CI/CD pipeline has resolved what was a massive time suck for developers when they used to do all these steps manually.

Our pipeline, coupled with our catalog of automated infrastructure services, has created what we’re calling an industry-leading developer experience. 

Skyrocketing productivity, quality, efficiency

The benefits of our transformed developer experience are clear. Developer productivity is going through the roof and quality is significantly better. The time it takes us to address defects is dropping and the development feature cycle time is reducing, which means our efficiency is climbing.

We expect to finish our current fiscal year with 21 million pipeline job runs, doubling from last year. We have achieved more than a 35% increase in overall developer productivity in 2021 alone. The quality of the code has improved, the frequency of deployments and features have increased and the number of production incidents has sharply dropped.

Overall, cracking the code on creating an industry-leading developer experience means we have the velocity we need to shift more of our focus to innovation and driving business solutions forward.

For more insights into Dell Digital’s transformation journey, check out Overcoming Roadblocks: A Journey to Modern Apps with Containers and Kubernetes, featuring Jaynene;  Bob Ganley, Sr. Marketing Consultant, Dell Technologies Cloud Business Unit; and Steven O’Grady, Principal Analyst, RedMonk.

Source link

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.