<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Bits 'n Widgets - Lean</title>
    <link>http://bitsnwidgets.com/</link>
    <description>&amp;nbsp;&amp;nbsp;Thoughts on real-world, practical, common-sense approaches to Agile software development using Scrum and XP</description>
    <language>en-us</language>
    <copyright>John E. Boal</copyright>
    <lastBuildDate>Fri, 18 Sep 2009 05:21:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>webmaster@bitsnwidgets.com</managingEditor>
    <webMaster>webmaster@bitsnwidgets.com</webMaster>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=584d138d-5ed1-4b3b-87e0-966284cac717</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,584d138d-5ed1-4b3b-87e0-966284cac717.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,584d138d-5ed1-4b3b-87e0-966284cac717.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=584d138d-5ed1-4b3b-87e0-966284cac717</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Lean is one of the three legs of the Agile
stool (Scrum, XP being the other two). Lean is a concept originally used by Toyota
in manufacturing, and it has been adapted to software development. Lean, Scrum, and
XP have some overlap, but they dovetail nicely together, and complement each other's
practices to build a strong foundation for software production.<br /><br />
The main tenets of Lean are as follows:<br /><ul><li>
Eliminate waste.</li><li>
Build integrity into the product.</li><li>
Enhance and promote learning</li><li>
Deliver as fast as possible.</li><li>
Decide as late as is responsibly practical.</li><li>
Empower the team.</li><li>
See the overall big picture</li></ul>
The elimination of waste is a critical point in streamlining processes. Waste in this
context is anything that does not deliver value (from the CUSTOMER'S perspective).
Writing a status report does not add value for the customer, so it would be considered
waste, even though it may have legitimate business value.<br /><br />
Waste in software development is most easily recognized as one of the following.<br /><ul><li>
Undelivered or incomplete work</li><li>
Excessive Process</li><li>
Extra features</li><li>
Randomization (switching tasks or projects)</li><li>
Movement (physically moving from one position to another)</li><li>
Bugs</li></ul>
Incomplete work isn't shippable, so it is of no value to the customer. It most likely
contains bugs also which are lurking below the surface, as it isn't completed yet
(fully tested). This concept is applicable on scrum teams directly, by having the
team focus on the topmost few stories in a sprint, and complete them (to a shippable
and demonstrable state) before opening the next story. This guarantees complete units
of functionality that the customer can value.<br /><br />
Some process is necessary in software development, this is computer SCIENCE after
all, an ENGINEERING - not art or the wild west. However, process that doesn't directly
add value (in the customer's view) are waste. Performance reviews, status reports,
departmental request forms, etc. are all waste in this view. Having a checklist to
satisfy and having a code review before check-in are NOT waste, they directly add
value that a customer can appreciate.<br /><br />
Extra features are complete waste. It has been long known (and widely and variously
quoted) that the majority of features are not used in most software products today.
It's basically been the 80/20 rule - 80% of the people use only 20% of the features,
and that's enough for them to make use of the product and be effective. The other
80% of the features are probably waste, because of the tremendous time and effort
that had to go into building, testing, and maintaining them for a minority (sometimes
a very lonely few) users. This time and effort should probably have been better spent.<br /><br />
Switching tasks, contexts, randomizations, and interruptions are another source of
waste. This includes meetings, phone calls, IM's, etc. Anything that causes members
of the team to have to stop thinking about the software and focus on something else.
There is a time cost not only for the interruption, but for re-adopting the context
and thought processes again when they return to development. Ideas and real progress
can be lost this way. Schedule meetings for the last half of the day only, turn off
the phone (YES your CELL TOO), email, and IM when working - this will help streamline
the focus and eliminate waste.<br /><br />
Movement or motion is a great cause of waste. Not only does it take time, but it can
be physically tiring too. If that developer has to walk down the hall 6 offices to
ask someone a question and talk face to face, that takes a minute each way. Also,
it's the opportunity to be distracted by other things going on, colleagues, a new
cup of coffee, etc. Not that these are bad things - they aren't. However, it blocks
the focus on development. Starbucks recently applied this concept to its stores, when
it studied how much motion it took a barista to make a latte. They discovered that
there were extra motions each barista had to make in reaching for the beans, getting
out the milk, etc. They moved the beans up from the cupboard to the counter, and some
other minor movement-lessening optimizations and saved a few seconds for each cup
of coffee made. Overall, they saved several man-hours of labor each day at each store,
got the customers coffee even faster, and saved some work for the baristas. This really
is a powerful concept.<br /><br />
Bugs and rework are entirely waste. It wasn't done correctly the first time, so it
now has to be done again. Study the reasons why your bugs happen, and make sure to
track down the root causes and catch the trends. Make fixes around the holes in the
processes that allowed the bugs to fall through. It is far more expensive to the customer
and to the software producer to fix things early (like when a test fails) rather than
after shipping. Think about Windows XP patches, there have been hundreds. If only
10% of them could have been prevented by more extensive testing, the product might
have shipped only a few months later, but how many billions of dollars of IT time,
download bandwidth, reboot time, and lost progress with the millions and millions
of installed users. Not to mention the growing mistrust of the user community for
the company.<br /><br />
Elimination of waste may seem like a simple thought, but in a software development
process it can be rather complex and sometimes a bit hidden as to where waste may
lie, and how to eliminate it. However, once we get this efficiency, we can lower the
cost and time it takes to deliver better quality software to our customers.<br /><p></p><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=584d138d-5ed1-4b3b-87e0-966284cac717" /></body>
      <title>In Lean, how does Eliminate Waste apply to software?</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,584d138d-5ed1-4b3b-87e0-966284cac717.aspx</guid>
      <link>http://BitsNWidgets.com/2009/09/18/InLeanHowDoesEliminateWasteApplyToSoftware.aspx</link>
      <pubDate>Fri, 18 Sep 2009 05:21:55 GMT</pubDate>
      <description>Lean is one of the three legs of the Agile stool (Scrum, XP being the other two). Lean is a concept originally used by Toyota in manufacturing, and it has been adapted to software development. Lean, Scrum, and XP have some overlap, but they dovetail nicely together, and complement each other's practices to build a strong foundation for software production.&lt;br&gt;
&lt;br&gt;
The main tenets of Lean are as follows:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Eliminate waste.&lt;/li&gt;
&lt;li&gt;
Build integrity into the product.&lt;/li&gt;
&lt;li&gt;
Enhance and promote learning&lt;/li&gt;
&lt;li&gt;
Deliver as fast as possible.&lt;/li&gt;
&lt;li&gt;
Decide as late as is responsibly practical.&lt;/li&gt;
&lt;li&gt;
Empower the team.&lt;/li&gt;
&lt;li&gt;
See the overall big picture&lt;/li&gt;
&lt;/ul&gt;
The elimination of waste is a critical point in streamlining processes. Waste in this
context is anything that does not deliver value (from the CUSTOMER'S perspective).
Writing a status report does not add value for the customer, so it would be considered
waste, even though it may have legitimate business value.&lt;br&gt;
&lt;br&gt;
Waste in software development is most easily recognized as one of the following.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Undelivered or incomplete work&lt;/li&gt;
&lt;li&gt;
Excessive Process&lt;/li&gt;
&lt;li&gt;
Extra features&lt;/li&gt;
&lt;li&gt;
Randomization (switching tasks or projects)&lt;/li&gt;
&lt;li&gt;
Movement (physically moving from one position to another)&lt;/li&gt;
&lt;li&gt;
Bugs&lt;/li&gt;
&lt;/ul&gt;
Incomplete work isn't shippable, so it is of no value to the customer. It most likely
contains bugs also which are lurking below the surface, as it isn't completed yet
(fully tested). This concept is applicable on scrum teams directly, by having the
team focus on the topmost few stories in a sprint, and complete them (to a shippable
and demonstrable state) before opening the next story. This guarantees complete units
of functionality that the customer can value.&lt;br&gt;
&lt;br&gt;
Some process is necessary in software development, this is computer SCIENCE after
all, an ENGINEERING - not art or the wild west. However, process that doesn't directly
add value (in the customer's view) are waste. Performance reviews, status reports,
departmental request forms, etc. are all waste in this view. Having a checklist to
satisfy and having a code review before check-in are NOT waste, they directly add
value that a customer can appreciate.&lt;br&gt;
&lt;br&gt;
Extra features are complete waste. It has been long known (and widely and variously
quoted) that the majority of features are not used in most software products today.
It's basically been the 80/20 rule - 80% of the people use only 20% of the features,
and that's enough for them to make use of the product and be effective. The other
80% of the features are probably waste, because of the tremendous time and effort
that had to go into building, testing, and maintaining them for a minority (sometimes
a very lonely few) users. This time and effort should probably have been better spent.&lt;br&gt;
&lt;br&gt;
Switching tasks, contexts, randomizations, and interruptions are another source of
waste. This includes meetings, phone calls, IM's, etc. Anything that causes members
of the team to have to stop thinking about the software and focus on something else.
There is a time cost not only for the interruption, but for re-adopting the context
and thought processes again when they return to development. Ideas and real progress
can be lost this way. Schedule meetings for the last half of the day only, turn off
the phone (YES your CELL TOO), email, and IM when working - this will help streamline
the focus and eliminate waste.&lt;br&gt;
&lt;br&gt;
Movement or motion is a great cause of waste. Not only does it take time, but it can
be physically tiring too. If that developer has to walk down the hall 6 offices to
ask someone a question and talk face to face, that takes a minute each way. Also,
it's the opportunity to be distracted by other things going on, colleagues, a new
cup of coffee, etc. Not that these are bad things - they aren't. However, it blocks
the focus on development. Starbucks recently applied this concept to its stores, when
it studied how much motion it took a barista to make a latte. They discovered that
there were extra motions each barista had to make in reaching for the beans, getting
out the milk, etc. They moved the beans up from the cupboard to the counter, and some
other minor movement-lessening optimizations and saved a few seconds for each cup
of coffee made. Overall, they saved several man-hours of labor each day at each store,
got the customers coffee even faster, and saved some work for the baristas. This really
is a powerful concept.&lt;br&gt;
&lt;br&gt;
Bugs and rework are entirely waste. It wasn't done correctly the first time, so it
now has to be done again. Study the reasons why your bugs happen, and make sure to
track down the root causes and catch the trends. Make fixes around the holes in the
processes that allowed the bugs to fall through. It is far more expensive to the customer
and to the software producer to fix things early (like when a test fails) rather than
after shipping. Think about Windows XP patches, there have been hundreds. If only
10% of them could have been prevented by more extensive testing, the product might
have shipped only a few months later, but how many billions of dollars of IT time,
download bandwidth, reboot time, and lost progress with the millions and millions
of installed users. Not to mention the growing mistrust of the user community for
the company.&lt;br&gt;
&lt;br&gt;
Elimination of waste may seem like a simple thought, but in a software development
process it can be rather complex and sometimes a bit hidden as to where waste may
lie, and how to eliminate it. However, once we get this efficiency, we can lower the
cost and time it takes to deliver better quality software to our customers.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=584d138d-5ed1-4b3b-87e0-966284cac717" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,584d138d-5ed1-4b3b-87e0-966284cac717.aspx</comments>
      <category>Lean</category>
    </item>
  </channel>
</rss>