﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><ttl>60</ttl><title>Agile Renaissance</title><link>http://agilerenaissance.com</link><language>en</language><copyright /><itunes:subtitle> </itunes:subtitle><itunes:author>Norbert Winklareth</itunes:author><itunes:summary /><description /><itunes:owner><itunes:name>Norbert Winklareth</itunes:name><itunes:email>norbert.winklareth@agilerenaissance.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:category text="Arts" /><item><title>TDD Coaches Should Not Pair with their Coachees</title><link>http://agilerenaissance.com/2007/11/25/tdd-coaches-should-not-pair-with-their-coachees.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;This summer I had the opportunity to work coaching some C++ developers in how to do &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test-Driven Development&lt;/a&gt; (TDD).  The workspace assigned to these developers made pair programming an almost impossibility.  Rather than fight the physical limitations I decided to coach them without using the keyboard.  To my surprise, coaching this way was both easier and more effective then I thought it would be.  Coaching TDD is about form: is the coachee following the methodology; where are they having difficulties; how is their rhythm; are they partitioning the problem as fine grained as they need to; are they refactoring; and so.  When you don't pair, when you don't have the ability to just grab the keyboard, you are free to focus entirely on the coachee's form.

&lt;/p&gt;&lt;p&gt;I also notice that the coachee sets the pace of the work.  The coachee is doing it all and so they learn it at their own pace.  There is also no expert magic involved in the outcomes.  Every person that I coached extensively - there were some who due to scheduling I only had one session with - reached a point of puzzle/amazement.  During a review of their work, they would look at their code and their tests in a form of disbelief, coupled with knowing that they had written all of it and that the coach had not made the code magically appear.  When this happened, they now knew the value of TDD.

&lt;/p&gt;&lt;p&gt;I also discussed this coaching style with a number of the coachees and the majority stated that they preferred it and found it more effective then the pairing approach.  So the next time you find yourself coaching someone in TDD consider not grabbing the keyboard and focus on the coachee's form and letting them learned TDD directly and at their own pace.&lt;/p&gt;</description><category>Agile Development</category><category>Coaching</category><comments>http://agilerenaissance.com/2007/11/25/tdd-coaches-should-not-pair-with-their-coachees.aspx#Comments</comments><guid isPermaLink="false">dcc0f408-1d8e-4cac-90e9-4b7e7e963047</guid><pubDate>Sun, 25 Nov 2007 17:04:08 GMT</pubDate></item><item><title>Links for 2007-07-11 Part 2</title><link>http://agilerenaissance.com/2007/07/11/links-for-20070711-part-2.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://herdingcats.typepad.com/my_weblog/2007/06/agile_pm_in_sev.html"&gt;Agile PM in Several Different Domains&lt;/a&gt;&lt;br&gt;Glen Alleman is antidote to the cool-aid of what constitutes the limits of the development world.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mtnwestrubyconf2007.confreaks.com/session10.html"&gt;Rails Code Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pragmaticprogrammer.com/ppllc/papers/1998_05.html"&gt;Tell, Don't Ask&lt;/a&gt;&lt;br&gt;Applied to program development (I also have a weak spot for any post that talks about invariants.)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pragmaticprogrammer.com/articles/may_04_oo1.pdf"&gt;OO in One Sentence: Keep It DRY, Shy, and Tell the Other Guy&lt;/a&gt;&lt;br&gt;I have recently come to see how many people do not understand how to this when developing OO code.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.stickyminds.com/sitewide.asp?Function=WEEKLYCOLUMN&amp;ObjectId=12384&amp;ObjectType=ARTCOL&amp;btntopic=artcol"&gt;11 Ways Agile Adoptions Fail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cognitive-edge.com/2007/06/confusing_story_telling_with_n.php"&gt;Confusing story telling with narrative&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/articles/agile-retrospectives-davies"&gt;How To: Live and Learn with Retrospectives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hackvan.com/pub/stig/etext/monochronic-vs-polychronic-time.html"&gt;Perception of Time &amp; Priorities: Polychronic vs. Monochronic&lt;/a&gt;&lt;br&gt;Personally, I am schizochronic.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com/2007/06/05/the-capture-recapture-code-inspection/"&gt;The capture-recapture code inspection&lt;/a&gt;&lt;br&gt;Uses probability to determine how many defects are undetected in your code - this is based on the work done to predict how many animals there are in the wild. Using this insight is so cool.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hbswk.hbs.edu/item/5696.html"&gt;Leading and Creating Collaboration in Decentralized Organizations&lt;/a&gt;Caveat: research paper.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cognitive-edge.com/2007/06/putting_six_sigma_back_in_its.php"&gt;Putting Six Sigma back in its box ....&lt;/a&gt;&lt;br&gt;On the tension between improving how we do our knowledge work and stifling the knowledge work as presented by a critic of wide adoption/promotion of Six Stigmata.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cognitive-edge.com/2007/06/more_on_balance.php"&gt;More on balance ....&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shmula.com/400/complexity-creep"&gt;Complexity Creep&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblog.masukomi.org/2007/6/4/what-developers-can-learn-from-ancient-stadium-builders"&gt;What developers can learn from ancient stadium builders&lt;/a&gt;&lt;br&gt;Wow! brings strong creditability to the old saying: that there is really is nothing new under this Sun.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.reformingprojectmanagement.com/2007/06/07/809/"&gt;Was Bill Gates Lucky? How about Einstein?&lt;/a&gt;&lt;br&gt;Well were they punk?&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/07/11/links-for-20070711-part-2.aspx#Comments</comments><guid isPermaLink="false">23f87800-88f5-477d-8482-7f9f78bf82db</guid><pubDate>Wed, 11 Jul 2007 12:57:00 GMT</pubDate></item><item><title>Links for 2007-07-11 Part 1</title><link>http://agilerenaissance.com/2007/07/11/links-for-20070711-part-1.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;I let doing this on a regular basis slip, so here comes a little rush of links I liked or found interesting, enjoy!

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.jrothman.com/weblog/2007/05/two-good-rules.html"&gt;Two Good Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bradapp.blogspot.com/2007/05/five-rs-of-agile-scm-baselines.html"&gt;Five R's of Agile SCM Baselines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/05/how_to_get_your_time_back.html"&gt;How to Get Your Time Back&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shmula.com/399/six-sigma-lean-and-executive-satisfaction"&gt;Six Sigma, Lean, and Executive Satisfaction&lt;/a&gt;&lt;br&gt;I agree with &lt;a href="http://www.shmula.com/about-peter-abilla/"&gt;Peter Abilla's&lt;/a&gt; conclusion about what Lean and Six Sigma practitioners needed to do in light of the results of this survey of Executives views on Management tools.  I wish that a similar survey of attitudes towards Agile and its various methodologies would also be done.&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.inf.unisi.ch/faculty/lanza/Downloads/Wett07b.pdf"&gt;Visualizing Software Systems as Cities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.eros-os.org/essays/capintro.html"&gt;What is a Capability, Anyway?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dmreview.com/editorial/newsletter_article.cfm?articleId=1085568"&gt;Book Review: Refactoring Databases: Evolutionary Database Design&lt;/a&gt;&lt;br&gt;Good review from an experienced traditional database person.&lt;/a&gt;
&lt;li&gt;&lt;a href="http://kanemar.com/2006/06/03/costing-iterations-and-estimating-completion-costs/"&gt;How much does a Story Point cost?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/06/the_pipelining_.html"&gt;The Pipelining Anti-Pattern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/SAAS/?p=344"&gt;How SaaS changes the SI universe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gustafbrandberg.com/2007/02/17/five-things-to-remember-when-calculating-the-cost-of-delay/"&gt;Five things to remember when calculating the Cost of Delay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kallokain.blogspot.com/2006/11/big-dip.html"&gt;The Big DIP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kallokain.blogspot.com/2007/06/by-book-3-throughput-accounting.html"&gt;By The Book 3: Throughput Accounting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.scottberkun.com/blog/2007/how-to-innovate-on-time/"&gt;How to innovate on time&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/06/overcoming-fears-with-collaboration.html"&gt;Overcoming Fears with Collaboration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.think-box.co.uk/blog/2007/07/adaptation-and-organisational-change.html"&gt;Adaptation and organisational change&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/SAAS/?p=339"&gt;Do SaaS ventures need VCs?&lt;/a&gt;&lt;br&gt;Henry Ford said that you should look to your manufacturing line for financing, seems the SaaS people are following this advice.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/06/19/sharing-lessons-learned.aspx"&gt;How To Share Lessons Learned&lt;/a&gt;&lt;br&gt;I like Mr. Meier, he always trying to come up with simple, small and effective ways to use the tools at hand.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com/2007/06/23/the-potential-and-peril-of-the-postmortem/"&gt;The potential and peril of the postmortem&lt;/a&gt;&lt;br&gt;Sets the previous link into a larger context, failure to heed this advice will render feedback useless; as I so regrettably know.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://decker.typepad.com/welcome/2007/06/50strand_templa.html"&gt;50-Strand Template for Building a Word-of-Mouth-Worthy Business&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://decker.typepad.com/welcome/2007/06/notes_on_the_li.html"&gt;Notes on "The Likeability Factor" (Tim Sanders at Austin Texchange)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.agilemanagement.net/Articles/Papers/AKanbanSystemforSustainin.html"&gt;A Kanban System for Sustaining Engineering&lt;/a&gt;&lt;br&gt;I am a huge fan of David Anderson and most recently his Kanban work at Corbis.  This link is to a presentation he made on his work at Corbis and it is very enlightening.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/06/agile_suitabili.html"&gt;Agile Suitability Filters&lt;/a&gt;&lt;br&gt;I am also a fan of Mike Griffiths and here he presents guidelines in determining which methodology to use on a project.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shmula.com/408/humane-interface-ask-aza-raskin-anything"&gt;Humane Interface - Ask Aza Raskin Anything!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/06/how_many_ways_can_you_do_kaizen_at_your_company.html"&gt;How Many Ways Can You Do Kaizen at Your Company?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.think-box.co.uk/blog/2007/05/product-owner-and-business-marksmanship.html"&gt;Product Owner and business marksmanship&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hbswk.hbs.edu/item/4155.html"&gt;How Team Leaders Show Support or Not&lt;/a&gt;&lt;br&gt;Something I wish I had done more of.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hbswk.hbs.edu/item/5691.html"&gt;Organizational Designs and Innovation Streams&lt;/a&gt;&lt;br&gt;Caveat: Research paper.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bossavit.com/pivot/pivot/entry.php?id=294"&gt;Nil nisi bonum&lt;/a&gt;&lt;br&gt;Love the title.  Nice little riff on the benefits and challenges of speaking constructively.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/05/metrics-in-lean-and-agile-world.html"&gt;Metrics in the Lean and Agile World&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.inf.unisi.ch/faculty/lanza/Downloads/Lung06c.pdf"&gt;Softwarenaut: Cutting Edge Visualization in Software&lt;/a&gt;&lt;br&gt;When systems get big how do you see or know or come to understand what is there?  Here is an interesting attempt at tackling this problem.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jtaylorgoodlife.blogspot.com/2007/06/how-to-get-things-done-colin-powell.html"&gt;How to Get Things Done - Colin Powell Version&lt;/a&gt;&lt;br&gt;Interesting for the insights it gives into the man.&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/07/11/links-for-20070711-part-1.aspx#Comments</comments><guid isPermaLink="false">a3a9c17f-6949-4c68-babb-578f7a434174</guid><pubDate>Wed, 11 Jul 2007 12:21:05 GMT</pubDate></item><item><title>Links for 2007-05-27</title><link>http://agilerenaissance.com/2007/05/27/links-for-20070527.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.netobjectives.com/2007/05/25/challenging-why-not-if-scrum-works/"&gt;Challenging why (not if) Scrum works&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.netobjectives.com/bio-alan-shalloway"&gt;Alan Shalloway&lt;/a&gt; argues that the structure provided by Scrum, which is really just applying Little's Law, is sufficient to improve an organization's productivity.  He does not argue that it will provide maximal benefits which you would get if you would also apply the humanistic aspects of Agile/Lean philosophy.  I agree with him.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com/2007/05/25/design-verification-capability-part-2/"&gt;Design verification capability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.think-box.co.uk/blog/2007/05/7-faces-of-leadership.html"&gt;7 faces of leadership&lt;/a&gt;&lt;br&gt;I like when people try to distill an open-end broad activity down to a few principles.  It gives you a view of the person's biases and belief systems.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://herdingcats.typepad.com/my_weblog/2007/05/pmi_community_p.html"&gt;PMI Community Post&lt;/a&gt;&lt;br&gt;The title is misleading as it refers to what inspired the post.  The post is about accounting for and handling variance in projects, which is in my opinion the least understood of the 4 fundamental underlying issues of product development or project development.&lt;/a&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/27/links-for-20070527.aspx#Comments</comments><guid isPermaLink="false">e1a69436-3f5e-4148-b815-17d5d0cf602f</guid><pubDate>Sun, 27 May 2007 15:20:00 GMT</pubDate></item><item><title>Links for 2007-05-25</title><link>http://agilerenaissance.com/2007/05/25/links-for-20070525.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/05/team_solving_th.html"&gt;Team Solving: The Under Utilized Power&lt;/a&gt;&lt;br&gt;From 2001 through 2006, my colleagues and I had on time delivery and this post explains one of the reason's why.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.reformingprojectmanagement.com/2007/05/24/801/"&gt;Why Do Deadlines Matter?&lt;/a&gt;&lt;br&gt;An &lt;a href="http://en.wikipedia.org/wiki/Amuse_bouche"&gt;amuse bouche&lt;/a&gt; on an important aspect of development -- although this aspect is more so from the larger organization perspective rather than development's desired point of view.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/05/balancing-perfection-against-innovation.html"&gt;Balancing Perfection against Innovation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/25/links-for-20070525.aspx#Comments</comments><guid isPermaLink="false">8f22a47b-cabf-491c-9aa7-da7439216d1d</guid><pubDate>Fri, 25 May 2007 08:44:00 GMT</pubDate></item><item><title>Links for 2007-05-23</title><link>http://agilerenaissance.com/2007/05/23/links-for-20070523.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/05/commitment-delivery-and-customer.html"&gt;Commitment, Delivery and Customer Expectations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.businesspundit.com/50226711/speed_as_a_competitive_advantage.php"&gt;Speed As A Competitive Advantage&lt;/a&gt;&lt;br&gt;Interview with &lt;a href="http://www.laurencehaughton.com/"&gt;Laurence Haughton&lt;/a&gt; one of the authors of &lt;a href="http://www.chapters.indigo.ca/books/Its-Not-Big-That-Eat-Jason-Jennings/9780066620541-item.html"&gt;It's Not The Big That Eat The Small...It's the Fast That Eat The Slow&lt;/a&gt; about his thoughts on this book 7 years later.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ddj.com/dept/architect/199300107?cid=Ambysoft"&gt;Pitching Agile to Senior Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/23/links-for-20070523.aspx#Comments</comments><guid isPermaLink="false">8a8b1896-aed1-45af-a64c-101f8a4e9c5b</guid><pubDate>Wed, 23 May 2007 16:36:00 GMT</pubDate></item><item><title>Links for 2007-05-22</title><link>http://agilerenaissance.com/2007/05/22/links-for-20070522.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/05/zero_equals_seven_in_the_kaize.html"&gt;Zero Equals Seven in the Kaizen Mind&lt;/a&gt;&lt;br&gt;This is a short post that is about hope or as Douglas Adam's so eloquently stated it, &lt;a href="http://en.wikipedia.org/wiki/Don%27t_Panic_%28Hitchhiker%27s_Guide_to_the_Galaxy%29"&gt;Don't Panic&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://research.microsoft.com/~simonpj/papers/history-of-haskell/index.htm"&gt;A History of Haskell: being lazy with class&lt;/a&gt;&lt;br&gt;You cannot call yourself a language geek and not know about Haskell, even if you are a lazy one!&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=205641"&gt;Regenerative Build Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jrothman.com/weblog/2007/05/testing-is-not-service.html"&gt;Testing is Not a Service&lt;/a&gt;and its follow up clarifying post, &lt;a href="http://www.jrothman.com/weblog/2007/05/services-to-organization.html"&gt;Services to the Organization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/05/agile-or-agile-lean-or-lean.html"&gt;Agile or agile, Lean or lean?&lt;/a&gt;&lt;br&gt;Nice little riff on some of the noise going about what words to use when talking about Agile/Lean.  I agree with Skip's conclusion, it is Agile and Lean for me as well.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.exampler.com/blog/2007/05/20/help-me-stir-things-up/"&gt;Help me stir things up&lt;/a&gt;&lt;br&gt;A attempt to improve the success rate of the adoption of Agile Methodologies.  I am in favour of what Mr Marick is trying to do.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bobsutton.typepad.com/my_weblog/2007/05/learning_from_p.html"&gt;Learning from "Positive Deviants": Pitfalls to Avoid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/05/do_kaizen_like_toyota.html"&gt;Do Kaizen Like Toyota&lt;/a&gt;&lt;br&gt;I really like points 1, 2 and 4.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/05/the_true_role_o.html"&gt;The True Role of a PM on Agile Projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://agilethinking.net/blog/2007/05/21/estimation-time-or-size/"&gt;Estimation: Time or Size?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cognitive-edge.com/2007/05/good_judgement_comes_from_expe.php"&gt;Good judgment comes from experience. Experience comes from bad judgment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bradapp.blogspot.com/2007/05/software-cm-is-not-process.html"&gt;Software CM is Not a Process!&lt;/a&gt;&lt;br&gt;The idea that this post argues for bugs me and I cannot think of a valid counter example which bugs me as well.  However, I do agree with Brad this area is important, in fact, poor execution in this area has sunk many a project and organization.&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/22/links-for-20070522.aspx#Comments</comments><guid isPermaLink="false">7cc3f221-9bc2-43a7-9ea0-2ff27eba27ae</guid><pubDate>Tue, 22 May 2007 13:47:45 GMT</pubDate></item><item><title>Links for 2007-05-12</title><link>http://agilerenaissance.com/2007/05/12/links-for-20070512.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Unusual_software_bug"&gt;Unusual software bug&lt;/a&gt;&lt;br&gt;And how many of these different types of bugs have you been bitten by?&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.holyjuan.com/2007/05/10-attributes-of-really-lazy-people.html"&gt;10 Attributes of Really Lazy People&lt;/a&gt;&lt;br&gt;I found this hilarious, until I realized that the writer was not living up to what he wrote and then I laughed even harder and then I went &lt;a href="http://en.wikipedia.org/wiki/Catch-22"&gt;Catch-22&lt;/a&gt; and fell off my chair laughing and crying.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dnicolet1.tripod.com/agile/index.blog?entry_id=1689880"&gt;Quantify the cost of the things you wouldn't have had to do, if only...&lt;/a&gt;&lt;br&gt;Shows you how to calculate the costs of not building quality in.  If you want to help affect orgaizational change learn how and do similar types of calculations where you work.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/05/large_project_r.html"&gt;Large Project Risks&lt;/a&gt;&lt;br&gt;Explores the physics of &lt;a href="http://en.wikipedia.org/wiki/Drag_%28physics%29"&gt;drag&lt;/a&gt;, my analogy, on large projects.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://edgibbs.com/2007/05/10/it-managers-are-mediocre/"&gt;IT Managers Are Mediocre&lt;/a&gt;&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/Peter_Drucker"&gt;Peter Drucker&lt;/a&gt; stated that the most important trait of a manager is courage and &lt;a href="http://en.wikipedia.org/wiki/W._Edwards_Deming"&gt;W. Edwards Deming&lt;/a&gt; is quoted as saying: "The problem is at the top; management is the problem".&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/SAAS/?p=325"&gt;Appirio’s eat-your-own-dogfood SaaS integration&lt;/a&gt;&lt;/li&gt;
/ul&gt;</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/12/links-for-20070512.aspx#Comments</comments><guid isPermaLink="false">f7239594-f004-4c3a-9bfd-232e7bac293f</guid><pubDate>Sat, 12 May 2007 16:15:00 GMT</pubDate></item><item><title>On the Semantic Distance between Input &amp; Output, Problem Partitioning &amp; Complexity</title><link>http://agilerenaissance.com/2007/05/10/on-the-semantic-distance-between-input--output-problem-partitioning--complexity.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;I first used the term &lt;a href="http://agilerenaissance.com/2007/04/25/on-semantic-distance-and-computer-languages.aspx"&gt;Semantic Distance&lt;/a&gt; as a way of discussing the distance between the execution capabilities of a programming language and the execution requirements of the &lt;a href="http://agilerenaissance.com/2007/03/14/the-problem-domain-problem-solution-and-implementation-axes.aspx"&gt;solution&lt;/a&gt;.  &lt;a href="http://weblog.raganwald.com"&gt;Reg Braithwaite&lt;/a&gt; took this concept and expanded on it in by looking at "&lt;a href="http://weblog.raganwald.com/2007/04/writing-programs-for-people-to-read.html"&gt;how well programs are written for human consumption&lt;/a&gt;" &amp;mdash; this is yet another in a long list of excellent posts from Reg (just call me fanboy).  His observation linking comprehensibility of the program to "the form of the code matches the data the code generates" is the same as how my colleagues and I at &lt;a href="http://web.archive.org/web/19960101-19981215re_/http://www.omnimark.com"&gt;OmniMark Technologies&lt;/a&gt; used to judge how good an &lt;a href="http://www.stilo.com/products/omnimark_overview.html"&gt;OmniMark&lt;/a&gt; program was, by how much it's structure matched the structure of the solution.  There is, however, more to Semantic Distance and in particular its relationship to input and output, problem partitioning and complexity.  In this post, I want to explore this, by recounting how I first learned about Semantic Distance and how to overcome it and then briefly explore its implications on dealing with complexity.
&lt;p&gt;Back in the fall of 1990, my friend &lt;a href="http://www.wilmott.ca/"&gt;Sam Wilmott&lt;/a&gt; used OmniMark to convert a document, an Intergraph document (if I remember correctly), to one based on a specific &lt;a href="http://en.wikipedia.org/wiki/SGML"&gt;SGML&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Document_Type_Definition"&gt;DTD&lt;/a&gt;.  It took him about 2 weeks to write the conversion program.  Afterwards, he was unhappy with his solution so he decided to re-write it.  This time as two programs coupled together using the OmniMark &lt;a href="http://en.wikipedia.org/wiki/Co-routine"&gt;co-routine&lt;/a&gt; mechanism &lt;a href="http://www.its.unimelb.edu.au/manuals/omnimark/docs/html/sample/28.htm"&gt;context-translate&lt;/a&gt;.  I had naively thought that it would take him another 2 weeks, but he was done in 3 1/2 days.  Boy were he and I surprised.  A little while latter, I observed again this non-linear decrease in the amount of development time when writing a solution for a second time using the co-routining model.  Then it happened again and again and it was also observed by some of my other colleagues and some of our customers.  This phenomenon delighted me.  It also bothered me, because I could not find an explanation for why it was happening.  So I started trying to solve it myself.
&lt;p&gt;My first attempt was to attribute this non-linear decrease in development time to the reduced learning curve when you solve a problem for a second time.  However, at best, this explanation would only account for some percentage of the time difference and in some cases the programmers were already knowledgeable about the input and output formats which meant that the learning curve time difference between the two solutions was essentially zero.  My first clue towards a better explanation was the observation that this decrease in development time happened independent of the source and target languages but that the amount of the decrease in development time did vary.
&lt;p&gt;Specifically, I noticed a difference in time decreases between different translations into the same &lt;a href="http://en.wikipedia.org/wiki/CALS_(DOD)"&gt;CALS&lt;/a&gt; DTD.  In other words, the target language was the same but the source languages were different and the time taken to develop their respective solutions was also different.  To capture this observation, I started drawing two points in space and labeled the left dot L1, the source language, and the other dot L2, the target language.  I then drew a straight line between them and said that this was the syntactic distance between the lexical units of the two languages.  This model was too simplistic.  It could not explain the non-linear decrease in time caused by introducing an intermediate language, L1i, between L1 and L2.  Another issue with it, was that I had observed in one case, that it took more time to write a program for two lexically similar languages then it took for a program between two lexically very dissimilar languages.  This was clue number two.
&lt;p&gt;When I looked at the two sets of languages I observed that the two lexically dissimilar languages in fact had similar semantics and the two lexically similar languages had very different semantics.  To capture this notion of semantic difference I drew a curve over top of the line connecting the two dots.  I then reasoned that the area under the curve was where the semantics lay.  Assume for now, that the curve is a 180 degree arc of a circle, the area under the curve is then &lt;blockquote&gt;(PI * ((L2 - L1)/2)**2) / 2&lt;/blockquote&gt;  When you introduce an intermediate language between L1 and L2 you end up with two smaller semi-circles whose combined area is less than the area of the initial semi-circle.  This difference in area is due to the use of the power function, square, in the formula for the area of a circle.  This model shows the non-linear decrease in time that was being observed.  However, the magnitude of difference between the areas is not as large as what we were observing.  So, on the suggestion of &lt;a href="http://www.analecta.com"&gt;Mark Baker&lt;/a&gt;, I now use spheres when presenting this model today.  The volume of sphere is calculated with the power function, cubed, which more approximates the observed decreases in time.
&lt;h2&gt;Implications&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Semantic Distance is actually more "volumetric" than scalar in nature.
&lt;li&gt;Breaking up the Semantic Distance between the Languages L1 and L2, into two smaller distances by introducing an intermediate language is problem partitioning.  The effect of this partitioning is non-linear in nature.
&lt;li&gt;The amount of complexity associated with translating between input and output is proportional to the Semantic Distance between input and output.
&lt;/ol&gt;
&lt;h2&gt;Problems with the Model&lt;/h2&gt;
&lt;p&gt;Here are the major issues with this model that I have identified:
&lt;ol&gt;
&lt;li&gt;This weakness is a variation of &lt;a href="http://en.wikipedia.org/wiki/Zeno%27s_Paradox"&gt;Zeno's Paradox&lt;/a&gt; about &lt;a href="http://en.wikipedia.org/wiki/Zeno%27s_Paradox#Achilles_and_the_tortoise"&gt;Achilles and a tortoise&lt;/a&gt;.  The model predicts that if partitioning were recursively applied, then there should be no work to be done, which is equivalent to the argument that Achilles can never pass the tortoise.  Clearly, this is not the case.  In fact, there are aspects of the Semantic Distance that cannot be sub-divided, they are atomic in nature.  These atomic "aspects" are sometimes completely orthogonal to any other aspects of the Semantic Distance between the input and output languages.  This means that Semantic Distance is in fact n-dimensional in nature.  And yes Reg, this means that there cannot be one language which has the shortest Semantic Distance between its capabilities and those needed to handle the n-dimensional nature of the Semantic Distance between any possible pair of input and output languages.
&lt;li&gt;As my friend Jacques Legare, pointed out, the model does not show or prove that there is a relationship between Semantic Distance, complexity and implementation effort.  To me there has to be, it is the only ting that makes sense to me, but showing it, proving it, is an open question.  I am hoping that some reader will be able to provide assistance in answering this question, one way or the other?
&lt;li&gt;As nice as I find the explanation, and while it seems correct to me, I wonder if there is a better or more correct and accurate explanation?
&lt;/ol&gt;
&lt;h2&gt;Two Bits of Advice on Writing Conversion Programs I Learned from &lt;a href="http://agilerenaissance.com/2006/07/19/sam-wilmott.aspx"&gt;Sam Wilmott&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When translating from one input language to another, create the first intermediate language close to the input rather than the output language.  Many times it is enough to just normalize the input.  That is convert the raw and messy input into the format that a perfect author would created.  This often times or with a little bit of design eliminates most of the corner cases and makes translating it into the output straight forward.  The first output to create when using this technique should be a stylized human readable version, which captures as much information from the input as possible.  This readable version provides you with three things: visibility or feedback, easily testable output and easier maintenance.  Readability and testability helps to make sure that you are translating to the normalized form correctly and quickly and the same applies if maintenance is required.  Once you have the conversion completed, you can convert the readable format into the required output format.  If conversion to and from the readable output becomes a bottleneck, you just have to replace the output statement in the first program.
&lt;p&gt;To eliminate problematic complexity between different Semantic Distance axes, introduce intermediate languages which only deal with changing one of the Semantic axis at a time.
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;To me, the neat things about this journey, was learning to use problem partitioning to reduce the complexity and time to overcome the Semantic Distance between input and output and coming to understanding just how powerful and wise the age old advice that you conqueror large problems/tasks by breaking them down into smaller ones.
</description><category>Development</category><comments>http://agilerenaissance.com/2007/05/10/on-the-semantic-distance-between-input--output-problem-partitioning--complexity.aspx#Comments</comments><guid isPermaLink="false">01e75227-ddde-4c46-aab8-e73957632e5e</guid><pubDate>Thu, 10 May 2007 16:56:00 GMT</pubDate></item><item><title>Links for 2007-05-10</title><link>http://agilerenaissance.com/2007/05/10/links-for-20070510.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tech.groups.yahoo.com/group/extremeprogramming/message/128578"&gt;On the value of vagueness in organizational directives&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.dhemery.com"&gt;Dale Emery&lt;/a&gt; recounts a story he heard about a CEO's response to a question about the company's primary value, which is to have fun.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf"&gt;A Lock-Free Hash Table&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://atomicobject.com/pages/PerilsPitfalls"&gt;Perils and Pitfalls of Agile Adoption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://agileexperience.blogspot.com/2007/04/sucked-back-into-waterfall.html"&gt;Sucked back into the waterfall&lt;/a&gt;&lt;br&gt;This is a harrowing tale&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/10/links-for-20070510.aspx#Comments</comments><guid isPermaLink="false">7bbd1684-c303-47fa-896c-97ad2455c492</guid><pubDate>Thu, 10 May 2007 16:55:00 GMT</pubDate></item><item><title>Links for 2007-05-09</title><link>http://agilerenaissance.com/2007/05/09/links-for-20070509.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ars.userfriendly.org/cartoons/?id=20070505"&gt;Miranda's Technical Question&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jason Taylor's, The Good Life:
 &lt;ul&gt;
  &lt;li&gt;&lt;a href="http://jtaylorgoodlife.blogspot.com/2007/04/how-to-be-effective-leader.html"&gt;How To Be an Effective Leader&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://jtaylorgoodlife.blogspot.com/2007/04/how-to-be-effective-manager.html"&gt;How to Be an Effective Manager&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://jtaylorgoodlife.blogspot.com/2007/04/priorities-for-tough-decisions.html"&gt;Priorities for Tough Decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://jtaylorgoodlife.blogspot.com/2007/04/dont-focus-on-rocks.html"&gt;Don't Focus on the Rocks&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/05/07/incremental-environments-for-performance-excellence.aspx"&gt;Incremental Environments for Performance Excellence&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf"&gt;The Flow of Change&lt;/a&gt;&lt;br&gt;Excellent model on how to do branching and merging of code lines with a source code control system.  I am a big fan of Perforce's SCM P4 and have been using it since 1995/6 -- the paper's model is agnostic to SCM tool you use.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.clarkeching.com/2007/05/earthquakeproof.html"&gt;Earthquake-proofing organisations [and projects]&lt;/a&gt;&lt;br&gt;A viable explanation of why some longer lived, 30+ years, companies have escaped the boom-bust cycle that affects most longer lived companies.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.daimi.au.dk/~madst/ecoop04/main.pdf"&gt;The Expression Problem Revisited: Four new solutions using generics&lt;/a&gt;&lt;blockquote&gt;The expression problem (aka the extensibility problem) refers to a fundamental dilemma of programming: To which degree can your application be structured in such a way that both the data model and the set of virtual operations over it can be extended without the need to modify existing code, without the need for code repetition and without runtime type errors.&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/09/links-for-20070509.aspx#Comments</comments><guid isPermaLink="false">25fe34e2-7d27-4f3e-8295-abddcbbd8f91</guid><pubDate>Wed, 09 May 2007 08:04:00 GMT</pubDate></item><item><title>Links for 2007-05-04</title><link>http://agilerenaissance.com/2007/05/04/links-for-20070504.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/05/agile-teams-dashboard.html"&gt;The Agile Team's Dashboard&lt;/a&gt;&lt;br&gt;Using feedback to improve delivery of value.  Not using available feedback mechanism is an important waste, it is unfortunate it does not have a unique name in English that I know of. Does someone out there?&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/05/warusa_kagen_is_a_revolution_o.html"&gt;Warusa Kagen is a Revolution of Awareness&lt;/a&gt;&lt;br&gt;The procrastinator in me hates phrases like "now things are the worst ever" and this is in spite of the my numerous painful lessons in the truth of need for eternal vigilance; I still need to read daily posts like this and take them to heart.  Thanks &lt;a href="http://www.gembapantarei.com/about_gemba_panta_rei/"&gt;Jon Miller&lt;/a&gt;, for reminding and encouraging us to not give in.&lt;/li&gt;
&lt;li&gt;&lt;a href=""&gt;Standards, Abnormality and the Ideal&lt;/a&gt;&lt;br&gt;Jon continues on with exploring the implications of Warusa Kagen and lists three abnormalities to illustrate his exploration:
&lt;ol&gt;
&lt;li&gt;When work is performed in the absence of a standard, this is an abnormality&lt;/li&gt;
&lt;li&gt;When standards exist but are not being followed, this is an abnormality&lt;/li&gt;
&lt;li&gt;When standards exist and are being followed, this is an abnormality&lt;/li&gt;
&lt;ol&gt;
The third point threw me for a loop.  It was only when I read on that it hit me, where is the feedback or what &lt;a href="http://en.wikipedia.org/wiki/Chris_Argyris"&gt;Chris Argyris&lt;/a&gt; calls &lt;a href="http://stmail.fju.edu.tw/~a8635612/clinical/theory/doubble.htm"&gt;Double Loop Learning&lt;/a&gt; in the three conditions.  In other words, there are more possibilities than just these three.  Once again, I bought into a simplistic model; boy do I need a "Revolution of Awareness".&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.agilemanagement.net/Articles/Weblog/LifeLessons.html"&gt;Life Lessons&lt;/a&gt;&lt;br&gt;This is a variant of the blogging game, 5-things-you-don't-know-about-me, this time seeking lessons-learned from managers.  The posting drives home the point that managers need to look themselves in the eye and say, "What systems have we forced our colleagues and ourselves to suffer in?"  I recommend that you read the other postings in this series as well.&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/04/links-for-20070504.aspx#Comments</comments><guid isPermaLink="false">457be4ba-e271-443c-a783-131c5b421f1b</guid><pubDate>Fri, 04 May 2007 09:21:00 GMT</pubDate></item><item><title>Links for 2007-05-03</title><link>http://agilerenaissance.com/2007/05/03/links-for-20070503.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cio.com/article/105001/What_Every_Manager_Should_Know_About_Feedback"&gt;What Every Manager Should Know About Feedback&lt;/a&gt;&lt;br&gt;The problem with articles like this is to see just how many mistakes one has made in one's career and wishing you had received feedback sooner.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.futureworksconsulting.com/blog/2007/04/27/frim-another-way-to-gather-data/"&gt;FRIM: Another Way to Gather Data&lt;/a&gt;&lt;br&gt;The title does not capture what this technique provides.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jrothman.com/weblog/2007/04/letting-go-of-bduf.html"&gt;Letting Go of BDUF&lt;/a&gt;&lt;br&gt;A true story of just how hard this is to do.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.american.com/archive/2007/april-0407/no-high-fives-at-toyota"&gt;No High Fives at Toyota&lt;/a&gt;&lt;br&gt;A nice commentary on how Toyota treats its latest milestone as just that another milestone on the road to perfection and the issues they are currently facing.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://herdingcats.typepad.com/my_weblog/2007/05/risk_management.html"&gt;Risk Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/05/01/patterns-practices-security-engineering-explained.aspx"&gt;patterns &amp; practices Security Engineering Explained&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.manasclerk.com/blog/2007/05/02/ursala-k-leguin-on-the-power-of-open-source-ideas/"&gt;Ursala K. LeGuin on the power of Open Source Ideas&lt;/a&gt;&lt;br&gt;I second the recommendation of the book &lt;a href="http://www.chapters.indigo.ca/books/item/books-978006105488/0061054887/Dispossessed?ref=Search+Books%3a+'Dispossessed'"&gt;The Dispossessed&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/SAAS/?p=322"&gt;They saw the Silverlight, and saw that it was good&lt;/a&gt;&lt;br&gt;Microsoft's latest chess move in the Internet business war.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/01#xmonad_part1_model"&gt;Roll Your Own Window Manager: Part 1: Defining and Testing a Model&lt;/a&gt;&lt;br&gt;Neat model and accomplishment.&lt;/a&gt;
&lt;li&gt;&lt;a href="http://brinch-hansen.net/"&gt;Per Brinch Hansen Archive&lt;/a&gt;&lt;br&gt;One of the most under appreciated pioneers of Computer Science, Operating Systems and Parallel Programming.  He loved to develop elegant programs and one of the best summaries of his spirit is a graduate student, Anil Menon (1995):
&lt;blockquote&gt;
Over the last ten years, I've studied under many teachers and taken many courses. Dr. Brinch Hansen's course was unlike no other. He was interested in solving problems in parallel. I had no idea, even after five earlier courses, that it was so difficult. He took seven to eight different problems and showed by means of a series of beautiful and elegant programs, how one would go about writing parallel programs. His insights were often remarkable, for example, his deep idea that process structures were the correct way to reason and work with parallel processing, just as data structures are the key to sequential processing. Or the time he told us about the importance of constraints in the design process.
&lt;p&gt;Perhaps the conviction always evident in his presentation came from the fact that these programs were his own, and not copied out some standard book. Even now it mystifies me to some extent how he could reduce a really complex program to a series of subprograms each no more than a dozen lines, the whole piece elegantly connected.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://workingsmarter.typepad.com/my_weblog/2007/04/whats_a_manager.html"&gt;What's a manager to do?&lt;/a&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/05/03/links-for-20070503.aspx#Comments</comments><guid isPermaLink="false">84bc554c-338a-414e-905b-17a7cc43b53a</guid><pubDate>Thu, 03 May 2007 13:36:00 GMT</pubDate></item><item><title>Lean Software Engineering Blog</title><link>http://agilerenaissance.com/2007/04/27/lean-software-engineering-blog.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;This new blog, &lt;a href="http://leansoftwareengineering.com"&gt;Lean Software Engineering&lt;/a&gt; contains some of the best thinking on how to improve software development.  The two writers, &lt;a href="http://leansoftwareengineering.com/2007/04/12/about-the-authors/"&gt;Corey Ladas&lt;/a&gt;, who works with &lt;a href="http://www.agilemanagement.net/Articles/hidden/Biography.html"&gt;David Anderson&lt;/a&gt; at &lt;a href="http://pro.corbis.com/"&gt;Corbis&lt;/a&gt; and &lt;a href="http://leancode.com/blog"&gt;Bernie Thompson&lt;/a&gt; practice what they preach.
&lt;p&gt;In the latest entry, &lt;a href="http://leansoftwareengineering.com/2007/04/27/more-than-one-solution-to-the-project-triangle/"&gt;More than one solution to the Project Triangle&lt;/a&gt;, Cory takes on the infamous &lt;a href="http://en.wikipedia.org/wiki/Project_triangle"&gt;Iron Triangle&lt;/a&gt; of project management.  He starts by arguing against those who want to make it more complicated by adding a quality dimension, as &lt;a href="http://www.awprofessional.com/authors/bio.asp?a=6c7cd640-d729-45ba-98d7-a5846b0ec7a4&amp;rl=1"&gt;Joe Marasco&lt;/a&gt; does in this article, &lt;a href="http://www-128.ibm.com/developerworks/rational/library/4291.html"&gt;The project pyramid&lt;/a&gt; -- there is a lot of good information in this article.
&lt;p&gt;The main point of Cory's entry is that prioritizing the tradeoffs is the central task of leading/managing development.  He concludes with a nice intro to &lt;a href="http://web.mit.edu/wfinch/www/research/set_based_design/"&gt;Set Based Design&lt;/a&gt; as an effective way of handling the scope vs cost tradeoff.
&lt;p&gt;My favorite post is &lt;a href="http://leansoftwareengineering.com/2007/04/22/schedule-is-orthogonal-to-workflow/"&gt;Schedule is orthogonal to workflow&lt;/a&gt;.  This concept was a revelation.  It provides a deeper principle in explaining the success behind &lt;a href="http://www.agilemanagement.net/Articles/Weblog/KanbaninAction.html"&gt;Kanban in Action&lt;/a&gt; and it shows the power of &lt;a href="http://en.wikipedia.org/wiki/Axiomatic_design"&gt;Axiomatic Design&lt;/a&gt;.
</description><category>Lean Software Development</category><comments>http://agilerenaissance.com/2007/04/27/lean-software-engineering-blog.aspx#Comments</comments><guid isPermaLink="false">5b7bc15d-a82e-49fd-8cd5-cc0f5aee8949</guid><pubDate>Fri, 27 Apr 2007 16:35:00 GMT</pubDate></item><item><title>Links for 2007-04-27</title><link>http://agilerenaissance.com/2007/04/27/links-for-20070427.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dmreview.com/article_sub.cfm?articleID=1035293"&gt;IQ and Muda: Information Quality Eliminates Waste&lt;/a&gt;&lt;br&gt;Ah, I love of sound waste being rooted out in the morning.&lt;/li&gt;
&lt;li&gt;Streaming &amp; Streaming programming languages, you can't keep a good idea down.
 &lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.technologyreview.com/Infotech/18597/"&gt;Simpler Programming for Multicore Computers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.cse.unsw.edu.au/~dons/papers/stream-fusion.pdf"&gt;Stream Fusion: From Lists to Streams to Nothing at All&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://metalua.blogspot.com/2007/04/lazy-streams.html"&gt;Lazy streams&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://research.microsoft.com/~simonpj/papers/ptr-tag/index.htm"&gt;Faster laziness using dynamic pointer tagging&lt;/a&gt;&lt;br&gt;Making higher level languages run faster, warms my soul.&lt;/li&gt;
&lt;li&gt;&lt;a href=""&gt;Combining Events And Threads For Scalable Network Services&lt;/a&gt;&lt;br&gt;This paradigm blending was done in Haskel.  Programs that use it have comparable performance to C programs for Disk and TCP/IP throughput and similar performance to Apache WebServer for static page delivery.  As well, they were able to launch 10 Million threads in 480 MBytes of memory -- yes that is 48 bytes overhead per thread, they were only able to launch 16 K with the C Native POSIX Thread Library.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.folklore.org/StoryView.py?project=Macintosh&amp;story=Creative_Think.txt&amp;characters=Alan%20Kay&amp;sortOrder=Sort%20by%20Date"&gt;Creative Think&lt;/a&gt;&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/Andy_Hertzfeld"&gt;Andy Hertzfeld&lt;/a&gt; account of talk &lt;a href="http://en.wikipedia.org/wiki/Alan_Kay"&gt;Alan Kay&lt;/a&gt; gave in July of 1982.  Wow!&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/SAAS/?p=321"&gt;Resistance fades as SaaS goes mainstream&lt;/a&gt;&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/Software_as_a_Service"&gt;Software as a service (SaaS)&lt;/a&gt; looks like it will be one of the major &lt;a href=""http://en.wikipedia.org/wiki/Tectonics&gt;tectonic&lt;/a&gt; shifts in the use of software.  &lt;a href="http://www.philwainewright.com/about/bio.htm"&gt;Phil Wainewright&lt;/a&gt; is one of the best analysis of this movement.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shmula.com/386/quasi-lean-at-a-call-center"&gt;Quasi-Lean at a Call Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/04/how_to_use_a_kaizen_newspaper.html"&gt;How to Use a Kaizen Newspaper&lt;/a&gt;&lt;br&gt;I now recommend that people start with learning to see waste and record it.  Jon Miller shows how to take this to the next level.&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/04/27/links-for-20070427.aspx#Comments</comments><guid isPermaLink="false">382e0608-0688-4884-9233-41916d2da23c</guid><pubDate>Fri, 27 Apr 2007 16:33:00 GMT</pubDate></item><item><title>Links for 2007-04-26</title><link>http://agilerenaissance.com/2007/04/26/links-for-20070426.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.think-box.co.uk/blog/2006/08/bakers-dozen-statements-from-agile.html"&gt;BAKER'S DOZEN: Statements from an Agile subculture&lt;/a&gt;&lt;br&gt;Excellent advice on how to improve delivering value.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leanagile.blogspot.com/2007/04/where-does-qa-fit-within-agile.html"&gt;Where does QA fit within Agile?&lt;/a&gt;&lt;br&gt;How one company has integrated QA into their Agile strategy.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.solonline.org/pra//tool/ladder.html"&gt;The Ladder of Inference&lt;/a&gt; and &lt;a href="http://www.systems-thinking.org/loi/loi.htm"&gt;Ladder of Inference&lt;/a&gt;&lt;br&gt;A short introduction to this concept developed by &lt;a href="http://en.wikipedia.org/wiki/Chris_Argyris"&gt;Chris Argyris&lt;/a&gt;. Thanks to &lt;a href="http://www.agileadvice.com/archives/2007/04/the_ladder_of_i.html"&gt;Mishkin Berteig&lt;/a&gt; for the references.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com/2007/04/25/6-things-ive-learned-about-software-development/"&gt;6 things I’ve learned about software development&lt;/a&gt;&lt;br&gt;I thought of something &lt;a href="http://www.urbandictionary.com/define.php?term=snarky"&gt;snarky&lt;/a&gt; to say when I read the title, but the body made me bite my tongue.&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/04/26/links-for-20070426.aspx#Comments</comments><guid isPermaLink="false">aa897003-5405-4ac1-9eab-095a1e38207c</guid><pubDate>Thu, 26 Apr 2007 08:33:00 GMT</pubDate></item><item><title>On Semantic Distance and Computer Languages</title><link>http://agilerenaissance.com/2007/04/25/on-semantic-distance-and-computer-languages.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;One of the recurring themes that programming oriented bloggers post about is the suitability or lack of some programming language for solving problems.  Two excellent examples ( and extremely informative posts in their own right) of this are: &lt;a href="http://weblog.raganwald.com/2007/03/why-why-functional-programming-matters.html"&gt;Why Why Functional Programming Matters Matters&lt;/a&gt; and a commentary on it, &lt;a href="http://www.kirit.com/Measuring%20the%20power%20of%20programming%20languages"&gt;Measuring the power of programming languages&lt;/a&gt;.  What is interesting to me is that none of the posts that I have read have every framed the discussion around the semantic distance between the &lt;a href="http://agilerenaissance.com/2007/03/14/the-problem-domain-problem-solution-and-implementation-axes.aspx"&gt;solution&lt;/a&gt; and the capabilities of the language used to implement the solution.  Bridging this distance is where most of the effort of development occurs.  The closer the execution semantics of the implementation language are to the execution semantics of the solution the less implementation work is required.  &lt;a href="http://weblog.raganwald.com"&gt;Reg Braithwaite&lt;/a&gt;, the author of the first example, has a number of wonderful examples of this, spread throughout his posts, in fact one could argue that &lt;strong&gt;semantic distance&lt;/strong&gt; is one of the central issues of his intellectual life.
&lt;p&gt;One of the clearest examples of semantic distance is in a wonderful paper, written by &lt;a href="http://cs-www.cs.yale.edu/homes/hudak/"&gt;Paul Hudak&lt;/a&gt;, called &lt;a href="http://haskell.org/papers/NSWC/jfp.ps"&gt;Haskell vs. Ada vs. C++ vs. Awk vs. ... An Experiment in Software Prototyping Productivity&lt;/a&gt; (beware the paper is only available in PostScript).  This paper describes the results of an experiment comparing the suitability of different languages for creating prototypes of systems.  One of the most interesting insights for me was the solution developed for the test prototype that needed to be built.  The solution was based on a brilliant abstract and I realized that I could use it to solve a similar type problem I had and that I was not able to use Haskell in my solution.  I could however imagine that I was able to use Haskell and so I did and developed a solution using Haskell.  Now all I needed to do was translate this solution into the language I was using.  To do this did not require that I write a badly implemented version of Haskell, rather I was able to quickly implemented a set of abstractions that matched those of my solution and that solved the problem.  I used this technique because of my understanding of the concept of semantic distance and how I needed to overcome it to solve the problem.  What I have since discovered is that many others use this technique as well.
&lt;p&gt;I was a co-creator/developer of the streaming programming language &lt;a href="http://www.stilo.com/products/omnimark_overview.html"&gt;OmniMark&lt;/a&gt;.  On a number of occasions I have met former OmniMark programmers and a number of them had said that sometimes when they are faced with tough problems they work out a solution by pretending that they still had OmniMark.  Once they have solved the problem using OmniMark they then implement a solution in the language they are using.
&lt;p&gt;If you survey the over 5000 different languages and dialects that humans speak, you find that there is no universal set of equivalent semantics between them.  This fact implies that there can never be a computer language which will always have the shortest semantic distance between itself and any solution.  Therefore there never will be a universally best programming language.  On the other hand, if you cannot use the best language for a solution you can always pretend you can.  Once you have a solution then you can implement the solution in the language you have.  Two follow on points to this: I hope you now see the value in learning other languages/semantics and that the downside is never being able to use the best language available for the problems you have to solve and always having to use this technique to bridge the semantic distances.
</description><category>Development</category><comments>http://agilerenaissance.com/2007/04/25/on-semantic-distance-and-computer-languages.aspx#Comments</comments><guid isPermaLink="false">daa1cb79-abf2-4f32-97da-c7d42ac4f306</guid><pubDate>Wed, 25 Apr 2007 17:54:19 GMT</pubDate></item><item><title>Links for 2007-04-25</title><link>http://agilerenaissance.com/2007/04/25/links-for-20070425.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://thecodist.com/fiche/thecodist/article/coprolitic-programming"&gt;Coprolitic Programming&lt;/a&gt;&lt;br&gt;New word for today, &lt;a hre="http://dictionary.reference.com/browse/Coprolite"&gt;coprolite&lt;/a&gt; and a "scary secret of our industry".  My thanks to &lt;a href="http://weblog.raganwald.com/"&gt;Reg Braithwaite&lt;/a&gt; for the reference.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://elegantsolutions.typepad.com/elegant_solutions/2007/04/new_world_order.html"&gt;Toyota ranks #1 globally in sales&lt;/a&gt;&lt;br&gt;Toyota the Father of Lean has for years been the most profitable car maker in the world and in fact is just about #1 in every other measure, except for most vehicles sold, which GM has held forever.  By the way Toyota past GM sooner then they had planned.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gembapantarei.com/2007/04/building_quality_into_the_teac.html"&gt;Building Quality Into the Teaching of Medicine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/04/25/links-for-20070425.aspx#Comments</comments><guid isPermaLink="false">a7f9e83d-0b8b-4d4e-9f6f-68562f7441de</guid><pubDate>Wed, 25 Apr 2007 17:46:00 GMT</pubDate></item><item><title>Links for 2007-04-23</title><link>http://agilerenaissance.com/2007/04/23/links-for-20070423.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com/2007/04/22/schedule-is-orthogonal-to-workflow/"&gt;Schedule is orthogonal to workflow&lt;/a&gt;&lt;br&gt;Insightful post on how to evaluate the quality of your requirements, designs and your scheduling.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hbswk.hbs.edu/item/5588.html"&gt;Are Great Teams Less Productive?&lt;/a&gt;&lt;br&gt;Short interview with Amy Edmondson on her research findings about learning in organizations.  The paper, &lt;a href="http://hbswk.hbs.edu/item/5571.html"&gt;When Learning and Performance are at Odds: Confronting the Tension&lt;/a&gt;, which triggered the interview is also worth reading, bit dry though.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leansoftwareengineering.com"&gt;Cory Ladis&lt;/a&gt;, the author of the first item above, recommends reading &lt;a href="http://blogs.msdn.com/jmeier/archive/default.aspx"&gt;J.D. Meier's Blog&lt;/a&gt;.  I did and here are my favorites from his blog:
 &lt;ul&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/12/09/catalysts-and-drains.aspx"&gt;Catalysts and Drains&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/12/01/be-the-software.aspx"&gt;Be the Software&lt;/a&gt;&lt;br&gt;Love the title.  Excellent advice how to improve feedback and learning for the "customer" about a product.
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/12/03/scenario-evaluations-for-product-design-and-feedback.aspx"&gt;Scenario Evaluations for Product Design and Feedback&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/12/09/scenario-and-feature-matrixes.aspx"&gt;Scenario and Feature Matrixes&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/12/11/input-validation-principles-and-practices.aspx"&gt;Input Validation Principles and Practices&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2006/03/17/553421.aspx"&gt;Time-boxes, Rhythm, and Incremental Value&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/02/02/world-class-testing.aspx"&gt;World Class Testing&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/02/03/2-key-process-pitfalls.aspx"&gt;2 Key Process Pitfalls&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/02/04/avoiding-do-overs-testing-your-key-engineering-decisions.aspx"&gt;Avoiding Do Overs - Testing Your Key Engineering Decisions&lt;/a&gt;&lt;br&gt;Advice on how to do spikes of engineering design decisions for large applications.
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/02/09/task-analysis-grid-for-communicating-product-design.aspx"&gt;Task-Analysis Grid for Communicating Product Design&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/02/22/scenario-frames-for-guidance.aspx"&gt;Scenario Frames for Guidance&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/09/influencing-without-authority.aspx"&gt;Influencing Without Authority&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/09/requirements-frame.aspx"&gt;Requirements Perspectives&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/13/roles-and-goals.aspx"&gt;Roles and Goals&lt;/a&gt;&lt;br&gt;A nice little post on how easy it is to have lots of excellent user-centered motion but no progress.
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/18/driver-s-guide-vs-owner-s-manual.aspx"&gt;Driver's Guide vs. Owner's Manual&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/18/must-vs-should-vs-could.aspx"&gt;MUST vs. SHOULD vs. COULD&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/18/perspectives-frame.aspx"&gt;Perspectives Frame&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/21/worst-things-first.aspx"&gt;Worst Things First&lt;/a&gt;&lt;br&gt;Given a choice, I always want to hear the bad news first!
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmeier/archive/2007/03/21/the-secret-of-time-management.aspx"&gt;The Secret of Time Management&lt;/a&gt;&lt;br&gt;Take the time to read the big rock story.
 &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/04/a_burnrate_base.html"&gt;A Burn-Rate Based Estimation Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><category>Links</category><comments>http://agilerenaissance.com/2007/04/23/links-for-20070423.aspx#Comments</comments><guid isPermaLink="false">59a4e44e-e84f-4db2-9945-fea3318308d9</guid><pubDate>Mon, 23 Apr 2007 14:08:00 GMT</pubDate></item><item><title>Creativity and Resource Constraints</title><link>http://agilerenaissance.com/2007/04/21/creativity-and-resource-constraints.aspx</link><dc:creator>Norbert Winklareth</dc:creator><description>&lt;p&gt;At the end of this article, &lt;a href="http://sloanreview.mit.edu/smr/issue/2007/spring/08/"&gt;In Praise of Resource Constraints&lt;/a&gt; the author quotes an old Finnish army adage:
&lt;BLOCKQUOTE&gt;
(derived from Finland's battles against much bigger adversaries throughout the course of its history):&lt;br&gt;"If the heavy armor does not move with four people pushing it, take one man away and let us see if three can do it!"
&lt;/BLOCKQUOTE&gt;
&lt;p&gt;This made me laugh and remember a quote from a blog post, &lt;a href="http://www.gembapantarei.com/2007/04/what_would_you_do_if_you_had_n.html"&gt;What Would You Do If You Had No __?&lt;/a&gt; attributed to &lt;a href="http://en.wikipedia.org/wiki/Taiichi_Ohno"&gt;Taiichi Ohno&lt;/a&gt;:
&lt;BLOCKQUOTE&gt;
"Your wits don't work until you feel the squeeze."
&lt;/BLOCKQUOTE&gt;
&lt;p&gt;This matches my experience as well.  But why?  My theory is that unlimited resources makes it is too easy to stop asking assumption challenging questions.  Without these type of questions we are not broadening our learning, we are just deepening specific knowledge or continually reaffirming what we already know or worst believe to be the case.  At the beginning of one of Howard Gardner's book he relates a story about being asked if he, a professor, feared not being able to answer someone's question.  No he replied, "I fear not being able to think of questions to ask".
&lt;p&gt;So what are you removing to help yourself think more creatively?
</description><comments>http://agilerenaissance.com/2007/04/21/creativity-and-resource-constraints.aspx#Comments</comments><guid isPermaLink="false">81fffa91-f5bf-4b10-a517-f0ed85951847</guid><pubDate>Sat, 21 Apr 2007 11:12:00 GMT</pubDate></item></channel></rss>