{"id":112067,"date":"2026-02-17T07:00:00","date_gmt":"2026-02-17T15:00:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/oldnewthing\/?p=112067"},"modified":"2026-02-17T10:32:55","modified_gmt":"2026-02-17T18:32:55","slug":"20260217-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20260217-00\/?p=112067","title":{"rendered":"Microspeak: Escrow"},"content":{"rendered":"<p>As a product is nearing release, the release management selects a build and declares it to be the <i>escrow build<\/i>. The metaphor is that this build has been placed into the hands of an imaginary third party for eventual release to customers provided certain requirements are met.<\/p>\n<p>Those requirements are that the product survive a period of concerted testing and self-host usage to build confidence that it meets its quality and reliability targets. The Developer Division Release Team blog unhelpfully described escrow as &#8220;<a title=\"Whidbey RTM Escrow\" href=\"&#96;https:\/\/learn.microsoft.com\/en-us\/archive\/blogs\/release_team\/whidbey-rtm-escrow\">the phase before the completion of the RTM milestone where the product goes through a period of bake time<\/a>.&#8221; I say <i>unhelpfully<\/i> because it defines one Microspeak term (<i>escrow<\/i>) in terms of another Microspeak term (<i>bake time<\/i>). Some time ago, <a title=\"That's just super (and a note on baking)\" href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/20060213-09\/?p=32313\"> I defined the Microspeak term <i>bake<\/i><\/a> as &#8220;(of a code change) to build confidence by observing its behavior over a period of time.&#8221;<\/p>\n<p>Putting this all together, a more complete definition of <i>escrow<\/i> would be &#8220;the phase before the completion of the RTM milestone where the product accepts no changes while its behavior is closely observed to ensure that it meets release criteria.&#8221;<\/p>\n<p>When a problem is found, the release team has to assess whether this problem is significant enough to require a product change. This assessment is a balance of many factors: How often does it occur? Does it affect one category of user more than another? How severe are the consequences? How easily can it be worked around? These criteria are typically\u00b9 formalized by a <a title=\"Does it meet the bar?\" href=\"https:\/\/learn.microsoft.com\/en-us\/archive\/blogs\/virtual_pc_guy\/does-it-meet-the-bar\"> bug bar<\/a>.<\/p>\n<p>If a severe enough bug is discovered, then an <i>escrow reset<\/i> is declared, and the bug fix is accepted,\u00b2 a new build is produced, the new build is declared the new <i>escrow<\/i> build, and the cycle repeats.<\/p>\n<p>Eventually, the product makes it through the escrow period without any escrow reset events, and the escrow build is released to manufacturing.<\/p>\n<p>\u00b9 <a title=\"When you use a term, it helps if you know what the term means\" href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/20100609-00\/?p=13763\"> Though not always<\/a>, apparently.<\/p>\n<p>\u00b2 Plus <a title=\"Losing the game of Last Checkin Chicken two products in a row\" href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/20080226-00\/?p=23323\"> any bug fixes that were granted &#8220;opportunistic&#8221; status<\/a> by the release management team.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Final build, final, final, final 2, ship this one.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[105,26],"class_list":["post-112067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-microspeak","tag-other"],"acf":[],"blog_post_summary":"<p>Final build, final, final, final 2, ship this one.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/112067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=112067"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/112067\/revisions"}],"predecessor-version":[{"id":112068,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/112067\/revisions\/112068"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=112067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=112067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=112067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}