<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: What is Lean Product Development?</title>
	<atom:link href="http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/</link>
	<description>Essays on the Continuous Delivery of High Quality Information Systems</description>
	<pubDate>Tue, 07 Oct 2008 13:56:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Jay Packlick</title>
		<link>http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2267</link>
		<dc:creator>Jay Packlick</dc:creator>
		<pubDate>Fri, 28 Mar 2008 18:28:13 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2267</guid>
		<description>"Poetic anarchy" (a brilliant term) is clearly a bad thing where economic outcomes are a concern, but then so are standards that don't add value. The examples you cited generally DO tend to add value in most contexts (all the ones I've seen, but I haven't seen them all).    

Finding the balance between harnessing creativity and value added standards is a delicate balancing act requiring skill, understanding, and feedback; tilting too far in either direction results in waste. 

The mistake too many organizations make is drinking the Kool-Aid on the latest craze set of practices without taking the time to understand the underlying principles that made them work in the contexts in which they emerged. Adaptations are almost always needed.  Pair programming, for example, can pay off big in terms of productivity and quality however, slavishly followed as a standard it can lead to waste for some programming activities.  

For lean to be truly successful in an organization, it's leaders need to grasp the underlying principles so that they can be applied to maximize value in that organization's context (i.e. market goals, corporate culture, customers, geographic area, work-force distribution, types of systems, competition, etc.)  

Even fixed duration iterations are not sacrosanct; some of the more lean development organizations are evolving toward a more constant single-piece feature flow model of development. 

As a complete aside - the real breakthroughs in productivity possible in lean development I think will come more from optimizing the interactions between the different parts of the organization; sales, product management, marketing, customer support, development, delivery, IT, etc.  Yeah, there’ll always be more to optimize in the dev house - but restructuring interactions to promote pull and flow throughout the organization will provide opportunities for huge pay offs.  None of that's going to happen without a fundamental understanding of lean.</description>
		<content:encoded><![CDATA[<p>&#8220;Poetic anarchy&#8221; (a brilliant term) is clearly a bad thing where economic outcomes are a concern, but then so are standards that don&#8217;t add value. The examples you cited generally DO tend to add value in most contexts (all the ones I&#8217;ve seen, but I haven&#8217;t seen them all).    </p>
<p>Finding the balance between harnessing creativity and value added standards is a delicate balancing act requiring skill, understanding, and feedback; tilting too far in either direction results in waste. </p>
<p>The mistake too many organizations make is drinking the Kool-Aid on the latest craze set of practices without taking the time to understand the underlying principles that made them work in the contexts in which they emerged. Adaptations are almost always needed.  Pair programming, for example, can pay off big in terms of productivity and quality however, slavishly followed as a standard it can lead to waste for some programming activities.  </p>
<p>For lean to be truly successful in an organization, it&#8217;s leaders need to grasp the underlying principles so that they can be applied to maximize value in that organization&#8217;s context (i.e. market goals, corporate culture, customers, geographic area, work-force distribution, types of systems, competition, etc.)  </p>
<p>Even fixed duration iterations are not sacrosanct; some of the more lean development organizations are evolving toward a more constant single-piece feature flow model of development. </p>
<p>As a complete aside - the real breakthroughs in productivity possible in lean development I think will come more from optimizing the interactions between the different parts of the organization; sales, product management, marketing, customer support, development, delivery, IT, etc.  Yeah, there’ll always be more to optimize in the dev house - but restructuring interactions to promote pull and flow throughout the organization will provide opportunities for huge pay offs.  None of that&#8217;s going to happen without a fundamental understanding of lean.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corey Ladas</title>
		<link>http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2262</link>
		<dc:creator>Corey Ladas</dc:creator>
		<pubDate>Tue, 25 Mar 2008 23:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2262</guid>
		<description>Hi Jay,

I agree that it would be possible to get carried away with standardizing development work and suffocating creativity, but creative engineering does not have to mean poetic anarchy.

Not all parts of the development process are equally creative, even for the most novel problem.  And not all software development problems are especially novel.  Most of the work that most developers do most of the time is significantly less novel than designing a new algorithm or a new molecule.  I tried to say as much with my &lt;a href="http://leansoftwareengineering.com/2008/02/15/the-spectrum-of-novelty/" target="_blank" rel="nofollow"&gt;spectrum of novelty&lt;/a&gt; post.

Even then, methods like TRIZ or Dijkstra's method of Correctness by Construction aim to make even inventive work somewhat regular and predictable.  Probabilistic methods like Pugh Concept Selection or Toyota's set-based development reduce variation through resource buffering, allowing wide variation for individuals, but narrow variation for the process as a whole.  Agile methods like user stories, planning poker, pair programming, and time-boxed iteration are also focused on reducing or controlling process variation.

One of the things we try to focus on is distinguishing things that have intrinsic variation from things that shouldn't.  For variation that is truly necessary, we do not seek to eliminate it, we only seek to control it.  The variation that we seek to eliminate is only of the unnecessary variety.  

There are all sorts of things that could be subject to standards that shouldn't constrain meaningful creativity.  Coding conventions, design rules, check-in procedures, test coverage targets, inspection procedures, and so on, are not the places to look for creative license.  Further, the Lean idea of standard work is not the blind following of a rule for once and for all.  Standards are the foundation of Kaizen, or continuous improvement, and you can't have one without the other.  A standard isn't the best way to do something forever.  It is only the best way that the team knows how to do something today.

We don't see Lean as being exemplary of manufacturing.  Lean and Kanban, as principles, apply to any work that has a natural sequence.  And as you suggest, processor scheduling is indeed a good place to look for inspiration in general scheduling problems, especially when you know what it is that you are optimizing for.  In our case that is almost always throughput.

The SEI's &lt;a href="http://www.sei.cmu.edu/tsp/" target="_blank" rel="nofollow"&gt;Team Software Process&lt;/a&gt; and Personal Software Process are very helpful in understanding the role that kaizen-style process standards can play in software development.
</description>
		<content:encoded><![CDATA[<p>Hi Jay,</p>
<p>I agree that it would be possible to get carried away with standardizing development work and suffocating creativity, but creative engineering does not have to mean poetic anarchy.</p>
<p>Not all parts of the development process are equally creative, even for the most novel problem.  And not all software development problems are especially novel.  Most of the work that most developers do most of the time is significantly less novel than designing a new algorithm or a new molecule.  I tried to say as much with my <a href="http://leansoftwareengineering.com/2008/02/15/the-spectrum-of-novelty/" target="_blank" rel="nofollow">spectrum of novelty</a> post.</p>
<p>Even then, methods like TRIZ or Dijkstra&#8217;s method of Correctness by Construction aim to make even inventive work somewhat regular and predictable.  Probabilistic methods like Pugh Concept Selection or Toyota&#8217;s set-based development reduce variation through resource buffering, allowing wide variation for individuals, but narrow variation for the process as a whole.  Agile methods like user stories, planning poker, pair programming, and time-boxed iteration are also focused on reducing or controlling process variation.</p>
<p>One of the things we try to focus on is distinguishing things that have intrinsic variation from things that shouldn&#8217;t.  For variation that is truly necessary, we do not seek to eliminate it, we only seek to control it.  The variation that we seek to eliminate is only of the unnecessary variety.  </p>
<p>There are all sorts of things that could be subject to standards that shouldn&#8217;t constrain meaningful creativity.  Coding conventions, design rules, check-in procedures, test coverage targets, inspection procedures, and so on, are not the places to look for creative license.  Further, the Lean idea of standard work is not the blind following of a rule for once and for all.  Standards are the foundation of Kaizen, or continuous improvement, and you can&#8217;t have one without the other.  A standard isn&#8217;t the best way to do something forever.  It is only the best way that the team knows how to do something today.</p>
<p>We don&#8217;t see Lean as being exemplary of manufacturing.  Lean and Kanban, as principles, apply to any work that has a natural sequence.  And as you suggest, processor scheduling is indeed a good place to look for inspiration in general scheduling problems, especially when you know what it is that you are optimizing for.  In our case that is almost always throughput.</p>
<p>The SEI&#8217;s <a href="http://www.sei.cmu.edu/tsp/" target="_blank" rel="nofollow">Team Software Process</a> and Personal Software Process are very helpful in understanding the role that kaizen-style process standards can play in software development.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Packlick</title>
		<link>http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2261</link>
		<dc:creator>Jay Packlick</dc:creator>
		<pubDate>Tue, 25 Mar 2008 21:53:25 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2007/12/20/what-is-lean-product-development/#comment-2261</guid>
		<description>I'm curious how you think one might go about applying the concept of standard work (and the elimination of variation) to development activities that by their nature are creative and uncertain exhibiting unpredictable durations. How does one standardize the work of developing a new OR algorithm or a new molecule? The answer is you don't; instead you optimize the system to accommodate the variation inherent in the process. If you're trying to apply standard work to the creative elements of development, that's not lean since by its nature – attempting to do so is wasteful. A much better model than manufacturing to look to for optimizing the development process is the modern computer operating system that does a darned good job of prioritizing and streamlining the flow of intrinsically unpredictable (and thus non-standard) work. In other words, embrace variation.  Seeing to eliminate it in development is quixotic.</description>
		<content:encoded><![CDATA[<p>I&#8217;m curious how you think one might go about applying the concept of standard work (and the elimination of variation) to development activities that by their nature are creative and uncertain exhibiting unpredictable durations. How does one standardize the work of developing a new OR algorithm or a new molecule? The answer is you don&#8217;t; instead you optimize the system to accommodate the variation inherent in the process. If you&#8217;re trying to apply standard work to the creative elements of development, that&#8217;s not lean since by its nature – attempting to do so is wasteful. A much better model than manufacturing to look to for optimizing the development process is the modern computer operating system that does a darned good job of prioritizing and streamlining the flow of intrinsically unpredictable (and thus non-standard) work. In other words, embrace variation.  Seeing to eliminate it in development is quixotic.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.565 seconds -->
