<?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>bigvisible.com</title>
	<atom:link href="http://www.bigvisible.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bigvisible.com</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 20:51:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Understanding the Why&#8217;s of Agile</title>
		<link>http://www.bigvisible.com/sangel/understanding-the-whys-of-agile/</link>
		<comments>http://www.bigvisible.com/sangel/understanding-the-whys-of-agile/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 20:51:07 +0000</pubDate>
		<dc:creator>sangel</dc:creator>
				<category><![CDATA[Agile Adoption]]></category>
		<category><![CDATA[Agile Coaching]]></category>
		<category><![CDATA[agile transformation]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=918</guid>
		<description><![CDATA[A few years ago when I was in management, it was my responsibility to look for ways for teams to be more effective in implementing and completing projects.  While we were following industry best practices as recommended by governing bodies such as the Project Management Institute (PMI) and the Software Engineering Institute (SEI), we still [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago when I was in management, it was my responsibility to look for ways for teams to be more effective in implementing and completing projects.  While we were following industry best practices as recommended by governing bodies such as the Project Management Institute (PMI) and the Software Engineering Institute (SEI), we still had too many projects that were considered failures or took too long to provide value back to the business.  I quickly discovered Agile software development as a possible solution by reading several books and attending local user groups listening to those that had tried the practices.  While I didn’t understand everything I needed to know about the practices, I was eager to get started and see some of the benefits that have been obtained by other teams that have adopted Agile.</p>
<p>However, we were really struggling with the adoption of these practices. We lacked the experience needed to implement the practices successfully and didn’t know how and where to make improvements.  We also had many people resistant over the changes because they didn’t see the value and long term vision of why these new practices should be adopted. Like many companies I have seen who take this approach, many had decided after some time that Agile cannot work in “our organization” and was only good in “theory and not in practice”. They were ready to call it a failure and go back to what they were comfortable with. However, I know we still had the same problems that have plagued many organizations – projects were taking too long, deliverables didn’t meet end user expectations, and we cut corners on quality to avoid going over budget and missing deadlines dictated by the business.  I wasn’t ready to give up quite yet, but knew something was missing in our approach.</p>
<p>Needing help, I sought some advice from those outside of the organization that had been successful in applying Agile. What I discovered was we were too focused on HOW to apply the practices without understand WHY we were using them. We needed some guidelines to help us understand why we were implementing practices to better understand where we can make improvements and still achieve the anticipated results. As I work with teams and organizations new to Agile, I find that not many have thought about implementing Agile this way.  They figure they just need a process methodology, a tool, and a mandate from upper management that we are going “Agile” and everything should come together. That will put you quickly on the road to failure.</p>
<p>Teams need to understand the overarching goals, values and principles that will guide them in their adoption and constant improvement of valuable Agile practices.  Fortunately, the Agile Manifesto (<a href="http://www.agilemanifesto.org">www.agilemanifesto.org</a>) provides these elements.  Let’s explore the Manifesto in more detail.  The goal is simply stated, “<em>We are uncovering better ways of developing software by doing it and helping others do it.</em>”  On its own, the goal is too vague without having more clarification through values and principles.  Let’s read on, “<em>Through this work we come to value: individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; and responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more.</em>”  Now, we have more of a framework around four critical areas: Communication, Delivery, Collaboration and Learning.</p>
<p>While I had read the Agile Manifesto early on in my learning about Agile, I had not realized that there was another part of the Manifesto that usually was not contained in the books and other resources.  There are twelve principles (on right, with more details at  <a href="http://agilemanifesto.org/principles.html">http://agilemanifesto.org/principles.html</a>) that were also developed to help teams understand the why’s of implementing the various practices that have been developed.  Given that Agile is considered an empirical process for continual learning, those responsible for developing the Agile Manifesto wanted to make sure people had some specific guidelines in how they implement, inspect and adapt the practices in their organization.  While I have seen specific practices change over the years, I find that these principles have endured the test of time and can be applied against any process, policy, activity, artifact, or tool to determine if the expected outcomes will be achieved.</p>
<p>Looking back, I knew we were at a critical point and could have made the (easy) decision to go back to our old ways or create a new methodology that would eventually been a failure.  We would not have been successful in our adoption of Agile had it not been for seeking outside help from a person who was experienced and could help us focus on results as guided by unchanging goals, values and principles. Now, when I train and coach teams that are adopting Agile I start with introducing them to the Agile Manifesto and encourage them to put them up in their cubicles or in their team area.  As they try to adapt Agile to fit their organization, they can use the Manifesto as a test to see if the improvement will get the anticipated results and make necessary changes if the test fails.  If you are unsure where to go next, seek help from an outside coach as I did that can help you get on the right path and gets the results you are looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/sangel/understanding-the-whys-of-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Agile Team is an Engine</title>
		<link>http://www.bigvisible.com/asroka/an-agile-team-is-an-engine/</link>
		<comments>http://www.bigvisible.com/asroka/an-agile-team-is-an-engine/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 05:13:04 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=902</guid>
		<description><![CDATA[[In a private email discussion with the other BigVisible coaches I came up with the following metaphor. I thought it might be of general interest, so I'm reproducing it here with a few small edits.] 
An Agile team is like an engine. An engine needs four basic things to work well:

 Feed it lots of [...]]]></description>
			<content:encoded><![CDATA[<p><em>[In a private email discussion with the other BigVisible coaches I came up with the following metaphor. I thought it might be of general interest, so I'm reproducing it here with a few small edits.] </em></p>
<p>An Agile team is like an engine. An engine needs four basic things to work well:</p>
<ol>
<li> Feed it lots of fuel and air at the right moment.</li>
<li> Ignite the fuel and air at the right moment to generate power.</li>
<li> Transfer power to the drive line to do some useful work.</li>
<li> Remove waste gasses at the right moment to maintain volumetric efficiency on the next stroke.</li>
</ol>
<p>Agile teams need similar things:</p>
<ol>
<li> Feed them valuable ideas to implement <em>at the right moment.</em></li>
<li> Implement high-quality software at the right moment to realize value.</li>
<li> Transfer that value out to the customer so that they can do their work.</li>
<li> Receive feedback at the right moment to maintain the delivery of value on the next iteration.</li>
</ol>
<p>Extending the metaphor:</p>
<ul>
<li> Scrum is a bigger engine. It is theoretically capable of generating higher output, <em>if</em> you give it all of the things above.</li>
<li>XP (or &#8220;technical practices&#8221; if you prefer) is a well tuned ignition system. You need it to maximize efficiency and clean power output.</li>
<li> Kanban says, &#8220;Find the bottleneck and eliminate it.&#8221; That is great advice (For engines too) but maybe not specific enough to tell us how to make a Civic beat a Ferrari. <em>[Note: I deliberately diminished the importance of finding and eliminating bottlenecks here. To be clear, I think it is one of the most important skills a coach (or engine builder) can have.]</em></li>
<li> Effective product ownership and related business practices are your intake plenum. The fastest way to sap an engine&#8217;s power is to starve it here (That&#8217;s why they call it the &#8220;throttle.&#8221;)</li>
<li> Your direct line to your customer is like your exhaust system. The tighter and twistier and more packed with crap it is the less power you will get.</li>
</ul>
<p>To go fast you need all of these parts to work together. So, start with a bigger engine. Sure, why not? Start with more efficient spark. Sure, why not? If you want to get faster you&#8217;ve got to understand the whole system, and it more or less doesn&#8217;t matter where you start.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/an-agile-team-is-an-engine/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>There is more to Done than we know about.</title>
		<link>http://www.bigvisible.com/mdwyer/there-is-more-to-done-than-we-know-about/</link>
		<comments>http://www.bigvisible.com/mdwyer/there-is-more-to-done-than-we-know-about/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 18:33:26 +0000</pubDate>
		<dc:creator>Mike Dwyer</dc:creator>
				<category><![CDATA[Agile Adoption]]></category>
		<category><![CDATA[No Tags]]></category>
		<category><![CDATA[agile transformation]]></category>
		<category><![CDATA[enterprise agile]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=866</guid>
		<description><![CDATA[Since the Agile Community is looking to manufacturing for so much wisdom these days, let&#8217;s look at what Done means when spoken by a manufacturing professional.  First there is Done at a workcenter, meaning what I built there meets a predefined acceptance criteria that apply to one some or all of the parts made there.  [...]]]></description>
			<content:encoded><![CDATA[<p>Since the Agile Community is looking to manufacturing for so much wisdom these days, let&#8217;s look at what Done means when spoken by a manufacturing professional.  First there is Done at a workcenter, meaning what I built there meets a predefined acceptance criteria that apply to one some or all of the parts made there.  In manufacturing, no part can be consider part of WIP unless it has met the acceptance criteria of the last workcenter it passed through. This is because manufacturing has a couple more definitions of Done that are more comparable to what we think of. Done can also refer to one of two very carefully specific definitions of done, both of benefit the on-line computer shoppers of the world.</p>
<p>First there is MEI which means Manufacturing End Item and represents all the components needed to make the final assembly of what you the customer order. Second there is the CEI or customer end item which is what you buy. These two terms are core to the shopping on the web.  When you select the stuff you want on your, iPhones,  personalized bathrooms, or your next auto all work because of MEI and CEI.  The choices you have for building your computer, like disks, and memory, different optical drives not to mention the skins you can wrap them in all reflect MEI&#8217;s or Manufacturing End Items.  They can be combined because of an extensive Quality integration effort that assures all the bits do fit and will work properly.  When they are stuck together they fill your order which defines DONE for your Customer End Item or CEI. So having multiple definitions of DONE can actually add value, as long as you pay attention to the quality needed to integrate all the parts at the end.</p>
<p>Don&#8217;t worry, manufacturing has kept up with the times as more and more manufacturing has taken to Modular Manufacturing. In fact in this global economy entire manufacturing systems are designed to be modular so that not only the parts are broken into smaller and smaller levels of DONE but so are the manufacturing steps.  For those interested see &#8220;A hybrid methodology for synthesis of Petri net models for manufacturing systems&#8221;(http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=143353). So in a very real sense the high tech geek world we live in is about three generations behind the guys on the factory floor because most of what they are doing to determine discrete points of Done is to base it on measurable value  Pretty cool huh?  Oh yeah they have been using some form of a task board and dependent demand planning  in a pull mode (AKA Kanban) for about 500 years.</p>
<p>Now to make this happen each step has its own QA, QC and Test criteria, patterns and harnesses. This means that if someone down stream figures  a way to get folks to want people a choice in the type of metal used in their iPhone 8 antenna, the manufacturing step that makes the antenna will be ready to provision the web page where people choose the metal for the antenna &#8211; and the time to market will be the speed at which you can key in the changes to the web page.</p>
<p>So how close are we &#8211; software &#8211; are becoming the choke point in this whole innovation stream? We could be, if we insist on  sticking with what we are comfortable and wait to the end of the cycle to get the work tested and then have problems logged; wait until the next meeting to get needed changes through some form of CCB; wait for an optimally utilized Product Owner to have time to  approve the work, and then have to wait in line while an understaffed and over committed QA group hand crafts test cases 12 timezones away to start this cycle all over again.</p>
<p>If however we develop defined criteria for each step of the process and, like the modular manufacturing world, base our breakdown on what is valuable to the &#8216;on-line&#8217; shopper mindset.  Who knows what could happen?  Perhaps discussion that don&#8217;t get into what done is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/mdwyer/there-is-more-to-done-than-we-know-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Learning</title>
		<link>http://www.bigvisible.com/asroka/agile-learning/</link>
		<comments>http://www.bigvisible.com/asroka/agile-learning/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 01:53:34 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=888</guid>
		<description><![CDATA[Jerry Weinberg commented on my last post regarding the Definition of Done saying that we aren&#8217;t really done until we have stopped. When pressed further he said that even delivering to production was insufficient, because we might get it wrong, and if we get it wrong we aren&#8217;t really &#8220;done.&#8221;
Of course, he&#8217;s absolutely right, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.geraldmweinberg.com/Site/Home.html">Jerry Weinberg</a> commented on my last post regarding the <a href="http://www.bigvisible.com/asroka/definition-of-done/">Definition of Done</a> saying that we aren&#8217;t really done until we have stopped. When pressed further he said that even delivering to production was insufficient, because we might get it wrong, and if we get it wrong we aren&#8217;t really &#8220;done.&#8221;</p>
<p>Of course, he&#8217;s absolutely right, and it leads nicely to one of my favorite topics that I&#8217;ve been wanting to blog about:</p>
<p>Agile software development is about learning. We work from a premise that the final solution is not known (or knowable) until we have delivered it, and that, therefore, we must collaborate with customers to build and define a working solution incrementally. Along the way we learn about the problem space that we are exploring and we incorporate that knowledge and our own expertise to drive towards a <a href="http://en.wikipedia.org/wiki/Heuristic">heuristic</a> solution.</p>
<p>That may seem obvious, but it has an interesting implication. All software development processes/methodologies tend to obsess over the question of how much we can get done per unit time. However, if we know that we are engaged in learning, and we understand that learning means sometimes getting it wrong in order to adjust and get it right, then how much we can do is the wrong question. The right question is how long does it take before we can find out that we are wrong. In other words, what is the delay before our next opportunity to learn?</p>
<p>Scrum&#8217;s notion of &#8220;Done&#8221; is not really about being done, but about getting to the point where we can get real feedback to learn from. The same is true for the Lean notion of &#8220;Cycle Time.&#8221; Each cycle is an opportunity to learn. If there is any chance that we will get it wrong then we need at least two cycles. In fact, the likelihood that we will ever get it right is directly related to the number of opportunities we have to learn before we stop. I&#8217;ll let you chew on that for a while.</p>
<p>[<em>Note: the assertion in the last paragraph originally said that the likelihood of getting it right within some period of time was inversely related to the length of our learning cycles. Hopefully, the way I wrote it above is somewhat clearer. The notion of keeping learning cycles small is a natural and important consequence of the above. You will hear more from me about that at some point.</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/agile-learning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Definition of Done</title>
		<link>http://www.bigvisible.com/asroka/definition-of-done/</link>
		<comments>http://www.bigvisible.com/asroka/definition-of-done/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 04:29:12 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=882</guid>
		<description><![CDATA[One slightly peculiar question that comes up over and over again with new Scrum teams is: what is the definition of done? And, how do we determine what our team definition of done is?
It is a peculiar question, because if we weren&#8217;t practicing Scrum the answer would be obvious. In fact, the Lean and Extreme [...]]]></description>
			<content:encoded><![CDATA[<p>One slightly peculiar question that comes up over and over again with new Scrum teams is: what is the definition of done? And, how do we determine what our team definition of done is?</p>
<p>It is a peculiar question, because if we weren&#8217;t practicing Scrum the answer would be obvious. In fact, the Lean and Extreme Programming communities more or less agree on what &#8220;done&#8221; means without any real discussion: Done == deployed in production, in the hands of real customers.</p>
<p>When Scrum folks talk about the &#8220;Definition of Done,&#8221; however, they mean something slightly different. There is an important assumption here: software can reach an intermediate state called &#8220;done&#8221; where it is not yet &#8220;released,&#8221; but is &#8220;potentially shippable.&#8221;</p>
<p>Potentially shippable is an equally peculiar idea. In theory it ought to mean that to release or not to release is purely a business decision at this point. The software is complete, accepted, and tested, but it is not released. In practice it often means that the main development activities have been completed but there is some amount of intangible work to be done that may or may not fit inside of a Sprint (e.g. QA testing, deployment to various environments, formal release process, etc.) This is a poor, but common, way to address the &#8220;Definition of Done.&#8221;</p>
<p>Potentially shippable software is actually a useful idea. From a technical excellence point of view the goal should be continuous delivery, but from a business perspective continuous delivery might not be feasible. In fact, in some domains big-bang delivery actually has inherent value (e.g. any COTS, especially commercial games, and various forms of online media.) [actually, even in those environments continuous delivery is useful, but only after the initial release hits its date...] What we want is for continuous delivery to be attainable, so that it becomes a business decision not to do it. Thus, XP has long had the concept of always releasable software.</p>
<p>So, how do Scrum teams define done? I suppose the real answer is, however they want to, but I suggest the following: Start with everything that it would take to release the software to production. Then, to the extent that it is infeasible to do all that stuff, scale back to something that can be accomplished within a Sprint. Then, continuously improve (i.e. inspect and adapt) until the definition is once again everything that it would take to release the software to production.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/definition-of-done/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What is Test-Driven Development?</title>
		<link>http://www.bigvisible.com/asroka/what-is-test-driven-development/</link>
		<comments>http://www.bigvisible.com/asroka/what-is-test-driven-development/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 00:05:18 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=871</guid>
		<description><![CDATA[This question has been at the forefront of several conversation I have had lately both with highly experienced Agile coaches and with new, interested parties at the client. The question has been answered many times from many different points of view, and most of us who have been around Agile for a while think we [...]]]></description>
			<content:encoded><![CDATA[<p>This question has been at the forefront of several conversation I have had lately both with highly experienced Agile coaches and with new, interested parties at the client. The question has been answered many times from many different points of view, and most of us who have been around Agile for a while think we know what it is. There are a few misconceptions out there, though, and I want to clear the air. So, what is TDD, really?</p>
<p>Test-Driven Development is a disciplined approach to software design that provides a mechanism for programmers to create working software in tiny increments of no more than a few lines at a time. The reason that this is important is that Agile approaches to software development more or less require us to deliver working software in small increments that fit inside a two-week iteration (give or take.) In order to have working software that meets some customer need in such a short time frame we need a way to create even smaller increments of software, see them work, build a little more, see that work, etc., and improve the design as we go so that we don&#8217;t create a mess.</p>
<p>The way that Test-Driven Development accomplishes this is by leaning on unit testing frameworks to build a tiny test that specifies a tiny increment of behavior. We write that test before we have written the production code that will make that test pass. Then we write the code, taking care to do no more than is absolutely necessary to make our test pass. Finally, we take a step back and look for indications that our design could be improved, the main one being duplication that is created by bits of code that do or say much the same thing. When we see such duplication we refactor it using techniques and tools that allow us to change the code safely without breaking the test.</p>
<p><a title="TDD Cycle" rel="lightbox[pics871]" href="http://www.bigvisible.com/wp-content/uploads/2010/08/TDD.png"><img class="attachment wp-att-874 alignleft" src="http://www.bigvisible.com/wp-content/uploads/2010/08/TDD.png" alt="TDD Cycle" width="150" height="125" /></a></p>
<p>We repeat this process over and over. Each cycle takes no more than a minute or two, and each cycle builds incrementally on top of the prior ones until we have created some working feature that the customer has asked for. All the while we are seeing all of the small increments we have built work, via the tests. All the while we are seeking and exploiting small opportunities to improve and simplify the design of the code. And, in the end we have demonstrable, working software that is capable of filling some customer need. All we have to do is integrate and deploy it and we can safely move on to the next thing on our list.</p>
<p>That is more or less it. So, now that we have talked about what Test-Driven Development is, let&#8217;s take a moment to discuss what it is not:</p>
<p>Test-Driven Development is not about testing, not really. The purpose of tests is to verify the quality and functionality of software. The purpose of what we are doing is to set an expectation of what we need to do next and have a way to quantify when that expectation has been met. We get verification as a result. That is: later we can run the tests and see them pass and be assured that no regression has happened (At least in the behavior that we specified.) But, that is not the goal that we set out with. We set out with the goal of driving small increments of code that actually work. We needed a way to define what those small increments were, and the test framework gave us a harness in which to run tiny increments of code, set expectations about how the code would work, and see those expectations satisfied.</p>
<p>It is important to realize that Test-Driven Development is not about testing, or quality, because it is important to realize that quality is not achieved through TDD alone. Several studies have shown that software produced with TDD tends to have less bugs, but that is a side-effect of TDD and not the goal per se. In order to have quality we need to be able to verify that the software works the way the customer intends. We need a way to verify that it looks good, is usable, accomplishes work that the customer needs it to do, performs adequately, is free from obvious defects, etc. Test-Driven Development is not about these things.</p>
<p>Quality, in Agile, is achieved by working in small increments, by collaborating to set clear expectations up front, by using Test-Driven Development to build the software, and by performing various kinds of testing to assure that the product meets the goals we set early and continuously throughout the process. Test-Driven Development is only about how we build the software. We need other techniques to assure that the software meets our customers&#8217; needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/what-is-test-driven-development/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Scrum is a Silver WHAT and you want to put it WHERE?</title>
		<link>http://www.bigvisible.com/mdwyer/scrum-is-a-silver-what-and-you-want-to-put-it-where/</link>
		<comments>http://www.bigvisible.com/mdwyer/scrum-is-a-silver-what-and-you-want-to-put-it-where/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 14:10:55 +0000</pubDate>
		<dc:creator>Mike Dwyer</dc:creator>
				<category><![CDATA[Agile Adoption]]></category>
		<category><![CDATA[Agile Coaching]]></category>
		<category><![CDATA[No Tags]]></category>
		<category><![CDATA[agile transformation]]></category>
		<category><![CDATA[leadership]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=856</guid>
		<description><![CDATA[Scrum is Not a silver bullet, Scrum is a silver mirror”.]]></description>
			<content:encoded><![CDATA[<p>I really enjoy leading public CSM classes.  The intensity and focus the participants bring is a blast of pure, cool, oxygen that invigorates me.</p>
<p>For example, the most recent class was very intense with the team asking me some really hard and crucial questions.  Then they dropped the bomb. “Hey Mike, you act like Scrum is a Silver Bullet.”   Arghhh! I HATE THAT.  I don’t know how many times people get that impression and how many times I have repeated the litany, “Scrum doesn’t solve anything it shows you what is happening in your organization”.  Well not this time.  What jumped from my lips was “Scrum is Not a silver bullet, <strong><em>Scrum is a </em><em>silver mirror!</em></strong>”.</p>
<p>The next day, one of the class members reported out that my ‘catch phrase’ had really worked.</p>
<p>Huh?  The class was right behind me in asking for an explanation.</p>
<p>It seems he left the class last night and went back to work (we are such a bunch of OCD wonks) where is boss was talking about Scrum not being the Silver bullet he, the boss, had expected.  Our teammate then popped the phrase &#8220;Scrum is Not a silver bullet, it is a silver mirror!”.  This stopped the boss in his tracks as he realized that Scrum was just that, a high definition reflection of all the things that were actually going on. And if memory serves the attendee went on to say the conversation  went from Scrum not meeting expectations to  what was coming off the mirror.</p>
<p>The class, being a great one, started kicking this around.  One of the comments emerged from someone saying “Talk to the hand” and became “<em><strong>talk to the silver mirror in my hand</strong></em>”.</p>
<p>Maybe a good ScrumMaster is a person who can have people talk to the mirror in their hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/mdwyer/scrum-is-a-silver-what-and-you-want-to-put-it-where/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Should We Build It Again?</title>
		<link>http://www.bigvisible.com/asroka/should-we-build-it-again/</link>
		<comments>http://www.bigvisible.com/asroka/should-we-build-it-again/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 22:15:31 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=851</guid>
		<description><![CDATA[George pointed out that sometimes we have to rebuild systems. Sometimes they just aren&#8217;t that good. Sometimes the technology we are using is out-of-date and no longer supported. Sometimes we need to add functionality, and the design is just so bad that we can&#8217;t figure out how to add it.
My previous post about re-engineering did [...]]]></description>
			<content:encoded><![CDATA[<p><a title="George Schlitz" href="http://www.bigvisible.com/author/gschlitz/">George</a> pointed out that sometimes we have to rebuild systems. Sometimes they just aren&#8217;t that good. Sometimes the technology we are using is out-of-date and no longer supported. Sometimes we need to add functionality, and the design is just so bad that we can&#8217;t figure out how to add it.</p>
<p>My previous post about <a title="Agile and Re-engineering" href="http://www.bigvisible.com/asroka/agile-and-re-engineering/">re-engineering</a> did not discuss what to do in these circumstances. I would recommend the following:</p>
<ol>
<li>Think really hard about it: is there a value proposition here? Or does the existing product do what we need it&#8217;s just not that great? Think about it again.</li>
<li>If you are certain that there is value then start a new project to replace the existing product.</li>
<li>This is the most important step. Forget everything about the existing product. Eliminate it from your brain.</li>
<li>Develop the new product in the Agile way. Find out what the customer wants to do and build software that enables them to do it. Do it incrementally and get as much feedback as you can.</li>
<li>Always, always challenge your assumptions. It is tempting to assume that the product has to work like the old one, or that you should do something that you wanted to do in the old one but never did. Forget it. Build what the customer needs.</li>
</ol>
<p>It is worth repeating (again) that this is not a situation to enter lightly. You already have a product that is designed to meet this need. There is a real good chance you are throwing good money after bad. However, if you are going to do it, do it right &#8212; forget what you think you know. Start from the beginning. Learn at every turn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/should-we-build-it-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile and Re-Engineering</title>
		<link>http://www.bigvisible.com/asroka/agile-and-re-engineering/</link>
		<comments>http://www.bigvisible.com/asroka/agile-and-re-engineering/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 21:38:35 +0000</pubDate>
		<dc:creator>asroka</dc:creator>
				<category><![CDATA[No Tags]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=842</guid>
		<description><![CDATA[Agile software development is really a product development strategy. Scrum has its origins in product development.  If you read the Agile Manifesto there are all sorts of hints that we are talking about developing software as a product that is valuable to some known customer.  That is product development.
Re-engineering is the activity of changing (hopefully [...]]]></description>
			<content:encoded><![CDATA[<p>Agile software development is really a product development strategy. Scrum has its <a title="history of Scrum" href="http://en.wikipedia.org/wiki/Scrum_(development)#History">origins </a>in product development.  If you read the <a title="priciples behind the Agile Manifesto" href="http://agilemanifesto.org/principles.html">Agile Manifesto</a> there are all sorts of hints that we are talking about developing software as a product that is valuable to some known customer.  That is product development.</p>
<p>Re-engineering is the activity of changing (hopefully to improve) the structure and design of software. It is distinct from refactoring which is a <a title="refactoring" href="http://www.refactoring.com/">specific technique</a>. Refactoring can be used to re-engineer, but it can also be used to incrementally improve the design as we add new capabilities. Re-engineering does not have to follow the contract of refactoring (small incremental design changes that preserve observable behavior.) In fact, re-engineering is often done to improve a system by changing its behavior, but not necessarily its user functionality.</p>
<p>If the last sentence in the preceding paragraph doesn&#8217;t scare you then I have not yet done the job I intend to do.</p>
<p>Re-engineering is not product development, because it is not primarily concerned with creating useful functionality for customers. Re-engineering can be customer driven, but it tends to be somewhat indirectly customer driven. It tends to be concerned with things that are traditionally considered architectural properties: performance, scalability, security, quality, usability, consistency, etc.  The customer might be saying, &#8220;This app does what I need, but it is too slow.&#8221; Something like that may drive us to re-engineer.</p>
<p>Re-engineering is highly problematic from an Agile point of view. We are not producing functionality. We are not working from user facing stories. There may be business value to what we are doing (such as improving the performance of our application) but it is not directly measurable business value in most cases.</p>
<p>Re-engineering is also too often driven by technical concerns within the team (or its management). We didn&#8217;t build it as well as we wish we had. We have learned new things now, and we want to incorporate them.</p>
<p>Learning is the key. Agile is all about learning. The feedback mechanisms in Agile processes are designed to help us learn as we go. The intent is that we will apply this learning immediately rather than waiting until some future (&#8220;post mortem&#8221;) time to re-evaluate.</p>
<p>For a functional Agile team these learning mechanisms exist at multiple (somewhat redundant) levels: TDD has tiny learning cycles that are as small as a few seconds to a few minutes. Each time a test passes or fails we have learned something. Continuous Integration is a learning cycle (Especially if we have an <a title="Informative Build" href="http://www.bigvisible.com/asroka/informative-build/">Informative Build</a>.) When the build passes or fails we are meant to learn something. Stories, in the form of <a title="Card-Conversation-Confirmation" href="http://xprogramming.com/articles/expcardconversationconfirmation/">Card-Conversation-Confirmation</a> are learning cycles. Releases, and the consequent customer feedback, are learning cycles. Each time we do these things we learn, and each time we learn we are meant to <strong>immediately </strong>attempt to improve.</p>
<p>Re-engineering is a poor business proposition. We are spending additional money on a product that is already functional. The return on that investment is hard to anticipate. We can tell the customers that we have improved the product in some ways that they may or may not be able to appreciate (or even notice.) Therefore, the risk is very high, and the best case outcome is the the product does a slightly better job doing what it already does.</p>
<p>Agile is not compatible with re-engineering. Agile is an <em>alternative </em>to re-engineering. Agile expects us to refactor our design and to incorporate our changing understanding (i.e. learning) as we develop our product, not after the fact.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/asroka/agile-and-re-engineering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile Metrics and Diagnostics Presentation</title>
		<link>http://www.bigvisible.com/gmorein/agile-metrics-and-diagnostics-presentation/</link>
		<comments>http://www.bigvisible.com/gmorein/agile-metrics-and-diagnostics-presentation/#comments</comments>
		<pubDate>Mon, 31 May 2010 03:08:02 +0000</pubDate>
		<dc:creator>Giora Morein</dc:creator>
				<category><![CDATA[Agile Presentations]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.bigvisible.com/?p=838</guid>
		<description><![CDATA[I had a great time meeting a bunch of cool Agilists at the Agile Boston meeting on this past Wednesday night.  I had a chance to present on a topic I am particularly passionate about: Agile Metrics and Diagnostics.
The pdf of the presentation can be found here:
]]></description>
			<content:encoded><![CDATA[<p>I had a great time meeting a bunch of cool Agilists at the Agile Boston meeting on this past Wednesday night.  I had a chance to present on a topic I am particularly passionate about: Agile Metrics and Diagnostics.</p>
<p>The pdf of the presentation can be found <a href="http://www.bigvisible.com/wp-content/uploads/2010/05/BigVisible-Agile-Metrics-and-Diagnostics.pdf">here</a>:</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigvisible.com/gmorein/agile-metrics-and-diagnostics-presentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
