<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Build and Release Management &#187; Release Framework</title>
	<atom:link href="http://allscm.com/archives/category/release-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://allscm.com</link>
	<description>Build. Release. Profit</description>
	<lastBuildDate>Tue, 15 May 2012 22:15:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Release Management Access Control</title>
		<link>http://allscm.com/archives/release-management-access-control.html</link>
		<comments>http://allscm.com/archives/release-management-access-control.html#comments</comments>
		<pubDate>Thu, 16 Apr 2009 20:10:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Build Framework]]></category>
		<category><![CDATA[Release Framework]]></category>
		<category><![CDATA[SCM Basics]]></category>

		<guid isPermaLink="false">http://allscm.com/?p=142</guid>
		<description><![CDATA[Access Control, at first glance seems to be a rather straight forward topic or task to handle.  Well, I can assure you it is not.  Especially when you&#8217;re working in an Engineering organization that seems to be schizophrenic at times in terms of its own unique identity.   I&#8217;m talking about how there should be [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft size-full wp-image-149" style="margin: 5px;" title="lock" src="http://allscm.com/wp-content/uploads/2009/04/lock.png" alt="lock" width="73" height="95" />Access Control, </strong>at first glance seems to be a rather straight forward topic or task to handle.  Well, I can assure you it is not.  Especially when you&#8217;re working in an Engineering organization that seems to be schizophrenic at times in terms of its own unique identity.   I&#8217;m talking about how there should be a fine line drawn between Dev, QA, Tech Pubs, Process Group, Program Management, Product Management, Operations, etc.</p>
<p>Where there is a lack of established structure and process, there exists disorder and chaos relating to software Builds and Releases.  Access control must be implemented early on and strictly enforced to clearly define what can certain groups consume.</p>
<p>Builds, whether it be continuous, hourly, daily, or nightly in frequencies should <em>only</em> be made available to Dev and QA.  No exceptions.  In your org, if Program Management happens to fall under the umbrella of Engineering, then it wouldn&#8217;t hurt to grant Program Managers the same access privileges as that of the Dev and QA teams.</p>
<p>In no circumstances should groups such as Tech Pubs or Operations be given access to the builds.  That is the quickest way to creating confusion and risk having the software leaked prematurely or worst, given to the customer  without proper and formal approval.</p>
<p>Operations should only be given access to the released software (FCS &#8211; First Customer Shipment or GA &#8211; General Availability).  Tech Pubs and to a certain limited scope extent, Operations, can be given early access preview to the Alpha or Beta phase of the software in a separate distribution location made especially for these groups.  Since there may be needs for Tech Pubs to begin the documentation work and for Operations to go through the initial deployment exercises.</p>
<p>Aside from that, I believe you must keep the distribution points between the various groups well defined, structured, controlled, and most importantly, enforced.  Part of being a good Build and Release Engineer is being a good enforcer of processes.   Be unwavering in your stance when approached with a sob story or forceful demand for access to the builds distribution by a group outside of the QA or Dev teams.  Speak softly, but carry a big night stick.  <img src='http://allscm.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I&#8217;ll be interested to learn how you manage your released software&#8217;s distribution in your org.  Please share your thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://allscm.com/archives/release-management-access-control.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build Reproducibility Problem</title>
		<link>http://allscm.com/archives/build-reproducibility-problem.html</link>
		<comments>http://allscm.com/archives/build-reproducibility-problem.html#comments</comments>
		<pubDate>Mon, 14 Apr 2008 09:51:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Build Framework]]></category>
		<category><![CDATA[Release Framework]]></category>

		<guid isPermaLink="false">http://allscm.com/?p=69</guid>
		<description><![CDATA[I&#8217;ve seen a lot of organizations running into this problem such that their build environment gets to a point where it is so complicated that the best way to preserve it is through archiving the image.  I&#8217;m talking about archiving the entire build machine using image tools such as Norton Ghost, VMWare, or Microsoft VirtualPC.  [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-167" style="margin: 5px;" title="problem" src="http://allscm.com/wp-content/uploads/2008/04/problem.png" alt="problem" width="78" height="76" />I&#8217;ve seen a lot of organizations running into this problem such that their build environment gets to a point where it is so complicated that the best way to preserve it is through archiving the image.   I&#8217;m talking about archiving the entire build machine using image tools such as Norton Ghost, VMWare, or Microsoft VirtualPC.   I&#8217;ve used all those tools and from past experience, I found that VMWare images works best though not without the cost of disk storage space &#8212; but HDD has gotten so cheap nowadays it no longer is an issue.</p>
<p>So why build machine image archiving you may ask?   Because sometimes when certain software gets released (1.0), the new (2.0) continues on the trunk with added features and *changes* compiler(s).   Now as 2.0 goes forward, the legacy 1.0 may still have bug fixes and the build loop may need to be brought back to reproduce a certain build; with that in mind, having a VMWare image works wonders in such situation.   There is a long list of benefits for such practice as well, but I&#8217;m not going through them now; I may add to this post in the future&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://allscm.com/archives/build-reproducibility-problem.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Burnout Factor As a Build and Release Engineer</title>
		<link>http://allscm.com/archives/the-burnout-factor-as-a-build-and-release-engineer.html</link>
		<comments>http://allscm.com/archives/the-burnout-factor-as-a-build-and-release-engineer.html#comments</comments>
		<pubDate>Tue, 15 Jan 2008 09:07:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Build Framework]]></category>
		<category><![CDATA[Release Framework]]></category>

		<guid isPermaLink="false">http://allscm.com/?p=47</guid>
		<description><![CDATA[Software Build and Release has such a hectic schedule&#8211;sometimes you just can&#8217;t help it but to get caught in it all and get burned out.  Aside from a successful proposal of a new build and release infrastructure and getting all the development teams on board, the headache starts when the implementation and back-to-back release schedule [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-178" style="margin: 5px;" title="burnout" src="http://allscm.com/wp-content/uploads/2008/01/burnout.png" alt="burnout" width="87" height="134" />Software Build and Release has such a hectic schedule&#8211;sometimes you just can&#8217;t help it but to get caught in it all and get burned out.  Aside from a successful proposal of a new build and release infrastructure and getting all the development teams on board, the headache starts when the implementation and back-to-back release schedule begins.</p>
<p>Project after project, build after builds and releases gets implemented and soon the SCM team experiences what I would like to call the avalanche of legacy build project conversion requests.  Early adopters get to experience the bliss of a particular new build and release infrastructure and suddenly good words and reviews spreads like wild fire to other groups.  Soon every group within the developmental organization is knocking on the SCM group&#8217;s door asking to have their projects converted over.</p>
<p>So what do you do when business is good and the team seems like it can do no wrong?  You pay attention to the burnout factor of each of these overworked and overstressed SCM Engineers.  Offer telecommuting options or flex days (days off for extra hours worked), pay attention to each Engineer&#8217;s sentiments and get frequent feedback.  Failure to do so will be the quickest way to drive talented SCM Engineers out of the company and into the doors of your competitor.</p>
]]></content:encoded>
			<wfw:commentRss>http://allscm.com/archives/the-burnout-factor-as-a-build-and-release-engineer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration Management Policy</title>
		<link>http://allscm.com/archives/configuration-management-policy.html</link>
		<comments>http://allscm.com/archives/configuration-management-policy.html#comments</comments>
		<pubDate>Thu, 19 Jul 2007 08:14:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Automated Test Framework]]></category>
		<category><![CDATA[Build Framework]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Release Framework]]></category>
		<category><![CDATA[SCM Agile Development]]></category>

		<guid isPermaLink="false">http://allscm.com/?p=23</guid>
		<description><![CDATA[To promote the spirit of Agile Development and Continuous Integration, groups of builds must be classified and treated differently within the development organization. These builds are as follows: Engineering: These builds lives on the individual developer&#8217;s machine. It should never see the light of day beyond this scope. This is merely a convenient build tool [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-199" style="margin: 5px;" title="policy" src="http://allscm.com/wp-content/uploads/2007/07/policy.png" alt="policy" width="58" height="74" />To promote the spirit of Agile Development and Continuous Integration, groups of builds must be classified and treated differently within the development organization.  These builds are as follows:</p>
<ul>
<li>Engineering:  These builds lives on the individual developer&#8217;s machine.  It should never see the light of day beyond this scope.  This is merely a convenient build tool designed to allow developers to easily build and debug their code.  There are exceptions, however; for teams developing in the new .NET paradigm using the all inclusive solution (*.sln) files to build will have no need for this type of build.  This is mainly useful for older softwares where several manual modification/moving/copying of file operations are need.  These builds are then classified as on-demand.</li>
<li>Continuous Integration (Development):  These types of builds can also be referred to as the Continuous Integration (CI) builds.  These builds lives on a stand-alone machine and the artifacts should only be made available to the immediate development team of the respective project.  These builds should then be considered continuous since it is constantly polling for new check-ins.</li>
<li>Software Configuration Management (Product Testing):  These builds are on-demand and should only be initiated by team leads or managers of the particular development group.  These builds should be built based on a label within the source control tool.  There should not be any errors as these builds are derived from successful CI builds.  The consumer for these builds will be the QA group.</li>
<li>Software Configuration Management (Product Release):  Similar to that of the product test SCM builds, these only differ in nature and title as they are meant for real world consumption.</li>
</ul>
<p>To create quick build turn-arounds, plentiful CPU cycles, clean and reproducible build environments; each one of these build classifications should live on its own machine/server.   The two flavors of SCM builds can actually be on the same server, but Engineering, CI, and SCM must all exist separately.</p>
<hr />UPDATE (from Paul Keeble):</p>
<p>There is another way of looking at this, especially when considering the agile process, and especially when in an enterprise software environment.</p>
<p>You still have the needs for a Engineer build and a CI build but instead of the SCM builds you instead &#8220;promote&#8221; the CI build.  What this effectively means is that someone chooses a CI build to push towards QA, and then this is pushed ultimately to production, etc.</p>
<p>As a process it has the advantage of being simplier and centralises all efforts around the automated build.   It is physically impossible for the wrong code to get built for production because someone changed a tag, instead the built artifact is the same (and can be checked against an MD5 to test it).</p>
<p>Although not as frequent in the .NET world its a common practice in the Java world.</p>
]]></content:encoded>
			<wfw:commentRss>http://allscm.com/archives/configuration-management-policy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

