Änderungsprotokoll
Wichtige Änderungen am Buch und seinen Werkzeugen. Die neuesten Einträge stehen oben. Daten verwenden ISO 8601 (JJJJ-MM-TT).
[Unreleased]
Changed
- Niederländisch (
nl-nl): die verbliebenen englischen Titel und Slugs der Themen 9.0, 9.3 und 9.4 übersetzt (bijlagen,controlelijsten,sjablonen). - Walisisch (
cy-001,cy-gb): Terminologie an TermCymru angeglichen:risg(Risiko, stattperygl, mit Genusübereinstimmung),cyfnewidiad(Abwägung),dangosydd rhagfynegiunddangosydd ôl-fynegi(vorlaufender und nachlaufender Indikator, statthwyrfrydig),cynhwysedd(Kapazität),dosraniad(Verteilung),cydberthynas(Korrelation),allbwnfür Ausgabe in Thema 1.3 undcyfradd gadael staff(Fluktuation). Vier Themen-Slugs wurden passend umbenannt. - Website:
@lilydesignsystem/svelte-picker-barauf 0.2.0 aktualisiert, was der Kopfleiste einen Such-Picker hinzufügt; er sendet an die bestehende Websitesuche/?<query>. scripts/generate-sitemap.mjshinzugefügt, das am Ende vonpnpm buildläuft undsitemap.xmlaus den vorgerenderten Seiten schreibt (nur kanonische Locale-URLs, keine Duplikate durch Zwei-Buchstaben-Aliase), sodass die ZeileSitemap:inrobots.txtaufgelöst wird.AGENTS.mdist jetzt ein kurzer Index; Details wanderten nachAGENTS/layout.md,style.md,locales.mdundworkflow.md.- Dokumentationsdurchgang:
AGENTS.md,index.md, den generierten README-Locale-Text,spec/index.md,spec/locales.mdsowieAGENTS.mdundREADME.mdder Website auf 27 Locales, Verzeichnisnamen der Abschnitte je Locale und die neuen Werkzeuge aktualisiert;CLAUDE.mdhinzugefügt (ein Verweis aufAGENTS.md); die veraltetendocs/-Pfade in beiden Agenten-Skills korrigiert undskills/zur kanonischen Kopie von.claude/skills/gemacht (von den Tests geprüft). llms.txtundllms.json(ein KI-Agenten-Index aller ausgelieferten Locales und Themen) zustatic/der Website hinzugefügt, vontools/gen_llms.py(just llms) erzeugt und von den Tests geprüft.- Startseite der Website: Die Kachelliste “neun Teile” ist jetzt eine verschachtelte Liste “Inhalt” aller Teile und Themen, und der Abschnitt “Goodharts Gesetz, überall” wurde entfernt.
- In der Prosa des Buchs wurde in jeder Locale “chapter” durch “topic” ersetzt
(zum Beispiel “Thema 2.1”, “Themen in diesem Teil”), unter Verwendung des
jeweiligen Worts der Sprache für Thema (
tema,sujet,Thema,тема,主題und so weiter), ebenso in der Spezifikation, im von den Werkzeugen generierten Text und in den Oberflächentexten der Website. Dateinamen, URLs und die Abschnittsschlüssel sind unverändert. - Jeden Abschnittsverzeichnisnamen unter
locales/übersetzt:chapters/heißt jetzttopics/(und seine Übersetzung in jeder anderen Locale, z. B.temas/,sujets/,themen/), undexamples/vones-001istejemplos/. Die Namen stehen inspec/section-names.json; die Werkzeuge, Tests und die Inhaltssynchronisierung der Website lesen sie von dort, und die URLs der Website sind unverändert.
Changed
- Die walisischen Locales (
cy-001,cy-gb, identisch gehalten) anhand der Terminologieliste TermCymru der walisischen Regierung überarbeitet:llesiantfür Wohlbefinden,cynhyrchiantfür Produktivität,gwendid/gwendidaufür Schwachstelle,llywodraethiantfür Governance,cydberthynasfür Korrelation,ôl-groniadfür Backlog (zuvor auf Englisch belassen),cost a buddfür Kosten-Nutzen unddeallusrwydd artiffisial (AI)bei der ersten Erwähnung von KI in jedem Thema.
Added
- Die Abschnitte Vorspann, Beispiele, Mitwirken und Projekt (14 Dateien, dazu Änderungsprotokoll, Startseite und Inhaltsverzeichnis) wurden in diese Locale übersetzt, mit übersetzten Verzeichnisnamen.
- Deutsch (
de-001) als 26. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitde-de. An die Website angebunden und unter/de-001/(Alias/de/) ausgeliefert. - Portugiesisch (
pt-001) als 25. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitpt-pt. An die Website angebunden und unter/pt-001/(Alias/pt/) ausgeliefert. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Urdu (
ur-001, rechts-nach-links) abgeschlossen, die 24. vollständig übersetzte Locale, mit passenden.locale-peer-id-Sidecars. Jedes Thema wurde direkt aus der englischen Quelle übersetzt, der Index (Thema 9.7) bildet jeden internen Link auf seinen Urdu-Dateinamen ab, und das Abschnittsverzeichnis heißtموضوعات. An die Website angebunden und unter/ur-001/(Alias/ur/) ausgeliefert. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Indonesische (
id-001) abgeschlossen, mit passenden.locale-peer-id-Sidecars. Es gab keine frühere indonesische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt, und der Index (Thema 9.7) bildet jeden internen Link auf seinen indonesischen Dateinamen ab. An die Website angebunden und unter/id-001/(Alias/id/) ausgeliefert. - Russisch (
ru-001) und Chinesisch (zh-001) als 21. und 22. vollständig übersetzte Locale hinzugefügt: je alle 63 Themen, mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitru-ruundzh-cn. An die Website angebunden und unter/ru-001/und/zh-001/(Aliase/ru/und/zh/) ausgeliefert. - Französisch (
fr-001) als 20. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitfr-fr. An die Website angebunden und unter/fr-001/(Alias/fr/) ausgeliefert. - Bengalisch (
bn-001) als 19. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitbn-bd. An die Website angebunden und unter/bn-001/(Alias/bn/) ausgeliefert. - Arabisch (
ar-001) als 18. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitar-eg. An die Website angebunden und unter/ar-001/(Alias/ar/) ausgeliefert. - Walisisch, Großbritannien (
cy-gb) als 17. vollständig übersetzte Locale hinzugefügt: alle 63 Themen mit passenden.locale-peer-id-Sidecars, inhaltsgleich mitcy-001(dieselbe Beziehung wiehi-idzuhi-001). InSERVED_LOCALE_CODESder Website eingetragen und unter/cy-gb/ausgeliefert. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Niederländische, Niederlande (
nl-nl), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere niederländische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen niederländischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ru,fr-frundsv-se. Noch nicht an die Website angebunden. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Schwedische, Schweden (
sv-se), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere schwedische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen schwedischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ruundfr-fr. Noch nicht an die Website angebunden. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Französische, Frankreich (
fr-fr), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere französische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen französischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jpundru-ru. Noch nicht an die Website angebunden. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Russische, Russland (
ru-ru), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere russische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen russischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-kr,es-es,pt-ptundja-jp. Noch nicht an die Website angebunden. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Japanische, Japan (
ja-jp), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere japanische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen japanischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-kr,es-esundpt-pt. Noch nicht an die Website angebunden. - Eine vollständige, von Grund auf von Hand erstellte Übersetzung aller 63 Themen ins
Portugiesische, Portugal (
pt-pt), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Es gab keine frühere portugiesische Locale als Grundlage, daher wurde jedes Thema direkt aus der englischen Quelle übersetzt. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen portugiesischen Dateinamen ab, nach dem Vorgehen beiar-eg,bn-bd,ko-krundes-es. Noch nicht an die Website angebunden. - Spanisch, Spanien (
es-es) als vollständig übersetzte Locale hinzugefügt, alle 63 Themen, ausgehend von einer Kopie der bestehenden spanischen Übersetzung (es-001) (die sich bei der Prüfung als bereits grammatisch neutral erwies, mit überwiegend schon auf Spanien ausgerichtetem Vokabular), und anschließend mit einem gezielten Terminologiedurchgang für die verbleibenden Minderheitenverwendungen, vor allem “incidente” zu “incidencia” für den Incident-Metrik-Bereich dieses Buchs, mit entsprechenden Genuskorrekturen durchgängig. Noch nicht an die Website angebunden. - Eine vollständige Handübersetzung aller 63 Themen ins Koreanische, Korea
(
ko-kr), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Der Index (Thema 9.7) bildet jeden internen Themenlink auf seinen koreanischen Dateinamen ab, nach dem Vorgehen beiar-egundbn-bd. Noch nicht an die Website angebunden. - Hindi, Indien (
hi-id) als vollständig übersetzte Locale hinzugefügt, alle 63 Themen, indem die bestehende Hindi-Übersetzung (hi-001) unverändert unter dem länderbezogenen Locale-Code kopiert wurde, da Standard-Hindi keine eigene Indien-spezifische Variante hat, die separat von Hand zu übersetzen wäre. Noch nicht an die Website angebunden. - Eine vollständige Handübersetzung aller 63 Themen ins Bengalische,
Bangladesch (
bn-bd), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Noch nicht an die Website angebunden. - Eine vollständige Handübersetzung aller 63 Themen ins Arabische, Ägypten
(
ar-eg), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Noch nicht an die Website angebunden. - Eine vollständige Handübersetzung aller 63 Themen ins Deutsche, Deutschland
(
de-de), abgeschlossen, mit passenden.locale-peer-id-Sidecars und bestandenemjust test. Noch nicht an die Website angebunden. - Vollständige Handübersetzungen aller 63 Themen in drei Locales abgeschlossen:
Walisisch (
cy-001), Chinesisch (zh-cn) und Hindi (hi-001), jeweils mit passenden.locale-peer-id-Sidecars und bestandenemjust test. - Zwei weitere geplante übersetzte Locales, Walisisch - Großbritannien
(
cy-gb) und Chinesisch (zh-001), zuspec/locales-for-global-sharing-with-svelte/locales.tsvundspec/locales.mdhinzugefügt (jetzt dreizehn geplante Locales, zuvor elf), und das bislang unentschiedene Endonym vonzh-cnauf 中文 festgelegt. DieLOCALE_LABELSder Website erhielten passende Einträge (cy-gb: “Cymraeg (Prydain Fawr)“,zh-001: “中文”,zh-cn: “中文 (中国)”). Noch reine Infrastruktur: keine dieser Locales hat ein Verzeichnislocales/<code>/oder übersetzte Inhalte. - Das Buch in vier Locales unter
locales/veröffentlicht:en-gb-oxendict(Britisches Englisch, Oxford-Rechtschreibung; die handgeschriebene Quelle),en-001(internationales Englisch),en-gb(allgemeines britisches Englisch) unden-us(amerikanisches Englisch).en-001,en-gbunden-uswerden vom neuentools/localize.pymaschinell ausen-gb-oxendictabgeleitet; siehespec/locales.md.docs/existiert nicht mehr; jeder Verweis darauf inspec/,AGENTS.md,tests/validate.py,tools/gen_nav.pyundtools/stats.pyzeigt jetzt auflocales/<locale>/. - Zwei Claude-Code-Skills hinzugefügt,
software-engineering-metrics-skill(für Leserinnen und Leser, die die Hinweise des Buchs auf ihr eigenes Team anwenden) undsoftware-engineering-metrics-maintainer-skill(für Mitwirkende, die Themen hinzufügen oder bearbeiten), unterskills/und gespiegelt nach.claude/skills/. - Die Quelle der veröffentlichten Website in dieses Repository verschoben, als
software-engineering-metrics.github.io/, zuvor ein eigenes Repository. Sie liestlocales/jetzt direkt aus dem Wurzelverzeichnis des Repositorys statt aus einem danebenliegenden Checkout. Der.github/workflows/deploy.ymlim Wurzelverzeichnis prüft, dass die Website bei jedem Push aufmainweiterhin baut, und sendet dann einrepository_dispatchan das Repositorysoftware-engineering-metrics.github.io(als dünne Deploy-Hülle beibehalten, da GitHub Pages diese nackte Domain nur aus einem Repository mit genau diesem Namen ausliefert), das dieses Monorepo auscheckt, die Website baut und deployt. - Die Infrastruktur für übersetzte (nicht nur rechtschreibabgeleitete)
Locales hinzugefügt, nach der neuen Unterspezifikation
spec/locales-for-global-sharing-with-svelte/:tools/gen_locale_peer_ids.pyweist jeder Inhaltsdatei einen.locale-peer-id-Sidecar zu, identisch über alle Locales, den eine künftige übersetzte Locale (mit eigenen Slugs in der Originalschrift) nutzen kann, um “diese Seite, in Locale X” aufzulösen, statt nach Slug zu suchen;tests/validate.pyprüft, dass jeder Sidecar existiert und übereinstimmt.spec/locales.mddokumentiert zehn geplante übersetzte Locales (Arabisch, Bengalisch, Walisisch, Spanisch, Französisch, Hindi, Indonesisch, Portugiesisch, Russisch, Urdu und Chinesisch - China); keine hat bisher ein Verzeichnislocales/<code>/, da keine bisher übersetzt ist. Auf der Website erhieltscripts/locales.mjsLOCALE_LABELS/localeLabel()(einen Anzeigenamen für jede geplante Locale, vor dem Routing bereit) undsortedLocaleEntries()(die Sortierreihenfolge, die eine künftige Locale-Liste nutzen sollte), undsrc/lib/i18n.jsextrahierte die UI-Chrome-Texte (Navigation, Seitenleiste, Blätterfunktion, Picker, Fußzeile, Skip-Link), die jede.svelte-Komponente zuvor fest auf Englisch codiert hatte, überui(locale)durchgereicht, mit Rückfall auf Englisch für jede Locale ohne eigene Übersetzungen. - Das handgebaute reine Locale-Kopfsteuerelement der Website durch
@lilydesignsystem/svelte-picker-bardes Lily Design System ersetzt: ein echter Theme-Picker (hell/dunkel, über neuestatic/assets/themes/{light,dark}.css), der echte Locale-Picker (an das URL-basierte Routing dieser Website angebunden statt an sein Standardverhalten, nur lang/dir zu setzen), ein Textgrößen-Picker (Lilys siebenstufige Skala) und ein Teilen-Picker (E-Mail, Mastodon, Link kopieren).@lilydesignsystem/svelte-{theme,locale,text-size,share}-pickerauf^0.1.2und@lilydesignsystem/svelte-headlessauf^0.2.0überpnpm-workspace.yaml-Overrides festgelegt, um einen echten veröffentlichten Fehler in den Abhängigkeitsbereichen vonsvelte-picker-bar0.1.0 selbst zu umgehen (siehe dasCHANGELOG.mdjedes Pickers, “0.1.2”, und dasAGENTS.mddieser Website). - Die Statistikzeile der Startseite (Teile/Themen/“Free Always”) und ihren Abschnitt “How to read it” entfernt und das Kartenraster “Browse the nine parts” durch eine einfache Aufzählung ersetzt.
Changed
scripts/generate-sitemap.mjshinzugefügt, das am Ende vonpnpm buildläuft undsitemap.xmlaus den vorgerenderten Seiten schreibt (nur kanonische Locale-URLs, keine Duplikate durch Zwei-Buchstaben-Aliase), sodass die ZeileSitemap:inrobots.txtaufgelöst wird.- Thema 2.8, Lean-Wertstrommetriken (Durchlaufzeit, Bearbeitungszeit, Zykluszeit, Prozentsatz vollständig und korrekt und Taktzeit aus der klassischen Lean-Wertstromanalyse, dazu die Berechnung des gerollten Durchsatzertrags), hinzugefügt, nach der Warteschlangentheorie eingeordnet. Pull-Request- und Code-Review-Metriken wanderten von 2.8 nach 2.9, und das Thema DORA-Metriken von 2.9 nach 2.10. Jeder betroffene Querverweis im ganzen Buch wurde aktualisiert.
- Teil 2 von “Delivery and Flow Metrics” in “Flow Metrics” umbenannt und um das Flow Framework von Mik Kersten herum neu organisiert. Vier neue Themen hinzugefügt: 2.1 Das Flow Framework, 2.2 Flow-Items (Features, Defekte, Risiken, Schulden), 2.3 Flow-Geschwindigkeit und Flow-Verteilung und 2.4 Flow-Zeit und Flow-Last. Die vier einzelnen DORA-Metrik-Themen (Deployment-Frequenz, Durchlaufzeit, Änderungsfehlerrate, Wiederherstellungszeit) zu einem einzigen Referenzthema zusammengeführt, 2.9 Das DORA-Metrik-Framework, ans Ende des Teils verschoben. Flow-Effizienz und Work in Process auf 2.5 umnummeriert und das Thema Warteschlangentheorie (zuvor 2.9) in 2.7 Warteschlangentheorie umbenannt und umnummeriert. Durchlaufzeit (2.6) und Pull-Request- und Code-Review-Metriken (2.8) behalten ihre Nummern. Jeder Querverweis im ganzen Buch, das Glossar, die Formelreferenz, die Reifegrad-Selbstbewertung und der Vorspann wurden entsprechend aktualisiert.
Added
- Erstveröffentlichung: 45 inhaltliche Themen in 8 Teilen, dazu Vorspann und ein Anhang mit 7 Themen (Teil 9), die die Frameworks DORA und SPACE, Code- und Qualitätsmetriken, Produkt- und Geschäftsmetriken, Zuverlässigkeits- und Sicherheitsmetriken und die Wirkung generativer KI auf Engineering-Metriken abdecken.
- Repository-Infrastruktur, gespiegelt aus dem Schwesterprojekt
software-engineering-guide: ein spezifikationsgetriebenesspec/(Index, Struktur, Konventionen, Oxford-Rechtschreibung, Roadmap), eine Validierungssuite intests/validate.py, ein Navigationsgenerator intools/gen_nav.py, einjustfile,AGENTS.mdmit Leitfäden für Mitwirkende unterdocs/contributing/,CONTRIBUTING.mdund dieses Änderungsprotokoll. spec/structure.md, das kanonische Themenmanifest, gegen das die Tests die Dateien prüfen.- Zwei ausgearbeitete Beispiele in
docs/examples/: eine ausgefüllte Metrik-Charta und eine Dashboard-Spezifikation.
Geschichte
Das Buch wurde von der Spezifikation nach außen gebaut: Die Struktur aus neun Teilen
wurde zuerst in spec/structure.md festgelegt, dann wurde jedes Thema
nach der gemeinsamen Vorlage in docs/contributing/chapter-template.md verfasst, wobei tests/validate.py durchgehend Struktur und Hausstil erzwang.
Konventionen für diese Datei
- Gruppieren Sie Änderungen unter Added, Changed, Fixed, Removed oder Deprecated.
- Halten Sie Einträge kurz und konkret. Möglichst eine Zeile je Eintrag.
- Verwenden Sie auch hier keine Geviertstriche; die Tests prüfen auch diese Datei.