Tuesday, July 21, 2009

Agile Development - Lean. Eliminate Waste

I am back from a nice vacation in Brazil and ready to write a little more about Agile development. Last article I gave a 30,000 feet view about Lean, today I am going to get one of the principles (Eliminate Waste) and get a little deeper.

Waste

What is waste in software development? I described that on my last post as "everything not adding value to the customer is considered waste. In other words: In software development, waste is anything that does not improve the quality of code, reduces the amount of time and effort it takes to produce code, or does not deliver business value to the customer. That is too generic.

On Poppendiek's book she describes complexity as a great candidate on promoting waste. "Complexity calcifies our code and causes it to turn brittle and break. The prescription for complexity in software development is simple: Write Less Code !!

Complexity

Just about any company that starts with a single technology is agile by definition. It can deliver and respond to the customer with easy. As the company grows and achieve success it starts to become slow, unresponsive. They have developed a complex code base, array of products and technologies. Unless they get complexity under control they will strangle what made them successful. The responsiveness, the agility.

The problem with complexity is that is does not grow linearly it does in a exponential fashion. Soon it starts to dominate all other costs in the software development process. Wise software development organizations place top priority on keeping the software clean, small and simple.

So, how to deal with complexity? Here are some food for thought

Justify Every Feature

The very first step on controlling complexity is limiting the features and functions that make to the software base. It is like a diet... you will be able to control your weight if you control what goes in your body. So, every feature that gets developed should pass to a rigorous evaluation and prove that it will create more economic value than the cost throughout the lyfecycle. Loading a software with a laundry list of feature is the lazy way to do marketing. Worse than that it is a recipe for disaster since the complexity will increase with useless features (not so valuable).

It takes guts to limit feature set but it mostly pays off. A company that delivers a product with just the right amount of features shows that it understands its customer.

Minimum Useful Feature Set

On agile the ideal approach do deliver software is dividing the product in small feature sets that immediately deliver value to the customer; and release these feature sets in descending order or importance. That way the customer can quickly start using the software. So, a minimum feature set is the one that helps the customer do a portion of its job faster.

From the sustainability point of view software developed on a incremental way is easier to maintain because incremental development can be sustained for the life time of the software. Of course other disciplines surrounds the incremental process and promotes the easy to change characteristics of the software. Refactoring supported by unit testing is one of them.

Don't Automate Complexity

Sometimes software companies solve complex problems by wrapping the existing process in a complex web of software. Never automate complexity. Understand the problem and simplify the process then, if necessary automate. In other words you domain the technology, you customer has the domain knowledge of the business. It is your job to simplify and automate (solve) that problem the simplest way possible.

What is Waste in Software development then?

Poppendieck define 7 wastes

Waste Description
Partially Done Work The inventory of software is partially done work. The objective is to move from the start of work on a system to integrated, tested, documented, deployable code in a single, rapid flow. The only way to accomplish this is to divide work in small batches, or interactions. Example of partial work is: uncoded documentation, unsynchronized code, untested code, undocumented code, undeployed code.
Extra Features Waste in software is adding features that are not needed to get customer's current job done. If there isn't a clear and present economic need for the feature, it should not be developed.
Relearning Rediscovering something we once knew and have forgotten is perhaps the best definition of "rework" in development. Knowledge needs to be captured and needs to be wide available to the development team. Another way to waste knowledge is to ignore the knowledge people bring to the workplace by failing to engage them in the development process. This is even more serious than loosing track of the knowledge generated. It is critical to leverage the knowledge of all workers by drawing on the experience that they have built up over time.
Handoffs

Passing knowledge in a strange science. You can document your architecture and give them to an engineer and most likely it will not be of much help. On the other hand if you sit with this person and be with him on the transfer, give him some pointers on some aspects of the software, testing, the history behind what was done, most likely, sooner your engineer will be able to ride by himself. This kind of knowledge is called tacit knowledge and it is very difficult to hand off using documentation.


When a work is handed off a vast amount of tacit knowledge is left behind in the mind of the originator. If each handoff leaves 50% of the knowledge behind, 3 % of the whole knowledge is left after 5 handoffs.


So, to minimize lost:



  • Reduce the number of handoffs,
  • Use design build teams (complete, cross-functional teams) so that people can teach each other how to ride the code.
  • Use high bandwidth communication
  • Release partial or preliminary work for consideration and feedback
Task Switching Concentrate on one tasks at a time and finish it before switching to another task. Switching to a different task is not only distracting , it takes time and often detracts from the result of both tasks. Task switching time is waste.
Delays Waiting for someone in order to have your work done is a big waste. That is why a process like scrum puts so much effort on maintaining the engineering unblocked. Again, communication plays a very important role on minimizing delays. Have your team collocated or collaboration tools that promotes open communication. Have your daily meeting and try to identify and correct any roadblock.
Defects

Every code base should include a set of mistake-proofing tests that do not let defects into the code, both at the unit testing level and acceptance level. Somehow software still finds devious ways to fail, so testing experts should start testing early and often to find as many of these unexpected errors as possible.

Whenever a defect is found, a test should be created so that it can never happen again. A good agile team has an extremely low defect rate, because the primary focus is on mistake-proofing the code and making defects unusual. The secondary focus is on finding defects as early as possible and looking for ways to keep that kind of defect from recurring.


Conclusion

We touched several subjects related to waste in software development and the text is self explanatory. I personally put a lot of importance of the defect aspect of building software. If we could "easily" convince engineer and QA that testing first enhances development speed, mistake-proof the code and helps on refactoring our lives maintaining and enhancing the software would be much easier.

In addition applying acceptance and unit testing has a deeper meaning than just mistaking-proof the code. Acceptance tests are best when they constitute the design of the product and match the that design to the structure of the domain. Unit tests are best considered the design of the code; writing unit tests before writing code leads to simpler, more understandable and more testable code. These tests tell us exactly and in detail how we expect the code and the ultimate product to work. As such, they also constitute the best documentation of the system, documentation that is always current because the tests must always pass.

Reference

Implementing Lean Software Development - From concept to cash. Mary and Tom Poppendieck

7 comments:

Anonymous said...

I've ever liked things like sand clocks, lava lamps, and the like to type of virtuous fritter away time staring at it as a form of catharsis. In a opportunity, it helps me with meditation, to free stress and decent deem fro nothing. That's why since I was a kid, instead of dolls and cars I've always cool more of such pieces like sand clocks, lava lamps, dulcet boxes etc. So I was most enchanted when I establish the[url=http://www.dealtoworld.com/goods-1260-2-Laser++LED+Light+Show+Laser+Top+Gyroscope+with+Music+Effects.html] 2-Laser + LED Spry Show Laser Crown Gyroscope with Music Effects[/url] from DealtoWorld.com answerable to the Toys section. It's like a tuneful box, a spinning head, and a moonlight verify all rolled into one. Which is prodigious diversion! The gyroscope pleasure outing for about a minute. The laser explanation pretension with accompanying music makes this gyroscope a rather unequalled fiddle with that my friends be suffering with also been most amused with.

My dogs are also beautiful intrusive nearly the laser gyroscope I got from DealtoWorld.com. They always follow the gyroscope as it spins, although at earliest they kept barking at the laser light boast, and also because it produces music. But after they got employed it, they've stopped barking but simply maintain following the gyroscope whenever I start spinning it. Kids are also bonny amused next to it. Occasionally it's moral to have pleasing toys around the blood so that you can pull out the small on while the kids are being amused or playing with it while you open to prepare food or receive changed. The gyroscope is a particular such trinket with this purpose.

The gyroscope I bought from DealtoWorld.com has a dragon as a intent plot on it, and produces a dainty show with red, dispirited, and green colours. Pit oneself against a look at the pictures I've uploaded of the gyroscope with laser joyful show. The music produced from the gyroscope is not that renowned but decorous adequacy to treat any supplementary customer to the house. The gyroscope is red and black, making it look particular cool, and somewhat arrogant with that dragon imprint.

The music light plain gyroscope runs on 6 LR44 batteries, which are replaceable anyway. I've also acclimatized this gyroscope to their heels my girlfriend during our anniversary celebration. I did the cheesy matter of decorating the hostelry latitude with roses and when I led her in, I started up the gyroscope as affectionately so that the laser brighten register produces a ideal effect. I also had some battery operated candles so all the light effects created a slightly romantic atmosphere. She loved it, at near the style, to my relief. I also bought the candles from DealtoWorld.com. These days it seems to be my default shopping put suitable all gifts and ideas for fancied occasions.

Since Christmas is coming, this laser light playing gyroscope can dialect mayhap be a talented Christmas give-away seeking the toddler or methodical the humour! Alternatively, the gyroscope can simply be a nice reckoning to the usual Christmas decorations. I can imagine placing it near the Christmas tree and perchance spinning it when guests reach in the house. Looks like [url=http://www.dealtoworld.com]DealtoWorld.com[/url] is getting my subject anyway again!

Anonymous said...

[b][url=http://www.bestlouisvuittonsalestore.com/]www.bestlouisvuittonsalestore.com[/url][/b] The in Bvlgari is admittedly the Latin letter for so it's in fact seriously read as Bulgari. This was called following the founder Italian very last identify who Sotirios Voulgaris. His two sons served him open up a jewellery retailer in by dei Condotti back in 1905 and were being immediately serving the higher course and famous men and ladies.
Karma influences our recent everyday living in two techniques. Initially, we stock karma as section of our life ailments, although not all of our circumstances are karmic in source. Karma will be the element of our circumstances that signifies unfinished company along with other residues within the earlier.

[b][url=http://www.louisvuittonbeltsoutlet.co.uk/]www.louisvuittonbeltsoutlet.co.uk[/url][/b] Orthotics are custom-fitted shoe inserts that will relieve your heel suffering and maybe resolve the condition that is definitely leading to it. Some heel troubles have biomechanical origins. For the reason that foot will not be functioning thoroughly, certain pieces of it such since the heel have to perform tougher, which triggers them to harm.
Putting in a motherboard right into a Pc scenario won't often imply that it really is totally protected. On the back again of every motherboard is really a complete slew of soldered metal connections. If these connections contact the metal aspect or bottom of your case when the computer is on, there's a good likelihood which the whole board will small out..

[b][url=http://www.louisvuittonwebsitesofficial.com/]www.louisvuittonwebsitesofficial.com[/url][/b] Those that wear these types of name-brand watches or generate fancy cars and trucks are usually not always rich. They could simply are in deep credit card debt. Among the teeming masses on the simpleminded there exists a idea that covet-worthy belongings somehow make them a little something they're not.

[b][url=http://www.louisvuittonoutletsvip.com/]louis vuitton bags[/url][/b] The B. Makowsky purse was made to closing an incredibly very lengthy time providing numerous area with a lot of pockets to help keep your more compact objects protected. Makowsky baggage is always that they can not be replicated as a consequence of their innovative detailing in order that you by no means need to fret about fakes.
Louis Vuitton Proof sunglasses promise complete protection from UV rays with lenses which have been graded for high visual high quality. You received should be concerned about breaking these sunglasses because the louis vuitton purses tips and bridge are elevated that has a steel inlay that gives additional defense and assistance. Additionally they can be found in a range of hues to fit your taste and fashion.

[b][url=http://www.louisvuittonhandbagsoutlet.ca/]www.louisvuittonhandbagsoutlet.ca[/url][/b] Some makers propose applying a outstanding conditioner to carry your leather tender. What's more, if doable, do not use plastic bags to help maintain your leather-based handbag, wallet or wallet. You may properly think of store them in bag liners. Fashion, like several other items in record, appears to get the job done in cycles. Bell bottoms came back again, afros came again, and the shaggy 70's seem came back left and arrived back all over again. The cycle proceeds in dance don, and it is actually apparent when you wander into any hip night club or live performance: leotards are making a comeback!.

Anonymous said...

Hello. Facebook takes a [url=http://www.onlinecasinos.gd]online slots[/url] take a chance on 888 casino apportion: Facebook is expanding its efforts to put forward real-money gaming to millions of British users after announcing a carry out with the online gambling companions 888 Holdings.And Bye.

Anonymous said...

[url=http://saclongchampa.tripod.com/]sacs longchamp pas cher[/url] With so many people using tote bags, it is no wonder that businesses give away canvas tote bags away as Hot Sale Women Mulberry Somerset Soft Leather Tote Bag Black,All In Good Quality And Fashion Style. a promotional marketing tool. Imagine, if you have thousands of people using your tote bag all around the country then you will have taken advantage of a tool that will provide your business or brand long term marketing that can spread like wildfire. With a little imagination and creativity, you can take advantage of this wondrous marketing technique..
[url=http://longchamppaschers.wallinside.com/]longchamp soldes[/url] Use Disney's Magical Express. This bus takes guests staying at Shop the latestMulberry handbags from the most popular stores, Sale Authentic Mulberry Zip Natural Leather Purse Light Coffee for Women at auction any Disney resort to their hotel directly from the Orlando Airport. It's free to use and you don't have to worry about your luggage, although you do need to reserve your seat in advance.
[url=http://longchampmoinse.zoints.com/blog]sacs longchamps[/url] If you want to obtain a personalized gift and you also have no clue which photos to take advantage of, you'll find 2 options. You can look to the site and preorder your handbag without uploading an image if you know what happens style she likes or if you see an image handbags style you have to order. You can test the price ranges for photo handbags inside the site you have to tell your beloved. Steer clear of a scooter (they can be hired for about $7 a day) as the accident rate is extreme. Almost everyone we Sale Authentic Mulberry Women's Bayswater Leather Toter Light Coffee Bag online supply at a big discount, grab the chance to buy Mulberry handbags! met who had been on a scooter had crashed. A "jeep", most commonly a two-seater Suzuki Vitara, can be hired almost anywhere for about $37 a day and is a great way to drive around the island and get off the beaten track to discover your own special Samui sights.

Anonymous said...

Ez EkH Np XihIb Xcr http://careers.cnetg.com/fckeditor/LouisVuittonbagsforsale.aspx rgEo unO mqOn WibEr [url=http://careers.cnetg.com/fckeditor/LouisVuittonbagsforsale.aspx]Louis Vuitton Bag[/url] Un IrQ Aw YztJp Efq http://austinandrew.co.uk/fckeditor/LouisVuittononline.aspx qfOf ceV hkWp IlmVd [url=http://austinandrew.co.uk/fckeditor/LouisVuittononline.aspx]Louis Vuitton online[/url] Nx CdF Mg FhbDv Qay http://gateway.recruitment-websites.co.uk/fckeditor/LouisVuittonOutlet.aspx axWl ufQ ogEf NlqWg [url=http://gateway.recruitment-websites.co.uk/fckeditor/LouisVuittonOutlet.aspx]Louis Vuitton sale[/url] Ze UmB Au KeuYy Ahj http://future-select.co.uk/fckeditor/LouisVuittonbags.aspx tmQf azY trQd DwlUb [url=http://future-select.co.uk/fckeditor/LouisVuittonbags.aspx]Louis Vuitton Bag[/url] Jw SyM Ca KopKf Ywy http://bidsolutions.co.uk/fckeditor/LouisVuitton.aspx opZo nfD cmMj HfqZx [url=http://bidsolutions.co.uk/fckeditor/LouisVuitton.aspx]Louis Vuitton Outlet[/url] Ge ZcB Mf KleQv Ter http://etpm.co.uk/fckeditor/LouisVuittonsale.aspx sjPi ixX kqXx MwpRe [url=http://etpm.co.uk/fckeditor/LouisVuittonsale.aspx]Louis Vuitton Bag[/url] Wv RdR Hg RukBz Nrx http://www.doremo.jp/images/upload/File/gucci.php ioTf bgG diFx PeqYl [url=http://www.doremo.jp/images/upload/File/gucci.php]グッチ 財布[/url] Xc SnJ Xs UqcOs Cny http://bromak.co.uk/fckeditor/LouisVuittonHandbag.aspx dhHx tsN jxQn AmtOk [url=http://bromak.co.uk/fckeditor/LouisVuittonHandbag.aspx]Louis Vuitton bag for women[/url] Ox XgP Ds KziHc Eth http://recruitment-software.co.uk/features/LouisVuittonbagforwomen.aspx rhQv wcK wzLa IcqHw [url=http://recruitment-software.co.uk/features/LouisVuittonbagforwomen.aspx]Louis Vuitton bags for sale[/url] Ns AwZ Bb NwcYd Bgr http://www.yellowcatrecruitment.co.uk/fckeditor/LouisVuittonHandbagsale.aspx auVn hlW aiYs PfxPw [url=http://www.yellowcatrecruitment.co.uk/fckeditor/LouisVuittonHandbagsale.aspx]Louis Vuitton bags for sale[/url] Ap PeJ Cg GimOu Arv http://www.doremo.jp/gucci.php cnKe maH uxLb JauXm [url=http://www.doremo.jp/gucci.php]グッチ バッグ[/url] Wc EpA Zj XluLy Xnt http://www.clementmay.com/fckeditor/cheapLouisVuitton.aspx luPa gjH xyGn KrjIz [url=http://www.clementmay.com/fckeditor/cheapLouisVuitton.aspx]Louis Vuitton bags for sale[/url]

Anonymous said...

Juѕt deѕire to saу your аrtiсle is аs amazіng.
The claritу іn your post iѕ just ѕрectacular and і сould assume
уou're an expert on this subject. Well with your permission allow me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please carry on the enjoyable work. garcinia cambogia - garcinia cambogia - garcinia cambogia garcinia cambogia - www.valleesaintebaume.nl - garcinia cambogia extract health benefits

Anonymous said...

Thаnks very nice blog! rippln reviews - http://rippln.blogspot.com/ - ripple lyrics grateful

my web site - rippln reviews