SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Developer Productivity Engineering
With Gradle
Enterprise
Your Speakers
Justin Reock
Chief Evangelist and Field CTO
Gradle Enterprise
Sterling Greene
Lead Software Engineer
Gradle Build Tool
Gradle Inc
Gradle Build Tool
⬢ Most used build tool for new open-source JVM projects on GitHub
⬢ Official build tool for Android
⬢ Over 20 million downloads per month
⬢ One of the top 20 open-source project according to TechCrunch
Build Scan™
⬢ Shareable, rich web interface with detailed build information
⬢ Free to use in Gradle cloud
Gradle Enterprise
⬢ On-premises
⬢ Visibility into all builds in the organization, both local and CI
⬢ Build cache backend with statistics and node management
What makes Gradle build tool fast?
⬢ Daemon
⬢ Parallelism
⬢ Work avoidance
⬢ Incremental compilation
⬢ Compilation avoidance
⬢ Incremental builds
⬢ Build cache
Incremental Builds
Build Caching
⬢ Introduced in 2017.
⬢ Available for Maven and Gradle, can support both user local
and remote caching for distributed teams
⬢ Build caches are complementary to dependency caches, not
mutually exclusive:
○ A dependency cache caches fully compiled
dependencies
○ A build cache accelerates building a single source
repository
○ A build cache caches build actions (e.g. Gradle tasks or
Maven goals)
Build Cache
Blank background use at will
Build caching is a tool for very fast feedback cycles
Measurements with OSS Projects
Running on a MacBook Pro (16-inch, 2019)
Project uncached fully cached
Gradle @ 9c93f04
4 minutes 13 seconds
gradle compileAll
Spring Boot @ 9ff17edb
4 minutes 24 seconds
gradle assemble
Demo: Speeding up local Builds
⬢ Run a clean build with no cached elements
⬢ Re-run the build with local caching on and elements cached
A Day in the Life of Enterprise Developers
Code
Code
Wait Time for Local Build
Debug Build Failure
Lunch/Ping Pong
Code
Wait Time for Local Build
Investigate/Fix Flaky Tests
Sprint
Waiting time for CI Build
What problem are we trying to solve?
Software development is a creative process
Our mission at Gradle is to accelerate developer
productivity and make developers happier
Project success negatively impacts toolchain
efficiency
In successful projects all those metrics are growing, often exponentially:
⬢ Lines of Code
⬢ No. of developers
⬢ No. of repositories
⬢ No. of dependencies
⬢ Diversity of tech stack
Result:
⬢ Toolchain efficiency severely degrades if unmanaged
⬢ The return of growing the team becomes more and more marginal
Blank background use at will
“ It’s no longer the big beating the small,
but the fast beating the slow.”
Eric Pearson, CIO, InterContinental Hotels Group
What comes after DevOps?
Introducing Developer Productivity
Engineering
⬢ So, when we say Developer Productivity Engineering is the ‘next thing,’ we mean that
literally
⬢ Using acceleration technologies and data accumulation and analysis technologies, DPE
addresses the next set of bottlenecks in software productivity
⬢ Friction and slowdowns in the developer experience, caused by unreliable and/or slow
build infrastructure represent productivity black holes that are not in scope for DevOps
DPE != DPM
Faster builds improve the creative flow
Team 1 Team 2
No. of Devs 11 6
Build Time 4 mins 1 mins
No. of local builds 850 1010
⬢ The faster the feedback is, the more often devs ask for feedback
⬢ The more often they ask for feedback, the more they can refine their work
Builds that are faster than 10 mins cause significant
waiting time
⬢ Slower builds means developers are often context-switching while build and tests finish
⬢ The aggregated cost of waiting is surprisingly high even for faster cycles
⬢ Even moderate improvements are worthwhile at scale to reduce idle time
⬢ A unreliable toolchain substantially increases waiting time!
No of devs Local builds per week Build Time Build Time w. GE Savings per year
6 1010 1 mins 0.6 mins 44 days
100 12000 9 mins 5 mins 5200 days
Build Cache and
Test Distribution
• Faster feedback
cycles by caching
build tasks
• Parallel test
execution,
decrease time
spent testing
Build Scans
• Shareable root
cause analysis tool
• Full X-ray of build
with context
Failure Analytics
• View build and
test failure rates
and history
• Find flaky tests
and unreliable
build
infrastructure
Trends and Insights
• Spot inefficiencies
and outliers
• Gauge success of
initiatives
CI Cache and
Resource Profiling
• Speed up CI builds
• Determine causes
of stress on CI
environments
DPE Solution Breakdown
“Perhaps the best part of using the Gradle Build
Scan is that it provides direct links to the relevant
parts of the official documentation from Gradle
which are more of the Friendly Manual kind.”
–Jean-Michael Fayard, Writer, Kotlin Academy
• Build scans provide a
comprehensive, shareable build
summary
• It’s easy to spot bugs and failures,
and is self-service to the developer
• Developers can share build details
with context
• Scans can run against Gradle and
Maven builds by adding a free
extension
Build Scan™
Creating a build scan with Gradle
Maven .mvn/extensions.xml
<extensions>
<extension>
<groupId>com.gradle</groupId>
<artifactId>gradle-enterprise-maven-extension</artifactId>
<version>1.11</version>
</extension>
</extensions>
Gradle CLI
Free Build Scan service: https://scans.gradle.com/
Demo: Creating a build scan
⬢ Generate an example build with gradle init
⬢ Create a build scan with gradle build –scan
⬢ Example Gradle build scan
⬢ Example Maven build scan
Problems can sneak back into the build process
⬢ Infrastructure changes
○ Binary management
○ Caching
○ CI agents
⬢ New annotation processors or versions of annotation processors
⬢ Build logic configurations settings
○ Build tool version and plugins
○ Compiler settings
○ Memory settings
⬢ Code refactoring
⬢ New office locations
Performance
Blank background use at will
“ You can observe a lot by just watching.”
- Yogi Berra, Catcher and Philosopher
Encouraging continuous improvement
“If you can’t measure it, you can’t improve it.”
- Peter Drucker, Business Luminary
• Test and build results can be
compared across runs, surfacing
common failures and flaky tests
• By finding flakiness further left,
we reduce developer
frustration and the number of
bugs
• By pinpointing common
failures, we can eliminate them
before developers encounter
them
Failure Analytics
“How does a project get to be a year late? One day
at a time.”
-Fred Brooks, Renowned Software Engineer, IBM
• DPE PMO should centralize build
metrics
• This enables the DPE PMO to
continually improve productivity
• Build feedback is automatically
provided to the DPE PMO team
each build, whether locally or
remotely across the entire
organization!
Trends and Insights
Demo: Gradle Build Tool DPE Dashboard
⬢ Visit https://ge.gradle.org
⬢ Testing trends
⬢ Individual scan with a test failure
https://gradle.com/developer-productivity-engineering/
Reminder: BE A HERO!
Be the first to introduce DPE
to your business!
Q
&
A
Next Steps:
● Try a free Maven or Gradle Build Scan!
(Hint: Just enable the Maven extension or
run ’gradle build –scan’)
● Read about Build Scans and Build
Comparisons: https://gradle.com/gradle-
enterprise-solution- overview/build-scan-root-
cause-analysis-data/
Gradle swag
Thank you!
sterling@gradle.com
jreock@gradle.com

Más contenido relacionado

La actualidad más candente

What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...
Invensis Learning
 

La actualidad más candente (20)

Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
Traditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & OrganisationsTraditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & Organisations
 
SRE vs DevOps
SRE vs DevOpsSRE vs DevOps
SRE vs DevOps
 
Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideas
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Turning Up the Magic in PI Planning
Turning Up the Magic in PI PlanningTurning Up the Magic in PI Planning
Turning Up the Magic in PI Planning
 
Observability
ObservabilityObservability
Observability
 
Professional Scrum Product Owner I (PSPO-I)
Professional Scrum Product Owner I (PSPO-I)Professional Scrum Product Owner I (PSPO-I)
Professional Scrum Product Owner I (PSPO-I)
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and Cons
 
What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
 
Modern Agile - Joshua Kerievsky
Modern Agile - Joshua KerievskyModern Agile - Joshua Kerievsky
Modern Agile - Joshua Kerievsky
 
Observability For Modern Applications
Observability For Modern ApplicationsObservability For Modern Applications
Observability For Modern Applications
 
Iterative and Incremental Development (RAD)
Iterative  and Incremental Development (RAD)Iterative  and Incremental Development (RAD)
Iterative and Incremental Development (RAD)
 
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation SlidesDevops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
 

Similar a Developer Productivity Engineering with Gradle

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
XebiaLabs
 

Similar a Developer Productivity Engineering with Gradle (20)

Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software Delivery
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
Gradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build timesGradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build times
 
Technical Without Code
Technical Without CodeTechnical Without Code
Technical Without Code
 
GDG Cloud Southlake 31: Santosh Chennuri and Festus Yeboah: Empowering Develo...
GDG Cloud Southlake 31: Santosh Chennuri and Festus Yeboah: Empowering Develo...GDG Cloud Southlake 31: Santosh Chennuri and Festus Yeboah: Empowering Develo...
GDG Cloud Southlake 31: Santosh Chennuri and Festus Yeboah: Empowering Develo...
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
 
Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 

Más de All Things Open

Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public Policy
All Things Open
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
All Things Open
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart Contract
All Things Open
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with Background
All Things Open
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open Source
All Things Open
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in control
All Things Open
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
All Things Open
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
All Things Open
 

Más de All Things Open (20)

Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Modern Database Best Practices
Modern Database Best PracticesModern Database Best Practices
Modern Database Best Practices
 
Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public Policy
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
 
The State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashThe State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil Nash
 
Total ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptTotal ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScript
 
What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart Contract
 
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 
DEI Challenges and Success
DEI Challenges and SuccessDEI Challenges and Success
DEI Challenges and Success
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with Background
 
Supercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblySupercharging tutorials with WebAssembly
Supercharging tutorials with WebAssembly
 
Using SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksUsing SQL to Find Needles in Haystacks
Using SQL to Find Needles in Haystacks
 
Configuration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptConfiguration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit Intercept
 
Scaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramScaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship Program
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open Source
 
Deploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamDeploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache Beam
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in control
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Developer Productivity Engineering with Gradle

  • 2. Your Speakers Justin Reock Chief Evangelist and Field CTO Gradle Enterprise Sterling Greene Lead Software Engineer Gradle Build Tool
  • 3. Gradle Inc Gradle Build Tool ⬢ Most used build tool for new open-source JVM projects on GitHub ⬢ Official build tool for Android ⬢ Over 20 million downloads per month ⬢ One of the top 20 open-source project according to TechCrunch Build Scan™ ⬢ Shareable, rich web interface with detailed build information ⬢ Free to use in Gradle cloud Gradle Enterprise ⬢ On-premises ⬢ Visibility into all builds in the organization, both local and CI ⬢ Build cache backend with statistics and node management
  • 4. What makes Gradle build tool fast? ⬢ Daemon ⬢ Parallelism ⬢ Work avoidance ⬢ Incremental compilation ⬢ Compilation avoidance ⬢ Incremental builds ⬢ Build cache
  • 6. Build Caching ⬢ Introduced in 2017. ⬢ Available for Maven and Gradle, can support both user local and remote caching for distributed teams ⬢ Build caches are complementary to dependency caches, not mutually exclusive: ○ A dependency cache caches fully compiled dependencies ○ A build cache accelerates building a single source repository ○ A build cache caches build actions (e.g. Gradle tasks or Maven goals)
  • 8. Blank background use at will Build caching is a tool for very fast feedback cycles
  • 9. Measurements with OSS Projects Running on a MacBook Pro (16-inch, 2019) Project uncached fully cached Gradle @ 9c93f04 4 minutes 13 seconds gradle compileAll Spring Boot @ 9ff17edb 4 minutes 24 seconds gradle assemble
  • 10. Demo: Speeding up local Builds ⬢ Run a clean build with no cached elements ⬢ Re-run the build with local caching on and elements cached
  • 11. A Day in the Life of Enterprise Developers Code Code Wait Time for Local Build Debug Build Failure Lunch/Ping Pong Code Wait Time for Local Build Investigate/Fix Flaky Tests Sprint Waiting time for CI Build
  • 12. What problem are we trying to solve?
  • 13. Software development is a creative process
  • 14.
  • 15. Our mission at Gradle is to accelerate developer productivity and make developers happier
  • 16. Project success negatively impacts toolchain efficiency In successful projects all those metrics are growing, often exponentially: ⬢ Lines of Code ⬢ No. of developers ⬢ No. of repositories ⬢ No. of dependencies ⬢ Diversity of tech stack Result: ⬢ Toolchain efficiency severely degrades if unmanaged ⬢ The return of growing the team becomes more and more marginal
  • 17. Blank background use at will “ It’s no longer the big beating the small, but the fast beating the slow.” Eric Pearson, CIO, InterContinental Hotels Group
  • 18. What comes after DevOps?
  • 19. Introducing Developer Productivity Engineering ⬢ So, when we say Developer Productivity Engineering is the ‘next thing,’ we mean that literally ⬢ Using acceleration technologies and data accumulation and analysis technologies, DPE addresses the next set of bottlenecks in software productivity ⬢ Friction and slowdowns in the developer experience, caused by unreliable and/or slow build infrastructure represent productivity black holes that are not in scope for DevOps
  • 21. Faster builds improve the creative flow Team 1 Team 2 No. of Devs 11 6 Build Time 4 mins 1 mins No. of local builds 850 1010 ⬢ The faster the feedback is, the more often devs ask for feedback ⬢ The more often they ask for feedback, the more they can refine their work
  • 22. Builds that are faster than 10 mins cause significant waiting time ⬢ Slower builds means developers are often context-switching while build and tests finish ⬢ The aggregated cost of waiting is surprisingly high even for faster cycles ⬢ Even moderate improvements are worthwhile at scale to reduce idle time ⬢ A unreliable toolchain substantially increases waiting time! No of devs Local builds per week Build Time Build Time w. GE Savings per year 6 1010 1 mins 0.6 mins 44 days 100 12000 9 mins 5 mins 5200 days
  • 23. Build Cache and Test Distribution • Faster feedback cycles by caching build tasks • Parallel test execution, decrease time spent testing Build Scans • Shareable root cause analysis tool • Full X-ray of build with context Failure Analytics • View build and test failure rates and history • Find flaky tests and unreliable build infrastructure Trends and Insights • Spot inefficiencies and outliers • Gauge success of initiatives CI Cache and Resource Profiling • Speed up CI builds • Determine causes of stress on CI environments DPE Solution Breakdown
  • 24. “Perhaps the best part of using the Gradle Build Scan is that it provides direct links to the relevant parts of the official documentation from Gradle which are more of the Friendly Manual kind.” –Jean-Michael Fayard, Writer, Kotlin Academy • Build scans provide a comprehensive, shareable build summary • It’s easy to spot bugs and failures, and is self-service to the developer • Developers can share build details with context • Scans can run against Gradle and Maven builds by adding a free extension Build Scan™
  • 25. Creating a build scan with Gradle Maven .mvn/extensions.xml <extensions> <extension> <groupId>com.gradle</groupId> <artifactId>gradle-enterprise-maven-extension</artifactId> <version>1.11</version> </extension> </extensions> Gradle CLI Free Build Scan service: https://scans.gradle.com/
  • 26. Demo: Creating a build scan ⬢ Generate an example build with gradle init ⬢ Create a build scan with gradle build –scan ⬢ Example Gradle build scan ⬢ Example Maven build scan
  • 27. Problems can sneak back into the build process ⬢ Infrastructure changes ○ Binary management ○ Caching ○ CI agents ⬢ New annotation processors or versions of annotation processors ⬢ Build logic configurations settings ○ Build tool version and plugins ○ Compiler settings ○ Memory settings ⬢ Code refactoring ⬢ New office locations Performance
  • 28. Blank background use at will “ You can observe a lot by just watching.” - Yogi Berra, Catcher and Philosopher
  • 30. “If you can’t measure it, you can’t improve it.” - Peter Drucker, Business Luminary • Test and build results can be compared across runs, surfacing common failures and flaky tests • By finding flakiness further left, we reduce developer frustration and the number of bugs • By pinpointing common failures, we can eliminate them before developers encounter them Failure Analytics
  • 31. “How does a project get to be a year late? One day at a time.” -Fred Brooks, Renowned Software Engineer, IBM • DPE PMO should centralize build metrics • This enables the DPE PMO to continually improve productivity • Build feedback is automatically provided to the DPE PMO team each build, whether locally or remotely across the entire organization! Trends and Insights
  • 32. Demo: Gradle Build Tool DPE Dashboard ⬢ Visit https://ge.gradle.org ⬢ Testing trends ⬢ Individual scan with a test failure
  • 33. https://gradle.com/developer-productivity-engineering/ Reminder: BE A HERO! Be the first to introduce DPE to your business!
  • 34. Q & A Next Steps: ● Try a free Maven or Gradle Build Scan! (Hint: Just enable the Maven extension or run ’gradle build –scan’) ● Read about Build Scans and Build Comparisons: https://gradle.com/gradle- enterprise-solution- overview/build-scan-root- cause-analysis-data/