<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: What is Design for Six Sigma?</title>
	<atom:link href="http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/feed/" rel="self" type="application/rss+xml" />
	<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/</link>
	<description>Essays on the Continuous Delivery of High Quality Information Systems</description>
	<lastBuildDate>Wed, 01 Feb 2012 18:32:04 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Dustin</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-18260</link>
		<dc:creator>Dustin</dc:creator>
		<pubDate>Sun, 17 Apr 2011 19:14:24 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-18260</guid>
		<description>EDIT: I meant to say HIGH cohesion in the GRASP software principles. I knew something didn&#039;t sound right about that when I reread!</description>
		<content:encoded><![CDATA[<p>EDIT: I meant to say HIGH cohesion in the GRASP software principles. I knew something didn&#8217;t sound right about that when I reread!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dustin</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-18254</link>
		<dc:creator>Dustin</dc:creator>
		<pubDate>Sun, 17 Apr 2011 18:14:44 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-18254</guid>
		<description>Cory,

I am hugely regretful for not running across this sooner! I&#039;m also a software engineer thirsty for a better answer to quality management in software, and too have made connections to the quality management systems employed in automotive and other engineering disciplines. It also annoys me greatly that software development is not ubiquitously observed as an engineering discipline! At any rate, I share and commend your beliefs and ideas.

A couple general ideas though in response to &quot;probability of method being correctly applied&quot;: I think a lot of this is being solved through compiler innovations these days. Think templates in C++ or generics in C#. Also the notion of type inferencing and lambda expressions in both C# and now the C++0x standard, and the notion of co/contra-variance (think interface duality). Stuffing much of this down in the tooling allieviates both the expertise AND burden from the developer masses (if applied). Also, I&#039;ve just as surely you have found patterns and principles to be effective vessels of better quality. The only thing lacking would be proof through numbers. Food for thought. For example, in SOLID principles, low cohesion is observed to improve robustness through a software lifecycle, just no hard data to prove it (yet). 

On a more objective thought, the application of DFSS and the dreaded issue of data (or more abstractly, knowledge management) that Richard Durnall pointed out boils down to the tooling, I think. A data warehouse BI/OLAP approach to managing this data is the way to go. Then, you can manage your quality by shaping the grain of your Facts (what you want to measure), and let it continuously &quot;feed&quot; from the tooling output (IDE, compilers, build/test environments, etc). I also believe these &quot;facts&quot; will tie directly into the software methodology (some of which I would consider a component or subset of DFSS). Over time, I beleive the grain of the facts per the methodology will become apparent and just &quot;come&quot; with the tooling out of the box. Perhaps what we are talking about then would be a next-generation ALM system. (Whoever reads this and then builds one sucessfully - I have RIGHTS!)

Lastly, I see existing metrics in software such as in methodologies (e.g. story points), code metrics (maintainability index, cyclomatic complexity, class coupling, depth of inheritence, methods per interface/service, lines of code per method, parameters per method, types per component, etc), TDD (method pass/fail, test methods to product methods ratio) and so on to be actual contributors to DFSS metrics - effectively tying the entire SDLC together. 

I&#039;m curious about your thoughts about this and about DFSS for Software Engineering in general these days. Indeed I think the magnitude of this is much larger than most fathom, for software is silently spreading into the outer reaches of the universe - literally! Space craft, robotics, ECUs on cars, aircraft as you mention and perhaps one day nano-devices (which are little bros of classic robotics) - its everywhere.</description>
		<content:encoded><![CDATA[<p>Cory,</p>
<p>I am hugely regretful for not running across this sooner! I&#8217;m also a software engineer thirsty for a better answer to quality management in software, and too have made connections to the quality management systems employed in automotive and other engineering disciplines. It also annoys me greatly that software development is not ubiquitously observed as an engineering discipline! At any rate, I share and commend your beliefs and ideas.</p>
<p>A couple general ideas though in response to &#8220;probability of method being correctly applied&#8221;: I think a lot of this is being solved through compiler innovations these days. Think templates in C++ or generics in C#. Also the notion of type inferencing and lambda expressions in both C# and now the C++0x standard, and the notion of co/contra-variance (think interface duality). Stuffing much of this down in the tooling allieviates both the expertise AND burden from the developer masses (if applied). Also, I&#8217;ve just as surely you have found patterns and principles to be effective vessels of better quality. The only thing lacking would be proof through numbers. Food for thought. For example, in SOLID principles, low cohesion is observed to improve robustness through a software lifecycle, just no hard data to prove it (yet). </p>
<p>On a more objective thought, the application of DFSS and the dreaded issue of data (or more abstractly, knowledge management) that Richard Durnall pointed out boils down to the tooling, I think. A data warehouse BI/OLAP approach to managing this data is the way to go. Then, you can manage your quality by shaping the grain of your Facts (what you want to measure), and let it continuously &#8220;feed&#8221; from the tooling output (IDE, compilers, build/test environments, etc). I also believe these &#8220;facts&#8221; will tie directly into the software methodology (some of which I would consider a component or subset of DFSS). Over time, I beleive the grain of the facts per the methodology will become apparent and just &#8220;come&#8221; with the tooling out of the box. Perhaps what we are talking about then would be a next-generation ALM system. (Whoever reads this and then builds one sucessfully &#8211; I have RIGHTS!)</p>
<p>Lastly, I see existing metrics in software such as in methodologies (e.g. story points), code metrics (maintainability index, cyclomatic complexity, class coupling, depth of inheritence, methods per interface/service, lines of code per method, parameters per method, types per component, etc), TDD (method pass/fail, test methods to product methods ratio) and so on to be actual contributors to DFSS metrics &#8211; effectively tying the entire SDLC together. </p>
<p>I&#8217;m curious about your thoughts about this and about DFSS for Software Engineering in general these days. Indeed I think the magnitude of this is much larger than most fathom, for software is silently spreading into the outer reaches of the universe &#8211; literally! Space craft, robotics, ECUs on cars, aircraft as you mention and perhaps one day nano-devices (which are little bros of classic robotics) &#8211; its everywhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corey</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-7452</link>
		<dc:creator>Corey</dc:creator>
		<pubDate>Wed, 04 Aug 2010 21:18:04 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-7452</guid>
		<description>Hi Clint,

Complex software is not at all deterministic. The code might not change over time (not always a reasonable assumption), but the execution of code can vary in unpredictable ways. Think of the Mandelbrot Set, generated by the simplest of programs:

  Zn+1 = (Zn)^2 + C

Some algorithms and program structures are intrinsically non-deterministic. A goodly chunk of Computer Science has been devoted to distinguishing which ones *are* deterministic.  Multi-process programs are especially difficult to design and verify, and the history of software engineering is littered with the corpses of expensive systems brought down by obscure race conditions.

Software always operates as part of a system, and noise can come from the analog part of the system i.e. the physical components that the software depends upon. Noise also comes from the operating environment. Software interacts with the world through inputs and outputs which are subject to the variation of the analog world.  Software is designed to act upon data it expects, and can behave badly in response to data it doesn&#039;t expect.

Probabilistic methods have been used in software design and verification since at least the 1960s.  Software systems are often designed and tested in controlled environments that do not accurately model the conditions of the real world.  Robust design techniques can be used to write more realistic specifications and discover unexpected interactions between the parts of a system.

tl;dr:

* Ideal programs running on ideal computers in an imperfect environment can be nondeterministic.
* Ideal programs running on imperfect computers in an ideal environment can be nondeterministic.
* Ideal programs running on ideal computers in an ideal environment can still be nondeterministic.
</description>
		<content:encoded><![CDATA[<p>Hi Clint,</p>
<p>Complex software is not at all deterministic. The code might not change over time (not always a reasonable assumption), but the execution of code can vary in unpredictable ways. Think of the Mandelbrot Set, generated by the simplest of programs:</p>
<p>  Zn+1 = (Zn)^2 + C</p>
<p>Some algorithms and program structures are intrinsically non-deterministic. A goodly chunk of Computer Science has been devoted to distinguishing which ones *are* deterministic.  Multi-process programs are especially difficult to design and verify, and the history of software engineering is littered with the corpses of expensive systems brought down by obscure race conditions.</p>
<p>Software always operates as part of a system, and noise can come from the analog part of the system i.e. the physical components that the software depends upon. Noise also comes from the operating environment. Software interacts with the world through inputs and outputs which are subject to the variation of the analog world.  Software is designed to act upon data it expects, and can behave badly in response to data it doesn&#8217;t expect.</p>
<p>Probabilistic methods have been used in software design and verification since at least the 1960s.  Software systems are often designed and tested in controlled environments that do not accurately model the conditions of the real world.  Robust design techniques can be used to write more realistic specifications and discover unexpected interactions between the parts of a system.</p>
<p>tl;dr:</p>
<p>* Ideal programs running on ideal computers in an imperfect environment can be nondeterministic.<br />
* Ideal programs running on imperfect computers in an ideal environment can be nondeterministic.<br />
* Ideal programs running on ideal computers in an ideal environment can still be nondeterministic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clint</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-7446</link>
		<dc:creator>Clint</dc:creator>
		<pubDate>Wed, 04 Aug 2010 13:05:27 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-7446</guid>
		<description>Hi Corey,

I found this through a Google search and at first I thought I was on the wrong page and then I though I was going to have something negative to say in response. But then I realised that this was all about software. 

My interest in Robust design, DFSS and such is within the context of engineering design (mechanical, civil, electrical etc.). Within that context I have always thought of noise as being things like manufacturing operation randomness, wear, temperature changes and stuff like that. I always thought of software as being more precise. It&#039;s not like the program comes out a little different each time it is copied or the code changes with time. So I am really fascinated by the application of methods that I think of as being probabilistic (robust design especially) in the software area. What is the randomness or uncertainty that you normally need to be robust against when developing software?</description>
		<content:encoded><![CDATA[<p>Hi Corey,</p>
<p>I found this through a Google search and at first I thought I was on the wrong page and then I though I was going to have something negative to say in response. But then I realised that this was all about software. </p>
<p>My interest in Robust design, DFSS and such is within the context of engineering design (mechanical, civil, electrical etc.). Within that context I have always thought of noise as being things like manufacturing operation randomness, wear, temperature changes and stuff like that. I always thought of software as being more precise. It&#8217;s not like the program comes out a little different each time it is copied or the code changes with time. So I am really fascinated by the application of methods that I think of as being probabilistic (robust design especially) in the software area. What is the randomness or uncertainty that you normally need to be robust against when developing software?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corey Ladas</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1715</link>
		<dc:creator>Corey Ladas</dc:creator>
		<pubDate>Thu, 10 Jan 2008 11:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1715</guid>
		<description>Hello Rob, 

Thank you for your comment, and welcome!

For the most part, I&#039;m talking about software products and services, and I should emphasize that I&#039;m talking about applying methods that are associated with DFSS in the service of evolutionary design.  Meaning that phases like Optimize are overlapping and continuous, prototypes are continuously built in testing and staging environments, and design improvements are continuously released into production as long as it remains profitable to do so.

From my point of view, evolutionary design is the goal, and DFSS provides a useful box of tools in service of that goal.  How to manage evolutionary design is what we spend most of our time talking about here :)</description>
		<content:encoded><![CDATA[<p>Hello Rob, </p>
<p>Thank you for your comment, and welcome!</p>
<p>For the most part, I&#8217;m talking about software products and services, and I should emphasize that I&#8217;m talking about applying methods that are associated with DFSS in the service of evolutionary design.  Meaning that phases like Optimize are overlapping and continuous, prototypes are continuously built in testing and staging environments, and design improvements are continuously released into production as long as it remains profitable to do so.</p>
<p>From my point of view, evolutionary design is the goal, and DFSS provides a useful box of tools in service of that goal.  How to manage evolutionary design is what we spend most of our time talking about here <img src='http://leansoftwareengineering.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1714</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Thu, 10 Jan 2008 08:41:21 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1714</guid>
		<description>When implementing DFSS it is important to make the distinction between what you are actually designing. Is it a process, a service or a product?

While new process design may involve only a few of the organization’s functions or departments, the design of a new product or a new service has stakeholders throughout the company’s value creation process. Additionally, if errors or omissions in product design data are not addressed early, more costly changes are required later in the product development process.

The difference between product and service development is the level of detail and complexity mainly in the Optimize phase of the DFSS project. In product design projects, the Optimize phase is the phase when the design “becomes real.” First prototypes will be built; data must be collected on tangibles even if simulating the processes.

Advanced DFSS programs include a number of tools for the Optimize phase mainly for product design. Typical Six Sigma tools such as design of experiments may be advanced by robust design principles or mixture design concepts. It is however, critical to choose the right tool at the right time. This becomes especially important if Six Sigma is run in conjunction with Lean as sometimes stakeholders can become confused.

Some organizations consider going for Design for Six Sigma right away and not starting with process improvement (DMAIC). This seems attractive: DMAIC always means searching for problems that can be solved – and a lot of organizations (responsible persons?) do not want to admit to having problems.

Nevertheless, there are a number of good reasons for starting with DMAIC even in a creative or engineering environment: Budget-effective financial savings can be reported within a limited time frame, a number of projects can be executed simultaneously and internal success stories can be created, proving that Six Sigma works here!</description>
		<content:encoded><![CDATA[<p>When implementing DFSS it is important to make the distinction between what you are actually designing. Is it a process, a service or a product?</p>
<p>While new process design may involve only a few of the organization’s functions or departments, the design of a new product or a new service has stakeholders throughout the company’s value creation process. Additionally, if errors or omissions in product design data are not addressed early, more costly changes are required later in the product development process.</p>
<p>The difference between product and service development is the level of detail and complexity mainly in the Optimize phase of the DFSS project. In product design projects, the Optimize phase is the phase when the design “becomes real.” First prototypes will be built; data must be collected on tangibles even if simulating the processes.</p>
<p>Advanced DFSS programs include a number of tools for the Optimize phase mainly for product design. Typical Six Sigma tools such as design of experiments may be advanced by robust design principles or mixture design concepts. It is however, critical to choose the right tool at the right time. This becomes especially important if Six Sigma is run in conjunction with Lean as sometimes stakeholders can become confused.</p>
<p>Some organizations consider going for Design for Six Sigma right away and not starting with process improvement (DMAIC). This seems attractive: DMAIC always means searching for problems that can be solved – and a lot of organizations (responsible persons?) do not want to admit to having problems.</p>
<p>Nevertheless, there are a number of good reasons for starting with DMAIC even in a creative or engineering environment: Budget-effective financial savings can be reported within a limited time frame, a number of projects can be executed simultaneously and internal success stories can be created, proving that Six Sigma works here!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corey Ladas</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1697</link>
		<dc:creator>Corey Ladas</dc:creator>
		<pubDate>Tue, 08 Jan 2008 19:46:38 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1697</guid>
		<description>Thanks Eric :)  

Different parts of DFSS will straddle conventional software stages, some parts go to analysis, some to design, some to test.  I dropped a hint about DFSS kanban in this post:

http://leansoftwareengineering.com/2007/10/31/spreadsheet-example-for-a-small-kanban-team/

I promise I&#039;ll revisit the workflow/kanban topic ;)</description>
		<content:encoded><![CDATA[<p>Thanks Eric <img src='http://leansoftwareengineering.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   </p>
<p>Different parts of DFSS will straddle conventional software stages, some parts go to analysis, some to design, some to test.  I dropped a hint about DFSS kanban in this post:</p>
<p><a href="http://leansoftwareengineering.com/2007/10/31/spreadsheet-example-for-a-small-kanban-team/" rel="nofollow">http://leansoftwareengineering.....nban-team/</a></p>
<p>I promise I&#8217;ll revisit the workflow/kanban topic <img src='http://leansoftwareengineering.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Landes</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1691</link>
		<dc:creator>Eric Landes</dc:creator>
		<pubDate>Tue, 08 Jan 2008 13:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1691</guid>
		<description>Corey, extremely interesting post.  While I work in a manufacturing company, I haven&#039;t been exposed to Six Sigma in Practice yet.  I&#039;d love to hear how you are implementing these principles within your software projects.  Specifically how these principles happen within the project (Silos in Kanban, just part of a Silo named design?).  Thanks, keep up the interesting work.</description>
		<content:encoded><![CDATA[<p>Corey, extremely interesting post.  While I work in a manufacturing company, I haven&#8217;t been exposed to Six Sigma in Practice yet.  I&#8217;d love to hear how you are implementing these principles within your software projects.  Specifically how these principles happen within the project (Silos in Kanban, just part of a Silo named design?).  Thanks, keep up the interesting work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corey Ladas</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1688</link>
		<dc:creator>Corey Ladas</dc:creator>
		<pubDate>Tue, 08 Jan 2008 08:47:24 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1688</guid>
		<description>Thank you, Richard.  I appreciate the encouragement!  I share your concern about statistical excess.  My most important statistic is &quot;probability of method being correctly applied,&quot; which would seem to be inversely proportional to the density of numerical methods involved.  So I&#039;m always looking out for simple heuristics that give you most of the benefit of the math, without actually having to do the math.  TOC, kanban, Axiomatic Design, all have that property of simple rules of thumb with analytical interpretations that you won&#039;t need if you apply them well.  I don&#039;t want to spend a lot of time on the math either.  I&#039;m just a programmer who gets very irritated with stuff that doesn&#039;t work.
</description>
		<content:encoded><![CDATA[<p>Thank you, Richard.  I appreciate the encouragement!  I share your concern about statistical excess.  My most important statistic is &#8220;probability of method being correctly applied,&#8221; which would seem to be inversely proportional to the density of numerical methods involved.  So I&#8217;m always looking out for simple heuristics that give you most of the benefit of the math, without actually having to do the math.  TOC, kanban, Axiomatic Design, all have that property of simple rules of thumb with analytical interpretations that you won&#8217;t need if you apply them well.  I don&#8217;t want to spend a lot of time on the math either.  I&#8217;m just a programmer who gets very irritated with stuff that doesn&#8217;t work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Durnall</title>
		<link>http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/comment-page-1/#comment-1686</link>
		<dc:creator>Richard Durnall</dc:creator>
		<pubDate>Tue, 08 Jan 2008 07:49:42 +0000</pubDate>
		<guid isPermaLink="false">http://leansoftwareengineering.com/2008/01/07/what-is-design-for-six-sigma/#comment-1686</guid>
		<description>Really interesting post. I&#039;ve always found the intersection between 6-Sigma, DFSS, Toyota Production System (TPS) and Toyota Product Development System (TPDS) an interesting one; a Western response to the Japanese threat. I&#039;m lucky that I got to study them in a manufacturing context before I had the opportunity to apply them to software delivery. I find that because they have their roots in PDCA cycles they can all live happily together. The big challenge with DFSS and 6-Sigma I found is that you need a brain the size of a planet to fully understand the stats and this focus on statistical modelling can lead to &#039;management by numbers&#039;. Lean offers a broader context and having it&#039;s basis in Training Within Industry (TWI) principles gives it more of a focus on people, teamwork and culture. You&#039;re doing some interesting and valuable work; impressive.</description>
		<content:encoded><![CDATA[<p>Really interesting post. I&#8217;ve always found the intersection between 6-Sigma, DFSS, Toyota Production System (TPS) and Toyota Product Development System (TPDS) an interesting one; a Western response to the Japanese threat. I&#8217;m lucky that I got to study them in a manufacturing context before I had the opportunity to apply them to software delivery. I find that because they have their roots in PDCA cycles they can all live happily together. The big challenge with DFSS and 6-Sigma I found is that you need a brain the size of a planet to fully understand the stats and this focus on statistical modelling can lead to &#8216;management by numbers&#8217;. Lean offers a broader context and having it&#8217;s basis in Training Within Industry (TWI) principles gives it more of a focus on people, teamwork and culture. You&#8217;re doing some interesting and valuable work; impressive.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

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

