Registro de cambios
Cambios notables en el libro y sus herramientas. Las entradas más recientes están arriba. Las fechas usan ISO 8601 (AAAA-MM-DD).
[Unreleased]
Changed
- Neerlandés (
nl-nl): traducidos los títulos y slugs en inglés que quedaban de los temas 9.0, 9.3 y 9.4 (bijlagen,controlelijsten,sjablonen). - Galés (
cy-001,cy-gb): terminología alineada con TermCymru:risg(riesgo, en lugar deperygl, con concordancia de género),cyfnewidiad(compensación),dangosydd rhagfynegiydangosydd ôl-fynegi(indicador adelantado y rezagado, en lugar dehwyrfrydig),cynhwysedd(capacidad),dosraniad(distribución),cydberthynas(correlación),allbwnpara producción en el tema 1.3 ycyfradd gadael staff(rotación de personal). Se renombraron cuatro slugs de temas para que coincidan. - Sitio: actualizado
@lilydesignsystem/svelte-picker-bara 0.2.0, que añade un selector de búsqueda a la barra de cabecera; envía a la búsqueda existente del sitio/?<query>. - Añadido
scripts/generate-sitemap.mjs, que se ejecuta al final depnpm buildy escribesitemap.xmla partir de las páginas prerrenderizadas (solo URL canónicas de local, sin duplicados por los alias de dos letras) para que la líneaSitemap:derobots.txtse resuelva. AGENTS.mdes ahora un índice corto; los detalles pasaron aAGENTS/layout.md,style.md,locales.mdyworkflow.md.- Barrido de documentación: actualizados
AGENTS.md,index.md, el texto de locales del README generado,spec/index.md,spec/locales.md, y elAGENTS.mdyREADME.mddel sitio para 27 locales, los nombres de directorio de sección por local y las nuevas herramientas; añadidoCLAUDE.md(un puntero aAGENTS.md); corregidas las rutasdocs/obsoletas de las dos habilidades de agente y hecho deskills/la copia canónica de.claude/skills/(comprobado por las pruebas). - Añadidos
llms.txtyllms.json(un índice para agentes de IA de cada local y tema servidos) astatic/del sitio, generados portools/gen_llms.py(just llms) y comprobados por las pruebas. - Página de inicio del sitio: la lista de casillas de las “nueve partes” es ahora una lista anidada de “Contenidos” de todas las partes y temas, y se eliminó la sección “La ley de Goodhart, en todas partes”.
- Reformulado “chapter” a “topic” en toda la prosa del libro en cada
local (por ejemplo “tema 2.1”, “Temas de esta parte”), usando la palabra
propia de cada idioma para tema (
tema,sujet,Thema,тема,主題, etcétera), y en la especificación, el texto generado por las herramientas y las cadenas de interfaz del sitio. Los nombres de archivo, las URL y las claves de sección no cambian. - Traducidos todos los nombres de directorios de sección bajo
locales/:chapters/es ahoratopics/(y su traducción en cada otro local, p. ej.temas/,sujets/,themen/), y elexamples/dees-001esejemplos/. Los nombres viven enspec/section-names.json; las herramientas, las pruebas y la sincronización de contenido del sitio los leen de ahí, y las URL del sitio no cambian.
Changed
- Revisados los locales galeses (
cy-001,cy-gb, mantenidos idénticos) contra la lista de terminología TermCymru del Gobierno de Gales:llesiantpara bienestar,cynhyrchiantpara productividad,gwendid/gwendidaupara vulnerabilidad,llywodraethiantpara gobernanza,cydberthynaspara correlación,ôl-groniadpara backlog (antes dejado en inglés),cost a buddpara coste-beneficio, ydeallusrwydd artiffisial (AI)en la primera mención de la IA en cada tema.
Added
- Se tradujeron a esta configuración regional las secciones de preliminares, ejemplos, contribución y proyecto (14 archivos, más un registro de cambios, una página de inicio y un índice), con nombres de directorio traducidos.
- Añadido el alemán (
de-001) como el 26.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido ade-de. Conectado al sitio y servido en/de-001/(alias/de/). - Añadido el portugués (
pt-001) como el 25.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido apt-pt. Conectado al sitio y servido en/pt-001/(alias/pt/). - Completada una traducción manual completa, desde cero, de los 63 temas al
urdu (
ur-001, de derecha a izquierda), el 24.º local completamente traducido, con los sidecars.locale-peer-idcorrespondientes. Cada tema se tradujo directamente de la fuente en inglés, el índice (tema 9.7) reasigna cada enlace interno a su nombre de archivo en urdu, y el directorio de sección esموضوعات. Conectado al sitio y servido en/ur-001/(alias/ur/). - Completada una traducción manual completa, desde cero, de los 63 temas al
indonesio (
id-001), con los sidecars.locale-peer-idcorrespondientes. No existía un local indonesio previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés, y el índice (tema 9.7) reasigna cada enlace interno a su nombre de archivo en indonesio. Conectado al sitio y servido en/id-001/(alias/id/). - Añadidos el ruso (
ru-001) y el chino (zh-001) como los locales completamente traducidos 21.º y 22.º: los 63 temas cada uno, con los sidecars.locale-peer-idcorrespondientes, idénticos en contenido aru-ruyzh-cn. Conectados al sitio y servidos en/ru-001/y/zh-001/(alias/ru/y/zh/). - Añadido el francés (
fr-001) como el 20.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido afr-fr. Conectado al sitio y servido en/fr-001/(alias/fr/). - Añadido el bengalí (
bn-001) como el 19.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido abn-bd. Conectado al sitio y servido en/bn-001/(alias/bn/). - Añadido el árabe (
ar-001) como el 18.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido aar-eg. Conectado al sitio y servido en/ar-001/(alias/ar/). - Añadido el galés, Gran Bretaña (
cy-gb) como el 17.º local completamente traducido: los 63 temas con los sidecars.locale-peer-idcorrespondientes, idéntico en contenido acy-001(la misma relación quehi-idtiene conhi-001). Conectado aSERVED_LOCALE_CODESdel sitio y servido en/cy-gb/. - Completada una traducción manual completa, desde cero, de los 63 temas al
neerlandés, Países Bajos (
nl-nl), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local neerlandés previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en neerlandés, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ru,fr-frysv-se. Aún no conectado al sitio. - Completada una traducción manual completa, desde cero, de los 63 temas al
sueco, Suecia (
sv-se), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local sueco previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en sueco, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ruyfr-fr. Aún no conectado al sitio. - Completada una traducción manual completa, desde cero, de los 63 temas al
francés, Francia (
fr-fr), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local francés previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en francés, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jpyru-ru. Aún no conectado al sitio. - Completada una traducción manual completa, desde cero, de los 63 temas al
ruso, Rusia (
ru-ru), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local ruso previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en ruso, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kr,es-es,pt-ptyja-jp. Aún no conectado al sitio. - Completada una traducción manual completa, desde cero, de los 63 temas al
japonés, Japón (
ja-jp), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local japonés previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en japonés, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kr,es-esypt-pt. Aún no conectado al sitio. - Completada una traducción manual completa, desde cero, de los 63 temas al
portugués, Portugal (
pt-pt), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. No existía un local portugués previo sobre el que construir, así que cada tema se tradujo directamente de la fuente en inglés. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en portugués, siguiendo el enfoque usado paraar-eg,bn-bd,ko-kryes-es. Aún no conectado al sitio. - Añadido el español, España (
es-es) como local completamente traducido, los 63 temas, partiendo de una copia de la traducción española existente (es-001) (que, tras inspeccionarla, resultó ya gramaticalmente neutra, con un vocabulario en su mayoría ya inclinado hacia España) y aplicando después una pasada terminológica dirigida a los usos minoritarios restantes, sobre todo “incidente” a “incidencia” para el dominio de métricas de incidentes de este libro, con las correspondientes correcciones de concordancia de género en todo el texto. Aún no conectado al sitio. - Completada una traducción manual completa de los 63 temas al coreano, Corea
(
ko-kr), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. El índice (tema 9.7) reasigna cada enlace interno de tema a su nombre de archivo en coreano, siguiendo el enfoque usado paraar-egybn-bd. Aún no conectado al sitio. - Añadido el hindi, India (
hi-id) como local completamente traducido, los 63 temas, copiando literalmente la traducción hindi existente (hi-001) bajo el código de local con etiqueta de país, ya que el hindi estándar no tiene una variante específica de la India que traducir a mano por separado. Aún no conectado al sitio. - Completada una traducción manual completa de los 63 temas al bengalí,
Bangladés (
bn-bd), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. Aún no conectado al sitio. - Completada una traducción manual completa de los 63 temas al árabe, Egipto
(
ar-eg), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. Aún no conectado al sitio. - Completada una traducción manual completa de los 63 temas al alemán, Alemania
(
de-de), con los sidecars.locale-peer-idcorrespondientes yjust testen verde. Aún no conectado al sitio. - Completadas traducciones manuales completas de los 63 temas a tres locales:
galés (
cy-001), chino (zh-cn) e hindi (hi-001), cada uno con los sidecars.locale-peer-idcorrespondientes yjust testen verde. - Añadidos dos locales traducidos planificados más, galés - Gran Bretaña
(
cy-gb) y chino (zh-001), aspec/locales-for-global-sharing-with-svelte/locales.tsvyspec/locales.md(ahora trece locales planificados, frente a once), y resuelto el endónimo hasta entonces indeciso dezh-cncomo 中文. LosLOCALE_LABELSdel sitio ganaron entradas equivalentes (cy-gb: “Cymraeg (Prydain Fawr)“,zh-001: “中文”,zh-cn: “中文 (中国)”). Todavía solo infraestructura: ninguno de estos locales tiene un directoriolocales/<code>/ni contenido traducido. - Publicado el libro en cuatro locales bajo
locales/:en-gb-oxendict(inglés británico, ortografía Oxford; la fuente escrita a mano),en-001(inglés internacional),en-gb(inglés británico general) yen-us(inglés estadounidense).en-001,en-gbyen-usse derivan mecánicamente deen-gb-oxendictmediante el nuevotools/localize.py; consultaspec/locales.md.docs/ya no existe; toda referencia a él enspec/,AGENTS.md,tests/validate.py,tools/gen_nav.pyytools/stats.pyapunta ahora alocales/<locale>/. - Añadidas dos habilidades de Claude Code,
software-engineering-metrics-skill(para lectores que aplican la guía del libro a su propio equipo) ysoftware-engineering-metrics-maintainer-skill(para colaboradores que añaden o editan temas), bajoskills/y replicadas en.claude/skills/. - Movido el código fuente del sitio web publicado a este repositorio como
software-engineering-metrics.github.io/, antes un repositorio independiente. Ahora leelocales/directamente desde la raíz del repositorio en lugar de una copia hermana. El.github/workflows/deploy.ymlde la raíz comprueba que el sitio sigue compilando en cada push amain, y luego envía unrepository_dispatchal repositoriosoftware-engineering-metrics.github.io(mantenido como un caparazón de despliegue delgado, ya que GitHub Pages solo servirá ese dominio desnudo desde un repositorio con exactamente ese nombre), que extrae este monorepo, compila el sitio y lo despliega. - Añadida la infraestructura para locales traducidos (no meramente derivados por
ortografía), según la nueva subespecificación
spec/locales-for-global-sharing-with-svelte/:tools/gen_locale_peer_ids.pyasigna a cada archivo de contenido un sidecar.locale-peer-id, idéntico entre locales, que un futuro local traducido (con sus propios slugs en escritura nativa) puede usar para resolver “esta página, en el local X” en lugar de comparar por slug;tests/validate.pycomprueba que cada sidecar existe y coincide.spec/locales.mddocumenta diez locales traducidos planificados (árabe, bengalí, galés, español, francés, hindi, indonesio, portugués, ruso, urdu y chino - China); ninguno tiene todavía un directoriolocales/<code>/, ya que ninguno está aún traducido. En el sitio,scripts/locales.mjsganóLOCALE_LABELS/localeLabel()(un nombre para mostrar de cada local planificado, listo antes del enrutamiento) ysortedLocaleEntries()(el orden de clasificación que debería usar una futura lista de locales), ysrc/lib/i18n.jsextrajo las cadenas de interfaz (navegación, barra lateral, paginador, selector, pie de página, enlace de salto) que cada componente.sveltetenía antes codificadas en inglés, enhebradas medianteui(locale), con vuelta al inglés para cualquier local sin sus propias traducciones. - Sustituido el control de cabecera solo de local construido a mano del sitio por el
@lilydesignsystem/svelte-picker-bardel Lily Design System: un selector de tema real (claro/oscuro, mediante los nuevosstatic/assets/themes/{light,dark}.css), el selector de local real (conectado al enrutamiento basado en URL de este sitio en lugar de a su comportamiento predeterminado solo de lang/dir), un selector de tamaño de texto (la escala de siete pasos de Lily) y un selector de compartir (correo electrónico, Mastodon, copiar enlace). Fijados@lilydesignsystem/svelte-{theme,locale,text-size,share}-pickera^0.1.2y@lilydesignsystem/svelte-headlessa^0.2.0mediante overrides depnpm-workspace.yaml, sorteando un error real publicado en los rangos de dependencias desvelte-picker-bar0.1.0 (consulta elCHANGELOG.mdde cada selector, “0.1.2”, y elAGENTS.mdde este sitio). - Eliminada la fila de estadísticas de la página de inicio (partes/temas/“Free Always”) y su sección “How to read it”, y sustituida la cuadrícula de tarjetas “Browse the nine parts” por una lista de viñetas sencilla.
Changed
- Añadido
scripts/generate-sitemap.mjs, que se ejecuta al final depnpm buildy escribesitemap.xmla partir de las páginas prerrenderizadas (solo URL canónicas de local, sin duplicados por los alias de dos letras) para que la líneaSitemap:derobots.txtse resuelva. - Añadido el tema 2.8, métricas de flujo de valor Lean (plazo de entrega, tiempo de proceso, tiempo de ciclo, porcentaje completo y exacto, y tiempo takt del mapeo clásico de flujo de valor de Lean, además del cálculo del rendimiento acumulado de primera pasada), colocado después de la teoría de colas. Las métricas de solicitudes de integración y revisión de código pasaron de 2.8 a 2.9, y el tema de métricas DORA pasó de 2.9 a 2.10. Actualizadas todas las referencias cruzadas afectadas en el libro.
- Renombrada la parte 2 de “Delivery and Flow Metrics” a “Flow Metrics” y reorganizada en torno al Flow Framework de Mik Kersten. Añadidos cuatro temas nuevos: 2.1 El Flow Framework, 2.2 Elementos de flujo (funciones, defectos, riesgos, deuda), 2.3 Velocidad de flujo y distribución de flujo, y 2.4 Tiempo de flujo y carga de flujo. Consolidados los cuatro temas individuales de métricas DORA (frecuencia de despliegue, plazo de entrega, tasa de fallos de cambio, tiempo de recuperación) en un único tema de referencia, 2.9 El marco de métricas DORA, movido al final de la parte. Renumerados eficiencia de flujo y trabajo en curso a 2.5 y renombrado y renumerado el tema de teoría de colas (antes 2.9) a 2.7 Teoría de colas. El tiempo de ciclo (2.6) y las métricas de solicitudes de integración y revisión de código (2.8) conservan sus números. Actualizadas todas las referencias cruzadas del libro, el glosario, la referencia de fórmulas, la autoevaluación de madurez y los preliminares para que coincidan.
Added
- Versión inicial: 45 temas sustanciales en 8 partes, más los preliminares y un apéndice de 7 temas (parte 9), que cubren los marcos DORA y SPACE, las métricas de código y calidad, las métricas de producto y negocio, las métricas de fiabilidad y seguridad, y el efecto de la IA generativa en las métricas de ingeniería.
- Infraestructura del repositorio replicada del proyecto hermano
software-engineering-guide: unspec/guiado por la especificación (índice, estructura, convenciones, ortografía Oxford, hoja de ruta), una suite de validación entests/validate.py, un generador de navegación entools/gen_nav.py, unjustfile,AGENTS.mdcon guías para colaboradores bajodocs/contributing/,CONTRIBUTING.mdy este registro de cambios. spec/structure.md, el manifiesto canónico de temas contra el que las pruebas comprueban los archivos.- Dos ejemplos trabajados en
docs/examples/: una carta de métricas rellenada y una especificación de panel.
Historia
El libro se construyó desde la especificación hacia fuera: la estructura de nueve partes
se declaró primero en spec/structure.md, y luego cada tema se redactó
contra la plantilla compartida de docs/contributing/chapter-template.md, con tests/validate.py haciendo cumplir la estructura y el estilo de la casa en todo momento.
Convenciones de este archivo
- Agrupa los cambios bajo Added, Changed, Fixed, Removed o Deprecated.
- Mantén las entradas cortas y específicas. Una línea cada una donde sea posible.
- Tampoco uses aquí rayas largas; las pruebas comprueban también este archivo.