https://gradle.com/ logo
Docs
Join the conversationJoin Slack
Channels
android
caching
community-news
community-support
config-avoidance
configuration-cache
contributing
dependabot
dependency-management
design
design-specs
developer-productivity-engineering
docs
dpe-summit
feed
file-system-watching
flutter
general
gradle-enterprise
jobs
kotlin-dsl
linen
maven
migrating-from-ant
migrating-from-maven
native
performance
playframework
plugin-development
releases
roadmap
self-promotion
Powered by Linen
developer-productivity-engineering
  • r

    Rooz

    03/09/2022, 11:48 PM
    hey folks, we are hosting our next DevProdEng Lowdown with Adam McCormick from Meta (Facebook). We are starting a thread with potential topics in the Q&A. If you have any topics please drop them in this threads comments. CC @Nideesh Terapalli @Sophia Hays . If you haven't signed up, RSVP here to get the Lowdown on how Facebook does developer productivity engineering. https://gradle.com/training/how-meta-does-developer-productivity-engineering/?time=1647475200
    🙌 2
    a
    j
    • 3
    • 4
  • s

    Sandeep Tamhankar

    03/17/2022, 5:40 PM
    How do developers open the monorepo in their IDE (say, IntelliJ)? Indexing can take a very long time. How do you tell the IDE to pull pre-built artifacts when the tree has all sources (so the IDE will build those rather than downloading pre-built artifacts, won’t it?)
    ➕ 3
    a
    • 2
    • 7
  • n

    Nikhil Bedi

    03/17/2022, 5:52 PM
    I wonder if anyone's had any experience in measuring "coding velocity", i.e. how many developer hours it takes to write a meaningful change and get it submitted to master
    a
    m
    a
    • 4
    • 11
  • m

    Matthias Glastra

    03/17/2022, 6:08 PM
    Thank you Adam for sharing the exprience at Meta. Many of us probably don’t have the size and complexity of Meta which make me wonder what has been your experience as core internal tooling to make things flow for developers. Removing frictions and give them a better experience in their day to day development?
    a
    • 2
    • 2
  • j

    Justin Reock

    03/17/2022, 6:18 PM
    Do you have a monorepo because you don't want to care about stuff like linking? Or do different apps have different folders in the repo, in which case calling it a monorepo is kindof misleading, just like calling github.com a single repo is misleading? Or is it different in some other way?
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:18 PM
    How many devices do you run automated tests on ?
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:18 PM
    What your lead time for changes (from commit to customer) for the android app
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:18 PM
    Also, do you measure lead time from diff to beta testers?
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:55 PM
    I'm curious about the boundaries defined for productivity engineer in Meta. Specifically security boundaries and resources boundaries. For instance, how much they have access to infrastructures, settings, configs, etc. Or how much they can ask for resources. For example, is there a ratio for the number of productivity engineers to the number of developing engineers?
    👍 1
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:55 PM
    As you mentioned Diff to merge takes 2-3 hrs, doesn’t that slow down developer productivity as they are waiting this process to finish?
    a
    • 2
    • 1
  • j

    Justin Reock

    03/17/2022, 6:56 PM
    While a change is in development, what are the ways that developer can test their change? Apart from unit/integration tests, do they run the build locally and test? Or do they have to deploy to a different environment? Pre-alpha?
    a
    a
    • 3
    • 3
  • j

    Justin Reock

    03/18/2022, 6:40 PM
    Heya @Adam Woods-Mccormick - Solid gold wisdom - we've had a couple of requests to reiterate from the live session some of the most important metrics that Meta uses to determine developer productivity. Could you list a few of them here when you get a moment! Thanks!
    🙌 2
    :thank_you: 1
    a
    m
    • 3
    • 7
  • j

    John

    06/02/2022, 11:44 AM
    👋 Hi there! I am an engineer in my organization's platform engineering team, and we are evolving to focus on making developer experience / productivity one of our primary concerns. I just discovered this video series and love it so far! I, specifically, lead the platform efforts for the JVM back end ecosystem.
    🔥 1
    👋 3
    e
    r
    • 3
    • 3
  • n

    Niels Doucet

    06/07/2022, 7:39 AM
    Hi, in the
    Developer Productivity Engineer Newsletter | June 2022 Edition
    that was just sent out, there seems to be an incorrect link. I was trying to register for the
    DevProdEng Lowdown
    on July 14th, but somehow I was registered for
    Introduction to Developer Productivity Engineering
    on June 14th. Can this be corrected? And can I un-enrol from the 3h hands-on lab, as it doesn’t fit my schedule. Found cancel link.
    a
    • 2
    • 2
  • m

    madisp

    07/14/2022, 6:08 PM
    were I the only one getting lots of video dropouts during today's devprodeng presentation?
    • 1
    • 1
  • m

    Manuel Nakamurakare

    07/14/2022, 6:27 PM
    Does Uber use Gradle Enterprise or uses their own tooling for analytics? Have you been able to figure out a cross build system solution?
    t
    • 2
    • 1
  • m

    Manuel Nakamurakare

    07/14/2022, 6:28 PM
    ------------------------------ How does Uber handle remote caching (eg node replications, locations, etc), specially nowadays that people work from pretty much any corner of the planet
    t
    • 2
    • 1
  • r

    Ravikumar N

    07/15/2022, 8:25 AM
    @Ty Smith /@Gautam Korlam Could you please share some pointers(blog links if feasible) regarding the development of the IntelliJ plugin w.r.t to measuring module load/index time, auto completion etc.,? We as a team also interested in measuring the above params and optimize it.
    ➕ 3
    t
    • 2
    • 1
  • m

    Mariana Solana

    07/15/2022, 12:16 PM
    Hello @Ty Smith I was just looking at the recording from your talk yesterday and I would love to learn more about the organizational setup for functional alignment. Do you have internal communities of practice at Uber? If yes, what kind of role do they play? If not, why not?
    t
    • 2
    • 4
  • h

    Hadi Lashkari Ghouchani

    07/15/2022, 6:13 PM
    Hi @Ty Smith and @Gautam Korlam, You talked about how well you standardized development tools and environment in Uber, so my question is: Standardizing tools may increase the consistency and let developers move fast but don't you think so much standardization will stop you from adapting probably better solutions out there? Just to give an example, what would you do if some of your developers think Rust is better to solve some kind of problem over Java and Go, then they cannot adopt Rust, because of too much standardization?
    🆙 1
    o
    • 2
    • 3
  • o

    Omri G

    07/28/2022, 10:00 PM
    Thanks Justin :) happy to be here
  • a

    Ayse Altinsoy

    08/29/2022, 8:27 AM
    Hello everyone, @here - We are excited to announce our first Developer Productivity Engineering Summit! The event will take place in San Francisco on November 2-3, 2022. In this two-day summit we’ll focus exclusively on Developer Productivity Engineering, featuring speakers from Airbnb, DoorDash, Google, Gradle, LinkedIn, Microsoft, Netflix, Slack, Square, and Uber. Check out the event details at the DPE Summit website << dpesummit.com>>. Use the code gc-slack-100 to receive a $100 discount off the registration price. See you there!
  • b

    Brian Stewart

    02/08/2023, 4:01 AM
    Hi folks! How are you handling flaky tests, to ensure devs are not blocked on their branches? We have been using this approach: 1. A test fails on the main branch (or is reported flaky on a dev branch), 2. Open a pull request to the main branch to ignore the test (using `@Ignore`/`@Disabled` on the test method/class), 3. Developers then merge from main into their branch to get unblocked, 4. Flaky test ticket is assigned to the team that owns the test, to fix and re-enable it This has worked okay for years now, but the codebase and the engineering team are constantly growing. We have been hitting more flaky tests recently and it blocks more developers than in the past. With Gradle Enterprise we are able to identify flaky tests on non-main branches somewhat more proactively and ignore them, which helps limit the number of flaky tests in action at one time, but does not help people get unblocked faster when a flaky test is actually failing on their branch. Creating a PR takes someone finding the test, ignoring it, creating the PR, then waiting 1-2 hours to pass all merge checks and get it merged. That’s too long to block the engineering team. We are trying to find alternative solutions. What alternatives are being used successfully in the wild?
    m
    g
    +2
    • 5
    • 8
  • s

    Sherif Nada

    02/25/2023, 8:37 PM
    cross-posting: How can I ensure that builds stay incremental in a large monorepo (~50 devs)? I work in a monorepo with 50+ other engineers touching ~50-60 submodules. Developers will often add new modules or modify build logic for existing modules. It’s very easy for someone who is not familiar with Gradle (or even someone proficient) to break the build’s incrementality. It’s not practical to expect everyone to be a gradle expert. At the same time, I want the build speed to be optimal. This seems like a great use-case for a CI or build check. My ideal solution would be for the Gradle build to fail if it finds that any task is not incremental (maybe with the ability to add an escape hatch for tasks which truly can’t be incremental). Does anyone have experience with implementing something like this? Any pointers would be super appreciated.
Powered by Linen
Title
s

Sherif Nada

02/25/2023, 8:37 PM
cross-posting: How can I ensure that builds stay incremental in a large monorepo (~50 devs)? I work in a monorepo with 50+ other engineers touching ~50-60 submodules. Developers will often add new modules or modify build logic for existing modules. It’s very easy for someone who is not familiar with Gradle (or even someone proficient) to break the build’s incrementality. It’s not practical to expect everyone to be a gradle expert. At the same time, I want the build speed to be optimal. This seems like a great use-case for a CI or build check. My ideal solution would be for the Gradle build to fail if it finds that any task is not incremental (maybe with the ability to add an escape hatch for tasks which truly can’t be incremental). Does anyone have experience with implementing something like this? Any pointers would be super appreciated.
View count: 7