The Secret Sauce for Making Your Developers Happier

By ZoomInfo Engineering, Yaniv Katz, November 27, 2023

Welcome into the world of engineering productivity, back in the day, our rapidly growing company, bustling with skilled engineers, faced a crucial turning point. We realized that our conventional methods were not only hindering progress but also affecting our most crucial resource—our developers. As deadlines approached and challenges increased, it became clear that the well-being and efficiency of our developers were key to delivering cutting-edge solutions swiftly. This led to a significant change in our perspective, prioritizing developer productivity and well-being. In this exploration, we’ll delve into the impact of this paradigm shift, how it led us to adopt new practices in software development, automate our operations, and understand the significance of a developer-centric approach. We’ll also discuss various strategies to measure and enhance developer productivity.

The Initial Struggle: ZoomInfo’s Productivity Group Grows From Pain

ZoomInfo (ZI) began its journey as a small, agile company. In its early stages, the company’s Software Development Life Cycle (SDLC) was primarily semi-automated, with room for enhancing tools and standards to boost productivity in a tech-centric environment. As ZI grew, the need for a more streamlined approach became evident. To address this, we formed a dedicated engineering productivity group focused solely on refining key areas of our development process.

DevEx Tools: Enhancing Productivity and Fostering Engineering Culture

We are adopting AI tools like GitHub Co-Pilot, the tool’s proficiency in generating code snippets and offering context-relevant coding suggestions has been instrumental in enhancing our developers’ efficiency, allowing them to allocate more time to creative and strategic endeavors. Additionally, we actively create tools equipped with integrated code languages and framework standards, which significantly benefit our developers by enabling them to commence their tasks with ease and efficiency. These tools do more than just simplify the development process, they lay down a framework for consistency and a set of rules of engagement across our engineering teams. Such uniformity in practices and standards enables a culture characterized by clarity, efficiency, and collaborative energy. These tools provide a unified platform for all developers, fostering an environment where best practices are commonly shared and followed. This approach not only boosts productivity but also contributes to the development of a cohesive, robust engineering culture. In summary, our focus on developing tools that enhance the developer experience and integrate essential standards and frameworks is crucial in shaping and maintaining the desired culture within our engineering teams, leading to a more streamlined, efficient, and cooperative work environment.

Self Service Any Repetitive Tasks

To improve productivity and reduce developer mental load, we’ve embraced the power of automation in infrastructure management, fundamentally transforming how our developers engage with operational tasks. This shift redirects their focus towards the core of business logic, minimizing the reliance on DevOps teams. The result? A significant reduction in waiting periods and operational friction. This new paradigm accelerates the setup and modification processes, fostering an agile development environment. Consistency is maintained, and the likelihood of human error is drastically reduced, collectively enhancing overall productivity. Our developers now have the bandwidth to channel their expertise into creating business value.

Further, we’ve integrated extensive automation within our CI/CD pipelines, revolutionizing how we handle manual work. This comprehensive automation encompasses everything from unit tests and integration tests to component tests and end-to-end (E2E) tests, all smoothly integrated into our workflow. Our pipelines are further strengthened by quality gates. These gates act as vigilant sentinels, ensuring any potentially problematic code is caught and corrected before it ever reaches the production stage. This proactive stance on quality assurance is pivotal in upholding the integrity of our codebase.

Moreover, we’ve adopted advanced deployment and release strategies, such as Canary and Blue-Green deployments and Feature Flagging. These methods provide a safer, more controlled rollout process, complete with automatic rollback capabilities to address any unexpected issues swiftly. This approach is crucial for introducing new features and updates, as it guarantees the reliability and stability of our production environment. The ability to progressively roll out updates is invaluable in mitigating deployment risks, enabling us to consistently deliver top-tier software while ensuring maximum uptime and user satisfaction.

Unifying Development and Operations: Internal Developer Platform (IDP) for Enhanced Engineering Productivity

The IDP provides developers with a streamlined platform to manage existing services and effortlessly create and scaffold new ones directly within the Portal or CLI. This integrated approach ensures that every service creation adheres to uniform best practices from the start, containing selecting suitable infrastructure resources, normalizing telemetry data handling, and automatically configuring service-related alerts and dashboards. This unified framework not only enhances the developer’s workflow with a consistent and intuitive interface but also significantly reduces the mental effort typically required in developing and adjusting services.

Separation of Concerns in an IDP

  • Infrastructure Orchestration and Role-Based Action Control (RBAC): Primarily utilized by Ops, DevOps, or Platform teams, these features ensure efficient management of infrastructure and access control.
  • Application Configuration Management: While the platform team sets baseline templates and standards, this feature is also used daily by application development teams.
  • Deployment Management and Environment Management: These functionalities are predominantly in the domain of developers, streamlining their workflow in the deployment and management of environments.
  • Developer Portal and Service Catalog: Central to the IDP, this offers various interfaces such as a CLI, UIs, or a developer portal with a service catalog, unifying the developer experience. As Gartner states, these portals are key interfaces for developers to access internal platform capabilities.
  • Platform API/Orchestrator: This serves as the backbone, connecting all the building blocks of the IDP, and can vary in form depending on the platform’s maturity.

ZI developer portal service catalog

Integration with Existing Tech and Tools

  • Provide building blocks code languages and framework standards enabling management of development configuration in a standardized, dynamic, and scalable way. This has a significant impact on development productivity.
  • Workflow Setups and CI setups integrate seamlessly, fetching built images to update or deploy resources. External resources like databases or buckets are connected through IDP’s API.
  • Ops Tools Integration: Tools for monitoring, chaos engineering, GitOps, and others can be plugged into the IDP workflows to provide flexibility and customization based on the team’s needs.

Measurements: Beyond Standard Metrics to a Holistic View  – Know Your Developer

To truly grasp the dynamics of your development team, it’s essential to look beyond just the standard productivity metrics. Placing a focus on qualitative metrics (Inputs) like Net Promoter Score (NPS) and Customer Satisfaction (CSAT) offers a deeper understanding of the team’s effectiveness and highlights potential areas for improvement. The following metrics, when considered collectively, play a vital role in elevating team performance, refining processes, and fostering a culture of productivity within the team.

  • Ease of Delivery: Gauges the efficiency from coding to deployment, aiming to streamline this process.
  • Engagement: Assesses team morale and its impact on innovation and cohesion.
  • Perceived Productivity: Measures developers’ self-evaluated efficiency, highlighting potential performance gaps.
  • Weekly Time Loss: Identifies areas causing time wastage, improving overall productivity.

To achieve a balanced understanding of software development efficiency, quality, and developer well-being, it’s crucial to integrate qualitative and quantitative metrics. DevOps Research and Assessment (DORA) metrics like Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service provide a quantitative framework for evaluating team performance. However, supplementing these with qualitative assessments offers insights into not only business efficiency but also developer experience and happiness. This combination enables teams to pinpoint both operational bottlenecks and areas impacting developer satisfaction, leading to more targeted and effective improvements in software delivery. Ultimately, this dual approach creates a feedback loop where qualitative inputs enhance quantitative outputs, and vice versa, fostering a comprehensive and continuously evolving understanding of the software development process.

Illustration engine to produce productivity

In conclusion, our experience at ZoomInfo serves as a candid reminder that the journey toward optimal developer well-being and productivity is an ongoing effort, continually evolving and refining. While we have made significant strides by embracing innovative tools and automating repetitive tasks, we acknowledge that the path to perfecting our software development lifecycle is not without its challenges. This honest approach, which includes a balanced focus on both quantitative and qualitative metrics, has not only streamlined our processes but also nurtured a dynamic engineering culture. We recognize that the key to our success lies in our commitment to continuous improvement and adaptation, ensuring that our developers are supported, engaged, and motivated. Our journey is far from over, and we are dedicated to perpetually exploring and implementing new strategies to foster an environment where our developers, and consequently our company, can thrive and lead in the ever-changing landscape of technology.

References 

  1. How Top Companies Measure Developer Productivity
  2. DevEx: What Actually Drives Productivity – ACM Queue
  3. Internal Developer Platform
  4. Developer Velocity: How software excellence fuels business performance
  5. 2023 State of DevOps Report: Culture is everything

Related Content