|
2 | 2 |
|
3 | 3 | Local build and application startup metrics for Kotlin projects. |
4 | 4 |
|
| 5 | +## The problem: you can't improve an F5 Experience you can't see |
| 6 | + |
| 7 | +The **[F5 Experience](https://beerandserversdontmix.com/2024/08/15/an-introduction-to-the-f5-experience/)** |
| 8 | +is the idea that setting up and running a project should take exactly three steps: |
| 9 | +clone the repo, open it in your IDE, press F5. Everything after that — the compile, |
| 10 | +the startup, the first response, the test run — is the **inner loop** of development, |
| 11 | +and the speed of that loop largely determines how productive and how happy your |
| 12 | +engineers are. |
| 13 | + |
| 14 | +The trouble is that the inner loop is invisible. It happens hundreds of times a day |
| 15 | +on each engineer's machine, and none of it shows up anywhere. So when a build slowly |
| 16 | +creeps from 20 seconds to two minutes, nobody notices until developers have already |
| 17 | +started |
| 18 | +[context switching away every time they hit F5](https://beerandserversdontmix.com/2024/08/15/the-f5-experience-speed/) |
| 19 | +— going for coffee, checking Slack, losing their flow state. By then the damage is |
| 20 | +done and there's no data to explain when or why it happened. As the blog series puts |
| 21 | +it: **measure first.** You can't optimize an inner loop you've never measured, and |
| 22 | +compile time alone doesn't tell the whole story — the full cycle from pressing F5 to |
| 23 | +a workable application is what actually matters. |
| 24 | + |
| 25 | +This project instruments that inner loop on the developer's own machine. It captures |
| 26 | +local Gradle build metrics and Ktor application startup metrics and ships them to a |
| 27 | +metrics backend, so a team can see its real F5 Experience — build times, compilation |
| 28 | +times, startup times, and the context around them — and drive it down over time |
| 29 | +instead of guessing. Collection is deliberately local-only, asynchronous, and |
| 30 | +best-effort: it never fails or slows the build or app it's measuring, and it skips |
| 31 | +CI entirely. |
| 32 | + |
5 | 33 | The Gradle build metrics plugin from |
6 | 34 | [issue #1](https://github.com/agoda-com/kotlin-local-metrics/issues/1) is implemented. |
7 | 35 |
|
|
0 commit comments