{"id":2683,"date":"2013-11-12T07:00:00","date_gmt":"2013-11-12T15:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2013\/11\/12\/microspeak-spinning-up-or-kicking-off-a-build\/"},"modified":"2013-11-12T07:00:00","modified_gmt":"2013-11-12T15:00:00","slug":"microspeak-spinning-up-or-kicking-off-a-build","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20131112-00\/?p=2683","title":{"rendered":"Microspeak: Spinning up or kicking off a build"},"content":{"rendered":"<p>\nRemember, Microspeak is not merely for jargon exclusive to Microsoft.\nIt&#8217;s jargon you can employ to sound more like an insider.\n<\/p>\n<p>\nMost of the time,\na fresh build of Windows is produced\n<a HREF=\"http:\/\/www.stevemcconnell.com\/ieeesoftware\/bp04.htm\">\nevery day<\/a>.\nWhen the product is nearing a release,\n<a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2013\/08\/20\/10442834.aspx\">\ntrain service gradually declines<\/a>,\nwith faraway branches losing service first.\nEventually, the train stops running altogether,\nand the release branch remains stable for extended periods,\nnot accepting any <i>payload<\/i>.\nThis allows the test team to run their supersized test suites,\nthe ones that take days to complete.\n(Known in the jargon as a\n<i>Full Test Pass<\/i>, or <i>FTP<\/i>.\nSadly, this is easily confused with the File Transfer Protocol,\nalso called FTP.)\n<\/p>\n<p>\nOf course, the Full Test Pass may discover some problems,\nand if one of them is considered serious enough,\na fix is applied to the release branch,\nand then a new build\n<i>spins up<\/i>.\n<\/p>\n<p>\nThe metaphor here is that the computers that produce the build\nhave been sitting\nidle for so long that the imaginary turbines have stopped spinning.\nTo build another release,\n<a HREF=\"https:\/\/www.youtube.com\/watch?v=sBe3QzVW5_8\">\nthe turbines need to get up to speed<\/a>.\n<\/p>\n<p>\nThe Microspeak phrase <i>spin up a build<\/i> applies more generally\nto the concept of\n<i>producing a one-time build from a branch that has not had a build in a long time<\/i>.\nThe branch may not have had a build because it has stopped accepting changes,\nlike our release branch in the example above.\nOr it may not have had a build because it has intentionally been abandoned.\n<\/p>\n<p>\nAn example of the latter case is\na special branch for experimental work that will never go\ninto any official release.\nThe build lab may be under instructions not to produce a build from this branch\nbecause the developers working in the branch can just rebuild the components\nthey are experimenting with.\nOr because the branch is in a constant state of flux,\nso trying to produce a build will usually result in chaos.\nOr because the opportunity cost of producing a build out of this branch\nis denying a build to another branch\ndue to limited hardware resources,\nand the people in the experimental branch are willing to take on some\nof the work themselves in order to free up resources for the other team.\n<\/p>\n<p>\nIf for some reason, the experimental branch would like the build lab to\nproduce a build,\nthey can ask the build lab to\n<i>spin up a build<\/i> for the experimental branch.\n(Presumably with a phrase like\n&#8220;when you get the chance&#8221; so that the build team can <i>kick off<\/i> the build at a time\nwhen demands for build machinery are low,\nlike in the early afternoon.)\n<\/p>\n<p>\n<i>Kicking off a build<\/i> is the jargon term for\nstarting a build,\npresumably inspired by the <i>kick-off<\/i> which starts many sporting events.<\/p>\n<p>Most regularly-scheduled builds occur overnight,\nand you might ask,\n&#8220;When does our build kick off?&#8221;\nThis means\n&#8220;What time does the build lab start building our branch?&#8221;\nYou would ask this if, for example,\nyou want to know how much time you have left to get your fix signed off\nif you want the fix to go into tonight&#8217;s build.\nIf the build kicks off at 5pm,\nyou might say,\n&#8220;There&#8217;s no way I can get it done by then.&#8221;\nBut if it kicks off at 7pm, you might say,\n&#8220;Maybe I can convince my testers to drop what they&#8217;re doing and test this fix,\nand then I can address the problems they find and get the\nfix signed off by 5pm.\nThat leaves two hours for the change to\n<a HREF=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd787631.aspx\">\nmake it through the gated check-in queue<\/a>.&#8221;\n(When a check-in successfully exits the gated check-in queue,\nit is said to have\n<i>cleared the queue<\/i>.)\n<\/p>\n<p>\nEven if the build normally kicks off at 5pm,\nyou can ask your branch manager,\n&#8220;Can you delay kicking off the build until 7pm?\nI have an important fix that we really would like to get into tonight&#8217;s build,\nand there&#8217;s no way it&#8217;ll be ready by 5pm, but I think I can make it by 7pm.&#8221;\nOf course,\nevery hour you delay kicking off the build\nis an hour later the build becomes available in the morning,\nso\nthe branch manager needs to balance\nthe cost of delaying the release of the build\nwith the benefit of picking up this fix.\n<\/p>\n<p>\nThat&#8217;s a lot of build-related jargon for one day,\nbut these are terms you need to know (because you will hear others use them),\nand if you dare, you can employ them yourself to sound more hip and with-it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Round and round.<\/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-2683","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-microspeak","tag-other"],"acf":[],"blog_post_summary":"<p>Round and round.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/2683","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=2683"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/2683\/revisions"}],"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=2683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=2683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=2683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}