{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":1,"items":[{"actor":{"id":"https:\/\/mastodon.social\/users\/raiderrobert","displayName":"Robert Roskam","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/162202-original-tmp20260128183200.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/162202-96-20260129035512.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/162202-48-20260129035135.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/162202-24-20260129035512.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"162202"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/162202-96-20260129035512.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I am deliberately eclectic. I write mostly about software engineering, and I also post #programminghumor, #gaming, #writing, #gamdev, and lots of other stuff.I tend to write stuff in #python these days with bits of #js \/ #go \/ #rust tossed in. Playing with #godot too! Engineer &amp; Manager","url":"https:\/\/mastodon.social\/@raiderrobert","portablecontacts_net":{"preferredUsername":"raiderrobert","displayName":"Robert Roskam","note":"I am deliberately eclectic. I write mostly about software engineering, and I also post #programminghumor, #gaming, #writing, #gamdev, and lots of other stuff.I tend to write stuff in #python these days with bits of #js \/ #go \/ #rust tossed in. Playing with #godot too! Engineer &amp; Manager"}},"content":"<p>Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure.\"<\/p><p>Tell engineers \"we need 80% coverage\" and coverage becomes about hitting numbers.<br \/>- Story points \u2192 velocity games<br \/>- Bug counts \u2192 closing tickets without fixing root causes<br \/>- Deploy frequency \u2192 empty deployments<\/p><p>The best metrics: (1) multiple measures in tension with each other and (2) measuring teams not individuals.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-08-02:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/raiderrobert\/statuses\/114786596245467643","object":{"id":"https:\/\/mastodon.social\/users\/raiderrobert\/statuses\/114786596245467643","objectType":"note","content":"<p>Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure.\"<\/p><p>Tell engineers \"we need 80% coverage\" and coverage becomes about hitting numbers.<br \/>- Story points \u2192 velocity games<br \/>- Bug counts \u2192 closing tickets without fixing root causes<br \/>- Deploy frequency \u2192 empty deployments<\/p><p>The best metrics: (1) multiple measures in tension with each other and (2) measuring teams not individuals.<\/p>","url":"https:\/\/mastodon.social\/@raiderrobert\/114786596245467643","status_net":{"notice_id":null}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-07-03:objectType=thread:nonce=f8b08ef94e8ee103","notice_info":{"local_id":"10387233","source":"ActivityPub"}},"published":"2025-07-03T01:04:30+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@raiderrobert\/114786596245467643"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/5293896","rel":"alternate","type":"text\/html"}]}