<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
         xmlns:content="http://purl.org/rss/1.0/modules/content/"
         xmlns="http://purl.org/rss/1.0/">


<channel rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell">

    <title>TalkBMC - Agile Engineering</title>
  <link>http://talk.bmc.com</link>
  <description></description>
  <image rdf:resource="logo.jpg"/>
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2007-09-24T12:55:00Z</sy:updateBase>
  <items>
    <rdf:Seq>
          
              <rdf:li rdf:resource="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/Demos"/>
          
          
              <rdf:li rdf:resource="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/release-planning"/>
          
          
              <rdf:li rdf:resource="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/staying-releasable"/>
          
          
              <rdf:li rdf:resource="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/importance-of-prioritization"/>
          
          
              <rdf:li rdf:resource="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/agile-changed-my-life-twice"/>
          
   </rdf:Seq>
  </items>
</channel>

<item rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/Demos">
<title>Demos</title>
<link>http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/Demos</link>
<description>Demos are a cornerstone of &lt;a href="http://www.bmc.com/BMC/Common/CDA/hou_Page_Generic_NoNav/0,3623,10158798_39462
618,00.html"&gt;Agile development&lt;/a&gt;.  You do work for a couple of weeks.  Then you show off what you've done.</description>
<content:encoded><![CDATA[<P>Demos are a great way to get everyone familiar with what's been accomplished.&nbsp; This is particularly the case with larger organizations (those with multiple Agile teams).&nbsp; I would highly encourage a single demo for teams working on different parts of the same product.&nbsp; Not only does it keep everyone in the loop, it encourages a lot of synergy.&nbsp; Now that they've done that, what if we did this...</P>
<P>Demos are a great way to get feedback.&nbsp; They generate lots of conversations and good ideas for the next iteration.&nbsp; This worked or this didn't work or what if we did this...&nbsp; Encourage questions and discussion.&nbsp; Know when to spin those off into separate meetings.</P>
<P>To be effective, demos need to be interesting.&nbsp; The best way I've found to do this is to focus on customer value.&nbsp; Show how the customer would accomplish things given the new features. And emphasize why that's important.&nbsp; This keeps the teams grounded in thinking about things from a customer point of view.</P>
<P>We generally do acceptance before the demo.&nbsp; That way we can focus on the demonstration itself rather than administrative aspects / too much detail.</P>
<P>Demos are a great way to keep the teams energized. They help to show how much progress you're making.&nbsp; Everyone likes progress.&nbsp; Demos are a way to make that progress obvious.</P> 
     <div id="digg-container"><ul class="news-digg csshover">
        <li id="diglink1" class="digg-it"> <a target="_top" href="http://digg.com/submit?phase=2&url=http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/Demos&title=Demos">digg it</a>            
        </li>
    </ul></div><div class="visualClear"></div>
     
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/agile"
                      rel="tag">Agile</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+software"
    rel="tag">Agile Software</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+development"
    rel="tag">Agile development</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+software"
    rel="tag">Agile software</a></strong>
           
     </span>
]]>
</content:encoded>
<dc:publisher>No publisher</dc:publisher>
<dc:creator>wbodwell</dc:creator>
<dc:rights></dc:rights>

<dc:subject>Agile</dc:subject>


<dc:subject>Agile Software</dc:subject>


<dc:subject>Agile development</dc:subject>


<dc:subject>Agile software</dc:subject>

<dc:date>2007-11-07T16:53+00:00</dc:date>
</item>


<item rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/release-planning">
<title>Release Planning</title>
<link>http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/release-planning</link>
<description>&lt;a href="http://www.bmc.com/products/attachments/Ideal_Security_Patch_Process_White_Paper.pdf"&gt;Release Planning&lt;/a&gt; looks on the surface to be waterfall-like.  But if you look a little closer, it is really quite different.  It can make a huge difference in bringing the team together (particularly for large organizations involving multiple Agile teams).</description>
<content:encoded><![CDATA[<P>The first thing you need for release planning is a prioritized backlog.&nbsp; You should really have this at any point in time, but in the beginning particularly, you might not.&nbsp; Now is a good time to discuss the backlog as a team to ensure you're all on the same page with the priorities.</P>
<P>Next, each team should have a velocity for the release.&nbsp; Think high level.&nbsp; People iterations are useful.&nbsp; So if you have 5 people and 6 iterations to add features, than you have 30 people iterations of velocity for the release.</P>
<P>Each team will likely have areas that they have traditionally owned.&nbsp; For each team, have them put high level estimates for each feature based on those areas (going down the list in priority order).&nbsp; Stop when the team runs out of velocity.</P>
<P>As an aside, we often focus on the developers.&nbsp; We ensure that QA and doc are present in the right ratios.&nbsp; But to keep things simple we often don't estimate those independently.</P>
<P>Now a few things should be obvious.&nbsp; Based on traditional ownership, some teams made it further down the backlog than others.&nbsp; Look for opportunities for cross training / changing ownership so that you're optimized to make it as far down the list as possible.&nbsp; Also useful is if you can reduce the number of teams that need to participate in each feature.</P>
<P>Now that you've done some load balancing, start thinking in more detail about what needs to be done to accomplish those features.&nbsp; In other words, how are you going to break the feature into increments, each of which add customer value?&nbsp; This can take a week or two given everything else you likely have going on.&nbsp; If it takes longer, you're probably over thinking it.</P>
<P>By the way, in person is much better.&nbsp; If your teams are distributed and you're able to spend for travel, release planning is the time to do it.&nbsp; Consider bringing in the participants for the full week leading up to release planning.</P>
<P>For the release planning meeting itself, allocate a full day.&nbsp; Start off for an hour or so and make sure you're all on the same page with the priorities for the release and the objectives for the day.</P>
<P>Break out into the individual teams.&nbsp; Each team maps their cards (each increment goes on a card along with its cost in number of people) to the iterations.&nbsp; Start with the highest priority card in the first iteration.&nbsp; Move to iteration 2 when you've used up your velocity, etc.&nbsp; The really interesting part is looking at the other teams.&nbsp; Adjust to make sure that you're in synch.</P>
<P>At the end, go through each iteration.&nbsp; Each team says what they're hoping to accomplish for the iteration.&nbsp; Other teams ask questions and bring up issues or concerns.&nbsp; The net result after you've gone through all of the iterations: everyone has a good feel for what you're trying to take on in the release.</P>
<P>This is not a commitment.&nbsp; Individual estimates might be way off.&nbsp; Priorities will change every two weeks.&nbsp; But you start off on the same page and by staying in touch, you can remain there.&nbsp; More on that later.</P> 
     <div id="digg-container"><ul class="news-digg csshover">
        <li id="diglink1" class="digg-it"> <a target="_top" href="http://digg.com/submit?phase=2&url=http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/release-planning&title=Release Planning">digg it</a>            
        </li>
    </ul></div><div class="visualClear"></div>
     
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/agile"
                      rel="tag">Agile</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+software"
    rel="tag">Agile Software</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+development"
    rel="tag">Agile development</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+software"
    rel="tag">Agile software</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/release+management"
    rel="tag">Release Management</a></strong>
           
     </span>
]]>
</content:encoded>
<dc:publisher>No publisher</dc:publisher>
<dc:creator>wbodwell</dc:creator>
<dc:rights></dc:rights>

<dc:subject>Agile</dc:subject>


<dc:subject>Agile Software</dc:subject>


<dc:subject>Agile development</dc:subject>


<dc:subject>Agile software</dc:subject>


<dc:subject>Release Management</dc:subject>

<dc:date>2007-11-06T13:43+00:00</dc:date>
</item>


<item rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/staying-releasable">
<title>Staying Releasable</title>
<link>http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/staying-releasable</link>
<description>Staying releasable is a key focus for &lt;a href="http://www.bmc.com/BMC/Common/CDA/hou_Page_Generic_NoNav/0,3623,10158798_39462
618,00.html"&gt;Agile development&lt;/a&gt;.  You attack the work incrementally (typically in two week iterations).  You learn from that work and you make adjustments with what you attack in the following iteration.  By approaching things incrementally and staying releasable, your dates become much more predictable.  You also introduce the opportunity to cut intermediate drops for customers or internal users to get more feedback.  But what does it mean to stay releasable?  And how do you achieve it?</description>
<content:encoded><![CDATA[<P>The first step is to break the release into iterations.&nbsp; Opinions vary on what the correct length is, but typically two weeks is about right.&nbsp; If you want to do something which will take more than two weeks, you'll need to break it up into increments.&nbsp; The best increments are those which introduce customer value and are testable.&nbsp; In other words, don't break it into design, implement, test.&nbsp; Or for that matter back end and front end.&nbsp; Instead break it into smaller features which can be designed, implemented and tested within an iteration.</P>
<P>Once you're attacking things in iterations, try to pull the full lifecycle into that iteration.&nbsp; Testing within the iteration is critical.&nbsp; It requires a lot more interaction between development and QA.&nbsp; The two need to go hand in hand.&nbsp; Next is documentation.&nbsp; Make sure that any changes to the documentation are also done in the iteration.</P>
<P>Once you have those in the iteration, focus on fixing any resulting defects within the iteration as well.&nbsp; Make sure any changes to the install or upgrade are done within the iteration.&nbsp; Start focusing on downstream affects like changes to the bill of materials or changes to training materials.</P>
<P>Getting to the point that all of this is done consistently within the iteration can take a while.&nbsp; It requires a lot of evolution in the organization.&nbsp; One way to cope in the interim is to add "hardening" iterations.&nbsp; The objective here is to add some time to clean up anything that you couldn't do within the iteration.&nbsp; You might start with one or more mid-release hardening iterations.&nbsp; And leave one through four hardening iterations at the end.&nbsp; Your goal is then to reduce the need for these with every release.</P> 
     <div id="digg-container"><ul class="news-digg csshover">
        <li id="diglink1" class="digg-it"> <a target="_top" href="http://digg.com/submit?phase=2&url=http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/staying-releasable&title=Staying Releasable">digg it</a>            
        </li>
    </ul></div><div class="visualClear"></div>
     
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/agile"
                      rel="tag">Agile</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+development"
    rel="tag">Agile development</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+testing"
    rel="tag">Agile testing</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/release+management"
    rel="tag">Release Management</a></strong>
           
     </span>
]]>
</content:encoded>
<dc:publisher>No publisher</dc:publisher>
<dc:creator>wbodwell</dc:creator>
<dc:rights></dc:rights>

<dc:subject>Agile</dc:subject>


<dc:subject>Agile development</dc:subject>


<dc:subject>Agile testing</dc:subject>


<dc:subject>Release Management</dc:subject>

<dc:date>2007-10-30T18:44+00:00</dc:date>
</item>


<item rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/importance-of-prioritization">
<title>The Importance of Prioritization</title>
<link>http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/importance-of-prioritization</link>
<description>Agile development has many aspects, but the two I focus the most on are prioritization and releasability.  In many ways, they're the hardest to get right.  But, the better you get at these, the more you'll get out of Agile.  In this blog entry, I'll focus on prioritization.  I'll save releasability for next time.</description>
<content:encoded><![CDATA[
  <p>Prioritization is at the heart of Agile development.&nbsp; Agile is all
  about doing the most important / valuable things.&nbsp; You make a list of
  the things you could / should do (a backlog).&nbsp; You rank that
  list.&nbsp; And then you attack the first item on the list.</p>

  <p>When an organization first starts doing Agile, the ranking part can be a
  challenge.&nbsp; Product Managers are used to putting things in categories:
  critical, important, useful.&nbsp; We've got to do all of the critical
  things.&nbsp; We should do as many of the important things as we can.&nbsp;
  We should work in the useful things as possible.&nbsp; In Agile, you have to
  be more granular.&nbsp; What is the most critical of the criticals?&nbsp;
  The second most?</p>

  <p>This is hard because they can be very close to each other (a toss
  up).&nbsp; Worst case, go with your gut feeling.&nbsp; If they're that
  close, it likely won't make a huge difference if you're wrong.&nbsp; As you
  do it more, it'll get easier.&nbsp; Plus, you'll be learning more about the
  value proposition of each as time passes.&nbsp; It is better for the Product
  Manager to make the gut call than the team since he/she is closer to the
  customer.&nbsp; If the Product Manager doesn't rank them, the team will.</p>

  <p>What's the right level of granularity for a backlog?&nbsp; If an item has
  some parts which are optional and can be prioritized independently, they
  should be broken out into separate backlog items.</p>

  <p>The goal of the engineering team is to get as far down that backlog as
  possible in the release.&nbsp; As focal areas change from release to
  release, cross training is important.&nbsp; Your people or your teams need
  to be able to work on areas outside of their core (in case that core isn't a
  focus for the current priorities).</p>

  <p>The priorities don't remain constant.&nbsp; Every iteration you learn
  more about the customer and the ability of the items in the backlog to help
  the customer.&nbsp; That knowledge should be used to re-evaluate /
  change&nbsp;the backlog based on what you've learned.</p>

  <p>Why is prioritization so critical?&nbsp; If you rank the work and attack
  in that order, you know that the things that won't make it are less
  important than anything that did.&nbsp; The biggest productivity gains from
  Agile come from what you don't do.</p>
  
     <div id="digg-container"><ul class="news-digg csshover">
        <li id="diglink1" class="digg-it"> <a target="_top" href="http://digg.com/submit?phase=2&url=http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/importance-of-prioritization&title=The Importance of Prioritization">digg it</a>            
        </li>
    </ul></div><div class="visualClear"></div>
     
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/agile"
                      rel="tag">Agile</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/agile+development"
    rel="tag">Agile development</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/product+management"
    rel="tag">Product Management</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/release+management"
    rel="tag">release management</a></strong>
           
     </span>
]]>
</content:encoded>
<dc:publisher>No publisher</dc:publisher>
<dc:creator>wbodwell</dc:creator>
<dc:rights></dc:rights>

<dc:subject>Agile</dc:subject>


<dc:subject>Agile development</dc:subject>


<dc:subject>Product Management</dc:subject>


<dc:subject>release management</dc:subject>

<dc:date>2007-10-23T09:48+00:00</dc:date>
</item>


<item rdf:about="http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/agile-changed-my-life-twice">
<title>Agile Changed My Life (Twice)</title>
<link>http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/agile-changed-my-life-twice</link>
<description>How Agile development methodologies changed my life at Evity and BMC Software.</description>
<content:encoded><![CDATA[<P>In 1999, while I was at <A href="http://www.bizjournals.com/austin/stories/2000/05/01/daily9.html">Evity</A>, we used many <A href="http://en.wikipedia.org/wiki/Agile_software_development">agile techniques</A>. Daily stand-ups. Developing incrementally. Two week iterations. Testing within the iteration. A prioritized backlog. Retrospectives. We even took releasable to the extreme. We released every two weeks (it was a hosted service). This approach was very successful. Within 4 months, we had a beta version of our <A href="http://www.bmc.com">software</A>. Within 6 months, it was generally available. Within 10 months, we were acquired by <A href="http://www.bmc.com/">BMC Software</A>.</P>
<P>After being acquired, we slowly adapted to the mainstream approach at BMC: Waterfall. We went to longer and longer releases. We began doing requirements documents and functional specifications. We started doing big things (not incremental). We started testing the quality in at the end. It was analogous to the frog in the pot of water. If you raise the temperature of the water gradually, the frog won’t jump out. Eventually the frog dies. We were the frog.</P>
<P>Something happened before we died. In 2004, <A href="http://talk.bmc.com/podcasts/podcast-gat">Israel Gat</A> joined BMC. He was a big proponent of Agile development. But, he didn’t push it on any of us. He encouraged us and supported us in adopting as we saw fit.</P>
<P>We then started a large scale project. We were to bring together the lightweight PATROL Express (remote monitoring) with the more robust <A href="http://www.bmc.com/products/products_services_detail/0,,0_0_0_2001,00.html">PATROL</A> (agent based monitoring) into a single solution: BMC Performance Manager. The issue was that the two were very distinct architecturally and in their capabilities (though they were fundamentally trying to solve similar problems in complementary ways). We could easily have spent two to three years developing a first version only to realize that we missed the mark. We realized that we needed to do it in a way that kept us focused on the most important aspects and let us get lots of feedback as we were going along. Agile seemed the way to go. In retrospect, I can’t see how we would have been successful otherwise.</P>
<P>It was a breath of fresh air. We no longer got mired in the details / debates that in the end didn’t matter. We focused on what was truly important: working software, not specifications. We started working better as a team. And eventually, better as a business unit.</P>
<P>We began using agile on a few of the core teams. We started expanding to more and more. BMC Performance Manager is entirely agile at this point. Service Impact and Event Management (the group I’m in now) is getting there. Agile is like a virus (in a positive way). It has taken root in BMC and we’re seeing a lot of benefits in our ability to put out powerful new features with much higher quality (see <A href="http://biz.yahoo.com/bw/070910/20070910005634.html?.v=1">http://biz.yahoo.com/bw/070910/20070910005634.html?.v=1</A> for some recent press on the subject).</P>
<P>My goal with this blog is to share some of the things that we picked up along the way (and the things that we’re still picking up as we expand its usage and take it even further).</P>
<P>Walter</P> 
     <div id="digg-container"><ul class="news-digg csshover">
        <li id="diglink1" class="digg-it"> <a target="_top" href="http://digg.com/submit?phase=2&url=http://talk.bmc.com/blogs/blog-bodwell/walter-bodwell/agile-changed-my-life-twice&title=Agile Changed My Life (Twice)">digg it</a>            
        </li>
    </ul></div><div class="visualClear"></div>
     
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/agile"
                      rel="tag">Agile</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/evity" rel="tag">Evity</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/patrol" rel="tag">PATROL</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/waterfall" rel="tag">Waterfall</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/mainframe" rel="tag">mainframe</a></strong>
           
     </span>
]]>
</content:encoded>
<dc:publisher>No publisher</dc:publisher>
<dc:creator>ymangum</dc:creator>
<dc:rights></dc:rights>

<dc:subject>Agile</dc:subject>


<dc:subject>Evity</dc:subject>


<dc:subject>PATROL</dc:subject>


<dc:subject>Waterfall</dc:subject>


<dc:subject>mainframe</dc:subject>

<dc:date>2007-09-27T10:31+00:00</dc:date>
</item>


</rdf:RDF>



