<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>AnthillPro Blog</title>
  <link>http://www.anthillpro.com/blogs/anthillpro-blog/</link>
  <description>News and Info about AnthillPro.</description>
  <language>en</language>
  <copyright>The AnthillPro Team</copyright>
  <lastBuildDate>Thu, 11 Mar 2010 16:33:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Webcast: The Role of Binary Repositories in Software Configuration Management</title>
    <link>http://www.anthillpro.com/blogs/anthillpro-blog/2010/03/11/webcast_the_role_of_binary_repositories_in_software_configuration_management.html</link>
    
      
        <description>
          &lt;span style=&#034;font-weight: bold; color: rgb(245, 99, 0); font-size: 14px;&#034;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;font size=&#034;2&#034;&gt;&lt;span style=&#034;font-weight: bold;&#034;&gt;&lt;br /&gt;
Broadcast Date:&lt;/span&gt; Mon., Mar. 15, 2010 at 1:00 p.m. EDT&lt;span style=&#034;font-weight: bold;&#034;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&#034;font-weight: bold;&#034;&gt;Speakers:&lt;/span&gt; Jeffrey Fredrick, Urbancode Technical Evangelist; Eric Minick,&lt;font&gt; Urbancode Lead Consultant&lt;br /&gt;
&lt;b&gt;&lt;a target=&#034;_blank&#034; href=&#034;https://anthillpro.webex.com/mw0306l/mywebex/default.do?nomenu=true&amp;amp;siteurl=anthillpro&amp;amp;service=6&amp;amp;main_url=https%3A%2F%2Fanthillpro.webex.com%2Fec0605l%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D510336054%26siteurl%3Danthillpro%26%26%26&#034;&gt;Register Now&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;/font&gt; &lt;br /&gt;
&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;How confident are you with the content of what you are about to release? Do you know every change since the last release? Can you reproduce the release at will? Many of the teams we meet struggle with these fundamental issues of Software Configuration Management.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;The most successful teams solve these problems by leveraging a binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; or -- in ITIL terminology -- a Definitive Software Library (DSL). By providing an authoritative source for release artifacts, a well-managed binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; can help address issues of compliance, traceability, and audit. Combined with dependency management, a binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; provides a valuable starting point for impact and risk analysis&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;.&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;But the benefit of using a binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; is also felt earlier in the software-development lifecycle: By enabling effective component-based development, a binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; can enable faster build times, facilitate more efficient collaboration between teams, and reduce the learning curve for new developers.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;
&lt;/font&gt;
&lt;div&gt;&lt;font&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;font&gt;For software-configuration-&lt;wbr&gt;&lt;/wbr&gt;management professionals who are concerned with audits or improving the efficiency of the software-development lifecycle, Eric Minick and Jeffrey Fredrick invite you to &lt;a target=&#034;_blank&#034; href=&#034;https://anthillpro.webex.com/mw0306l/mywebex/default.do?nomenu=true&amp;amp;siteurl=anthillpro&amp;amp;service=6&amp;amp;main_url=https%3A%2F%2Fanthillpro.webex.com%2Fec0605l%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D510336054%26siteurl%3Danthillpro%26%26%26&#034;&gt;join them&lt;/a&gt; for this presentation where they will address:&lt;/font&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;div&gt;traditional approaches to controlling binary artifacts, including their shortcomings;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;essential elements of well-managed binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; and inter-project dependency management; as well as&lt;br /&gt;
    &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;patterns for adopting a binary &lt;span class=&#034;il&#034;&gt;repository&lt;/span&gt; and implementing dependency management.&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/font&gt;&lt;/div&gt;
        </description>
      
      
    
    
    
    <comments>http://www.anthillpro.com/blogs/anthillpro-blog/2010/03/11/webcast_the_role_of_binary_repositories_in_software_configuration_management.html#comments</comments>
    <guid isPermaLink="true">http://www.anthillpro.com/blogs/anthillpro-blog/2010/03/11/webcast_the_role_of_binary_repositories_in_software_configuration_management.html</guid>
    <pubDate>Thu, 11 Mar 2010 16:33:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Maven&#039;s Strengths and Weaknesses as a Dependency Management System</title>
    <link>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/26/mavens_strengths_and_weaknesses_as_a_dependency_management_system.html</link>
    
      
        <description>
          For many Java teams, switching to Maven will introduce them to formal dependency management. Maven actually does a pretty decent job and is a fantastic system out of the box for informal projects. However, for teams looking to implement rigorous component reuse policies, Maven falls short. &lt;br /&gt;
&lt;br /&gt;
Last month, in our article &lt;a href=&#034;http://www.anthillpro.com/blogs/anthillpro-blog/2010/01/25/chaperoning_promiscuous_software.html&#034;&gt;Chaperoning Promiscuous Software Reuse&lt;/a&gt;, we reviewed four elements of a successful strategy for managing components. Briefly, these elements are:&lt;br /&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b&gt;Testing and Validation of 3rd party components&lt;/b&gt; Only libraries approved for reuse should be used by developers. If developers want to use additional libraries, they can submit them for screening. &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;b&gt; A Definitive Software Library&lt;/b&gt;: A team should have an official storage place for reusable, versioned components (both internal and 3rd party).&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;b&gt; Using Protection:&lt;/b&gt; A team should have an &amp;quot;immune system&amp;quot; that rejects libraries other than those from the DSL.  &lt;/li&gt;
    &lt;li&gt; &lt;b&gt;Rapid impact analysis audit&lt;/b&gt; When something goes wrong, it should be easy to determine what versions of which components were used by the project.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Basic Maven&lt;/h2&gt;
Basic Maven points to a common Maven repository hosted centrally. Various open source projects publish their releases to this repository and a developer can configure her build file to depend on these releases. At build time, the artifacts are automatically pulled down into the workspace and the build can produce a report of what was used. &lt;br /&gt;
&lt;br /&gt;
This is actually a pretty good start. If the build script depends on exact versions, the team has some traceability. The Maven repository is an official repository of artifacts (a DSL) used by the team although the team does not control it. Unfortunately, there&#039;s little protection against a developer using a rogue component, but it&#039;s easier to do the right thing than the wrong thing, and that goes a long way. &lt;br /&gt;
&lt;br /&gt;
The major failing here is that the team does not control the repository. Rather, it is an arbitrary resource in the cloud. This eliminates the team&#039;s ability to test artifacts prior to including them in the DSL, and there&#039;s no guarantee that an artifact used by a production release today will still be available from the repository tomorrow unaltered and intact. &lt;br /&gt; &lt;br/&gt;
&lt;h2&gt;Bring the Repository in House&lt;/h2&gt;
What&#039;s needed is to bring the repository in house. While this can be done without special tooling, there are a handful of decent Maven repositories that provide the team more control. &lt;a href=&#034;http://nexus.sonatype.org&#034; target=&#034;_blank&#034;&gt;Nexus&lt;/a&gt; and &lt;a href=&#034;http://www.jfrog.org/products.php&#034; target=&#034;_blank&#034;&gt;Artifactory&lt;/a&gt; are two of the major choices here. They provide security over who can publish artifacts to the repository as well as more sophisticated storage and indexing than a simple file system. 
&lt;p&gt;With one of these repositories, the team has it&#039;s own DSL they control and can ensure that only approved versions of libraries are made available to the team. Again, as long as the team does not use snapshot dependencies a basic audit trail of what is in a build is available. Impact analysis reports indicating which projects have used a given component version are a little more difficult. Protecting the code-base from a developer checking an arbitrary library into source control is still a manual process, but Maven does discourage the practice by making reuse of a library from the repository more straight-forward. &lt;br /&gt;
&lt;br /&gt;
With an in-house repository, a team is able to extend Maven nicely. Dependency management is controlled by developers (for better or worse) but dependencies must come from an approved collection of versioned components controlled by the team. These libraries can be tested prior to being made available. Protection and audit capabilities are less than ideal but not wholly absent. For many teams, this kind of system may be adequate. The most disciplined are likely to find it wanting. &lt;br /&gt;
&lt;h2&gt;Other Concerns with Maven Dependency Management &lt;/h2&gt;
&lt;h4&gt;No ability to depend on the newest version with traceability&lt;/h4&gt;
Maven draws a strict line between depending on a released version of a component and depending on the latest built version. Depending on the latest build version is a common practice in multi-component continuous integration. Maven&#039;s strict line allows for either approach to be used, but only provides traceability when dependencies are based on releases. In multi-component CI, teams often do not want to release particular components for reuse upstream, but rather consider every successful CI build (with passing unit tests) a mini-release.&lt;p&gt;
Functional tests performed at a system level determine the quality of the entire dependency graph (the application). In these cases, it&#039;s only after testers validate a system build, that a release will be pushed out (ideally the binary that was tested) and full traceability to every component is valuable. That Maven discourages mutli-component CI through the arbitrary separation of Releases and Snapshots is unfortunate.
&lt;br /&gt;
&lt;h4&gt;Inability to depend based on status&lt;/h4&gt;
Sometimes, teams don&#039;t want to depend on either the latest build of a component nor a specific version. Rather, they want to depend on the latest version that has passed some sort of quality gate. Perhaps a validation from a testing team, or approval from a release manager. Maven has no real concept of statuses on components (version numbers and component names are pretty much it) so status based dependencies are out of the question.

        </description>
      
      
    
    
    
    <comments>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/26/mavens_strengths_and_weaknesses_as_a_dependency_management_system.html#comments</comments>
    <guid isPermaLink="true">http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/26/mavens_strengths_and_weaknesses_as_a_dependency_management_system.html</guid>
    <pubDate>Fri, 26 Feb 2010 16:07:13 GMT</pubDate>
  </item>
  
  <item>
    <title>2 Talks At ESDC</title>
    <link>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/20/2_talks_at_esdc.html</link>
    
      
      
        <description>
          &lt;a href=&#034;http://go-esdc.com&#034;&gt;&lt;img align=&#034;right&#034; alt=&#034;&#034; src=&#034;http://www.anthillpro.com/blogs/anthillpro-blog/images/ESDC_FREDRICK.png&#034; /&gt;&lt;/a&gt;I&#039;m traveling to &lt;a href=&#034;http://www.accurev.com/seminar/atlanta20100224-3&#034;&gt;Atlanta&lt;/a&gt; this week but the first week of March I will be back in the San Francisco Bay Area for a new conference, &lt;a href=&#034;http://go-esdc.com&#034;&gt;ESDC&lt;/a&gt;, the Enterprise Software Development Conference. While this is is a new conference the timing is familiar; ESDC has taken over the traditional calendar-slot of the now defunct SD West. If you&amp;rsquo;re interested in attending you can use my last name as a discount code when you &lt;a href=&#034;http://www.go-esdc.com/register.html&#034;&gt;register&lt;/a&gt; to get $100 of the full conference pass. You can also register to attend the expo for free as long as you register by February 28th.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be there in two different roles. First is as Urbancode &amp;quot;booth babe&amp;quot; showing off AnthillPro &lt;a href=&#034;http://www.anthillpro.com/html/company/news/ESDC_20010.html&#034;&gt;on the Expo floor&lt;/a&gt; Tuesday and Wednesday. I&amp;rsquo;ll also be giving two talks, both on Wednesday. I start the day bright and early with &lt;a href=&#034;http://www.go-esdc.com/technical_classes_Wednesday.html#6&#034;&gt;#605 Going Lean: Slash Waste with Build &amp;amp; Deployment Automation&lt;/a&gt; at 8:15 am, and finish the day at 4 pm with &lt;a href=&#034;http://www.go-esdc.com/technical_classes_Wednesday.html#9&#034;&gt;#906 Creating Habitable Code: Lessons in Longevity from CruiseControl&lt;/a&gt;. Lean software development has been a hot topic for me lately, as members of BayXP and the Silicon Valley Agile Meetup &lt;a href=&#034;http://www.meetup.com/silicon-valley-agile/calendar/12579527/&#034;&gt;know&lt;/a&gt;, while practices for creating long-term sustainable code has been a long term sustained interest. I&amp;rsquo;ve delivered the Habitable Code talk before but this&amp;rsquo;ll be the first time doing it solo, without &lt;a href=&#034;http://pauljulius.com/blog/&#034;&gt;Paul Julius&lt;/a&gt; by my side.&lt;p&gt;&lt;a href=&#034;http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/20/2_talks_at_esdc.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
        </description>
      
    
    
    
    <comments>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/20/2_talks_at_esdc.html#comments</comments>
    <guid isPermaLink="true">http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/20/2_talks_at_esdc.html</guid>
    <pubDate>Sat, 20 Feb 2010 23:27:00 GMT</pubDate>
  </item>
  
  <item>
    <title>AnthillPro Security for Auditors</title>
    <link>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/17/anthillpro_security_for_auditors.html</link>
    
      
        <description>
          &lt;p&gt;&lt;a href=&#034;http://anthillizer.com/&#034;&gt;Eric Starr&lt;/a&gt; over at Anthillizer provides &lt;a href=&#034;http://www.anthillizer.com/2010/02/anthillpro-security-permissions-for.html&#034;&gt;a how-to for creating an Auditor Role&lt;/a&gt; in your AnthillPro. He suggests default &amp;quot;read&amp;quot; or &amp;quot;view&amp;quot; permissions across the board but no execute permissions. Seems like a reasonable strategy for most teams.&lt;/p&gt;
&lt;p&gt;Anthillizer is on a bit of a security kick recently and provided some cheat sheets for security settings.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&#034;http://www.anthillizer.com/2009/12/anthill-pro-security-model-cheat-sheets.html&#034; target=&#034;_blank&#034;&gt;Basic Security Model Cheat Sheet&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&#034;http://www.anthillizer.com/2010/01/anthillpro-security-model-cheat-sheets.html&#034;&gt;More Advanced Security Model Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/17/anthillpro_security_for_auditors.html#comments</comments>
    <guid isPermaLink="true">http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/17/anthillpro_security_for_auditors.html</guid>
    <pubDate>Wed, 17 Feb 2010 08:26:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Configure a Multiplatform Build in AnthillPro</title>
    <link>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/15/configure_a_multiplatform_build_in_anthillpro.html</link>
    
      
      
        <description>
          A common build scenario is to need to compile on several different platforms. The basic build is all the same, but a couple parameters change platform to platform. Here we look at the basics of configuring this kind of scenario in AnthillPro.&lt;br /&gt;
&lt;br /&gt;
You need:&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;A build job that is parameterized&lt;/li&gt;
    &lt;li&gt;A workflow that iterates over that build job for each platform&lt;/li&gt;
    &lt;li&gt;An agent filter that directs each iteration to the appropriate platform&lt;/li&gt;
    &lt;li&gt;Properties on the iteration that are the build job parameters and inform the filter&lt;/li&gt;
&lt;/ul&gt;
Below, there&#039;s a 6 minute video providing an overview of this process.&lt;p&gt;&lt;a href=&#034;http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/15/configure_a_multiplatform_build_in_anthillpro.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
        </description>
      
    
    
    
    <comments>http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/15/configure_a_multiplatform_build_in_anthillpro.html#comments</comments>
    <guid isPermaLink="true">http://www.anthillpro.com/blogs/anthillpro-blog/2010/02/15/configure_a_multiplatform_build_in_anthillpro.html</guid>
    <pubDate>Mon, 15 Feb 2010 15:16:12 GMT</pubDate>
  </item>
  
  </channel>
</rss>
