<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEEDQnc4cSp7ImA9WhRVFEo.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002</id><updated>2012-01-13T08:37:53.939-08:00</updated><category term="deliberate practice" /><category term="reflection" /><category term="exploratory testing" /><category term="continuous integration" /><category term="bug" /><category term="coleen" /><category term="organization" /><category term="reminiscing" /><category term="reputation" /><category term="five why" /><category term="interruptions" /><category term="valentines" /><category term="misleading" /><category term="win32" /><category term="data loss" /><category term="git" /><category term="python" /><category term="youth" /><category term="debian" /><category term="serendipity" /><category term="learning" /><category term="dance" /><category term="thinking" /><category term="merge" /><category term="benefit" /><category term="lean" /><category term="retrospectives" /><category term="nursing" /><category term="process" /><category term="mistakes" /><category term="programming" /><category term="information" /><category term="google alerts" /><category term="reset" /><category term="scm" /><category term="software configuration management" /><category term="improvement" /><category term="hudson" /><category term="format" /><category term="communication" /><category term="simple" /><category term="developerworks" /><category term="preparation" /><category term="style" /><category term="stake" /><category term="code ownership" /><category term="heuristic" /><category term="paris" /><category term="build" /><category term="anniversary" /><category term="CruiseControl" /><category term="windows7" /><category term="meetings" /><category term="testing" /><category term="health" /><category term="mercurial" /><category term="skill" /><category term="discovery" /><title>Mark Waite</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://markwaite.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MarkWaite" /><feedburner:info uri="markwaite" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEYMQHw7fSp7ImA9Wx5WGUo.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-6026494367367767305</id><published>2010-10-01T15:29:00.000-07:00</published><updated>2010-10-01T15:29:41.205-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-01T15:29:41.205-07:00</app:edited><title>Team Centered Bug Finding</title><content type="html">We've agreed to deliver a "release ready" version of our internal use components every three weeks.  That is a nice step from the "deliver once a year" model we've used in the past, and we're trying to make the transition to the new release cycle successfully.&lt;br /&gt;
&lt;br /&gt;
As part of that transition, we've returned to a practice we had before.  We hold once a week test days for the entire development team.  "Test Friday" is dedicated to testing.&lt;br /&gt;
&lt;br /&gt;
Positives&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Test day happened!  It feels good to dedicate one day per week to whole team testing&lt;br /&gt;
&lt;li&gt;Color printer sitting in the pairing area and pens for handwritten notes on the sheets was a great way to rapidly record bugs as they were detected, without too badly interrupting the flow of testing for entering bugs into a bug tracking database.  It made a difference that the printer was within a few steps of the developer desks&lt;br /&gt;
&lt;li&gt;Bug triage at the end of the testing day with the papers on tables in a large conference room seemed to work reasonably well&lt;br /&gt;
&lt;li&gt;Bug pages with pictures were much quicker to process than bug pages which only contained words&lt;br /&gt;
&lt;li&gt;Chance to use products "end to end" increases our exposure to customer experiences, helps us understand how the products feel, and ultimately will help us make better products&lt;br /&gt;
&lt;li&gt;Native language speakers make localization testing much more effective (German and Russian native speakers in the team are a great help)&lt;br /&gt;
&lt;li&gt;Having a "reference machine" with a previous version of the products was a good idea&lt;br /&gt;
&lt;/ul&gt;
Negatives
&lt;ul&gt;&lt;li&gt;System setup too time consuming - some of us spent most of the test time configuring systems to meet the base requirements before we could install and test our own code&lt;br /&gt;
&lt;li&gt;Builds had to be taken from a "temporary branch" because one of the other teams in the company had provided code which was not ready to install.  Building on that temporary branch meant using a temporary machine, and the temporary machine was not configured the same as the standard build machines, so it did not sign the executables&lt;br /&gt;
&lt;li&gt;Inexperienced with bug detection techniques to rapidly detect if there is a problem in "known hot spots".  Log file analyzers and other bug detection oracles need to be added to the code and used in our investigations&lt;br /&gt;
&lt;li&gt;The "reference machine" did not have enough configuration to use as a reference in the most important areas&lt;br /&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-6026494367367767305?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CeZr0VQ8ykgTXZhlygv8K0dpoNI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CeZr0VQ8ykgTXZhlygv8K0dpoNI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CeZr0VQ8ykgTXZhlygv8K0dpoNI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CeZr0VQ8ykgTXZhlygv8K0dpoNI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/DdzrVPuAnDE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/6026494367367767305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=6026494367367767305" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6026494367367767305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6026494367367767305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/DdzrVPuAnDE/team-centered-bug-finding.html" title="Team Centered Bug Finding" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/10/team-centered-bug-finding.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNQH44fSp7ImA9Wx5QEE4.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-764046751774186988</id><published>2010-08-28T15:50:00.000-07:00</published><updated>2010-08-28T15:54:51.035-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-28T15:54:51.035-07:00</app:edited><title>64 bit Debian Testing on a low power desktop machine</title><content type="html">I've been experimenting with a cheap, low power, quiet computer running the 64 bit Debian testing distribution ("Squeeze").  The experience has included delights, several positives and some negatives.&lt;br /&gt;
&lt;h3&gt;Delights:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fanless &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813121399&amp;cm_re=D510_motherboard-_-13-121-399-_-Product"&gt;Intel Atom D510 processor and motherboard&lt;/a&gt; works great, even in my bedroom (quiet enough that I leave it on while sleeping)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.com/landing/chrome/beta/"&gt;Google Chrome beta&lt;/a&gt; is fast and impressively stable on Debian Testing.  The Debian IceWeasel (rebranded Firefox) is acceptable, but Chrome makes web browsing pleasant and snappy, even on the Intel Atom D510 processor in my low power box&lt;/li&gt;&lt;li&gt;&lt;a href="https://chrome.google.com/extensions/detail/ajpgkpeckebdhofmmjfgcjjiiejpodla"&gt;XMarks for Google Chrome beta&lt;/a&gt; works smoothly and well, copying my bookmarks between computers and operating systems seamlessly and easily&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hudson-ci.org/"&gt;Hudson continuous integration server&lt;/a&gt; upgrades are trivial with the &lt;a href="http://pkg.hudson-labs.org/debian/"&gt;Debian repository&lt;/a&gt; provided by the Hudson team&lt;/li&gt;&lt;li&gt;&lt;a href="http://desktop.google.com/en/linux/download.html"&gt;Google desktop search&lt;/a&gt; has been interesting on Debian (works, behaves as I expected&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.debian.org/releases/testing/"&gt;Debian testing&lt;/a&gt; has been very usable&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Positives:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;No virus scanner performance penalty for my disc accesses&lt;/li&gt;
&lt;li&gt;Frequent software updates keep the system running smoothly&lt;/li&gt;
&lt;li&gt;Interesting new things to learn in an unfamiliar environment&lt;/li&gt;
&lt;li&gt;Ample memory (4 GB), a dual core processor and hyperthreading keep the computer feeling responsive even when I run several different demanding tasks&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Negatives:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;My experimental code was not ready for 64 bit, and is still not ready for 64 bit, so it has taken some work to get the experimental code running on this new environment&lt;/li&gt;
&lt;li&gt;Wireless networking has not been successful on this low end machine.  Part of that is my own fault because I can only invest small amounts of time in the setup&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
My most sincere thanks to the Debian project team, the Google development team, the Hudson development team, and so many others.  They've provided a free software stack that looks and feels smooth, interesting, and fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-764046751774186988?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-3TyzPa2JSwQRPfnVVdt6_QqqDM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-3TyzPa2JSwQRPfnVVdt6_QqqDM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-3TyzPa2JSwQRPfnVVdt6_QqqDM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-3TyzPa2JSwQRPfnVVdt6_QqqDM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/OinPRpg-XTg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/764046751774186988/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=764046751774186988" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/764046751774186988?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/764046751774186988?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/OinPRpg-XTg/64-bit-debian-testing-on-low-power.html" title="64 bit Debian Testing on a low power desktop machine" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/08/64-bit-debian-testing-on-low-power.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcBRXw_eCp7ImA9Wx5TEUo.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-4338685255047135864</id><published>2010-07-26T13:27:00.000-07:00</published><updated>2010-07-26T13:27:34.240-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-26T13:27:34.240-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="heuristic" /><category scheme="http://www.blogger.com/atom/ns#" term="preparation" /><category scheme="http://www.blogger.com/atom/ns#" term="meetings" /><category scheme="http://www.blogger.com/atom/ns#" term="organization" /><title>Prepared or Intentionally Unprepared for a Meeting?</title><content type="html">I dislike disorganized, poorly structured, or meandering meetings.  Poor meetings treat the participants disrespectfully by wasting time and energy.&lt;br /&gt;
&lt;br /&gt;
Yet, today I consciously chose to enter a meeting unprepared.  I made that decision because the preparation for this specific meeting (a technical estimation meeting between a very few well aligned, frequently interacting, highly skilled people) would have used their time even less efficiently than performing that preparation during the meeting itself.&lt;br /&gt;
&lt;br /&gt;
More typically I've felt the other way, that there were plenty of more effective ways I could have prepared for those meetings than spend the time in the meeting doing the preparation.  This was a special (and rare) case.&lt;br /&gt;
&lt;br /&gt;
I suspect there are "investment" heuristics which can be applied to the subject, the participants, the duration, my role, and the relative business value of a meeting.  I envision the heuristic would provide a suggestion of how much time I should spend on the meeting based on those attributes.  Unfortunately, google search did not show me that heuristic, or even a list of attributes of meetings which would help me decide how much to invest in preparation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-4338685255047135864?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hbp5-2IIyiQMU5XIaBdRVqt1MY8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hbp5-2IIyiQMU5XIaBdRVqt1MY8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hbp5-2IIyiQMU5XIaBdRVqt1MY8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hbp5-2IIyiQMU5XIaBdRVqt1MY8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Ir4GKuaIxH4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/4338685255047135864/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=4338685255047135864" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4338685255047135864?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4338685255047135864?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Ir4GKuaIxH4/prepared-or-intentionally-unprepared.html" title="Prepared or Intentionally Unprepared for a Meeting?" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/07/prepared-or-intentionally-unprepared.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEDQnk9fip7ImA9WxFQEEs.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-8334321565690539518</id><published>2010-05-05T07:11:00.000-07:00</published><updated>2010-05-05T07:11:13.766-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-05T07:11:13.766-07:00</app:edited><title>Windows Home Server - Shock &amp; Surprise &amp; a happy ending</title><content type="html">My home computers connect to an HP MediaSmart Server LX-195.  That little server performs nightly backup, uploads files to Amazon S3 for backup, and has generally been a delightful little box (after overcoming the &lt;a href="http://markwaite.blogspot.com/2010/03/hp-mediasmart-lx-195-victory-at-last.html"&gt;initial installation hurdles&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;A week or so ago, the client computers were displaying a terrifying message that there were conflicts on the server, and backup was offline.  When I examined the console, it showed a new disc added and listed the same exact disc as "removed" and "unhealthy".  The disc it was say had a problem was a new 2 TB Western Digital USB drive.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I was confident the drive was not dead, but something had caused Windows Home Server to decide the drive was dead, then had come back to life as something different.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I rebooted the server.  No change in behavior.  I experimented with other small (non-damaging) tests.  No change in behavior.  I left it alone and assumed I would need another hour or two on the phone to resolve the problem.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;One day I had the ingenious idea to shutdown both the server and the USB hard disc.  I then switched on the USB hard disc and after it had some time to fully awaken, I switched on the Windows Home Server machine.  &lt;b&gt;SUCCESS&lt;/b&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I have no idea why the system decided the hard drive was "healthy" and "ready to add" in one list, and later in the same panel should be "removed".  If I'd followed those steps (add and remove), I suspect I would have lost all the data on that hard disc.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;It is hard work creating user interfaces which don't risk user data, and don't perplex the user when exceptional conditions occur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-8334321565690539518?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qWSldnxJK8rKiwc7Kp5SX0cd5Fg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qWSldnxJK8rKiwc7Kp5SX0cd5Fg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qWSldnxJK8rKiwc7Kp5SX0cd5Fg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qWSldnxJK8rKiwc7Kp5SX0cd5Fg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/1A2Y6wkS5uw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/8334321565690539518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=8334321565690539518" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8334321565690539518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8334321565690539518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/1A2Y6wkS5uw/windows-home-server-shock-surprise.html" title="Windows Home Server - Shock &amp; Surprise &amp; a happy ending" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/05/windows-home-server-shock-surprise.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UBRH06cCp7ImA9WxFSFU0.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-2734090733518345020</id><published>2010-04-17T04:54:00.000-07:00</published><updated>2010-04-17T04:54:15.318-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-17T04:54:15.318-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><title>Delighted by Seamless Operation</title><content type="html">I needed a particular software utility (a hard disk partition archiving program).  I was in the middle of some other work on my machine running the Debian "testing" distribution.  I didn't want to interrupt my other work, but I had a few minutes to download and burn the needed software to a bootable CD.&lt;br /&gt;
&lt;br /&gt;
I hadn't used Debian to burn a CD before, so I worried was going to demand I use various command line arguments with the usual reading of manuals.  I was wrong.&lt;br /&gt;
&lt;br /&gt;
I found the ISO image (thanks google), downloaded it with the web browser, clicked "open" from the web browser, and it offered to open it in "brasero".  I inserted a CD-R in the CD drive, and brasero happily burned that CD with no complaints.&lt;br /&gt;
&lt;br /&gt;
Thanks to the open source community!  That was a great experience, simple, elegant, and did what I expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-2734090733518345020?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DX6CLFnbL8ahLFWGIP9m8cydxDE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DX6CLFnbL8ahLFWGIP9m8cydxDE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DX6CLFnbL8ahLFWGIP9m8cydxDE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DX6CLFnbL8ahLFWGIP9m8cydxDE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/tPA6OsbPlbw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/2734090733518345020/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=2734090733518345020" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2734090733518345020?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2734090733518345020?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/tPA6OsbPlbw/delighted-by-seamless-operation.html" title="Delighted by Seamless Operation" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/04/delighted-by-seamless-operation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcCSHs8eSp7ImA9WxBbFEU.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-4228868547480523359</id><published>2010-03-13T05:41:00.000-08:00</published><updated>2010-03-13T05:47:49.571-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-13T05:47:49.571-08:00</app:edited><title>Conversational Productivity Improvement</title><content type="html">While sitting with a colleague at work, I was complaining that my favorite bookmark management tool (&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2888"&gt;GMarks&lt;/a&gt;) was no longer working reliably with &lt;a href="http://groups.google.com/group/gmarks/browse_thread/thread/6824e1ca2992938a"&gt;Firefox 3.6&lt;/a&gt;.  He had an improvement suggestion, that I might try the same bookmark sync method he is using.  I've learned that when my colleagues have found a better way to do things, I will usually benefit by trying the same technique.  This was one of those cases&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;A Bit of History&lt;/h3&gt;I started managing and synchronizing my bookmarks with the Google toolbar a while ago, then migrated to using a Google notebook during the short life of that tool, and from there had moved to using GMarks because it could read and write the bookmark definitions I had on Google notebook.  My bookmarks have had a long and varied life as they traveled from place to place...&lt;br /&gt;
&lt;br /&gt;
He suggested that I might try "&lt;a href="http://www.xmarks.com/"&gt;Xmarks&lt;/a&gt;", since that was the bookmark sync solution he'd been using and preferred for a while.  I'm a "slow study", but decided I'd try it as an experiment.&lt;br /&gt;
&lt;br /&gt;
XMarks installed easily into Firefox and accepted my manually entered bookmark just fine.  I didn't see any obvious options to sync my GMarks bookmarks, but was willing to experiment without that feature initially.  It seemed to work smoothly and well.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Chrome and Internet Explorer&lt;/h3&gt;&lt;br /&gt;
I prefer to switch between browsers frequently in hopes that will lead me to discover bugs in our software more quickly.  I move between IE, Firefox, and Chrome frequently.  I installed the XMarks add-on to Chrome and it offered to sync my Chrome bookmarks to XMarks.  That was a great offer, since Chrome had pulled all my bookmarks from the Google bookmark location where I had stored them.  I now had all my bookmarks in XMarks, without entering them myself.  Thanks Chrome!&lt;br /&gt;
&lt;br /&gt;
The Internet Explorer XMarks add-on was just as simple to install, and just as well behaved.  Now my bookmarks are the same on any browser I use, or at least any browser I use where I can control the browser add-ons installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-4228868547480523359?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PJw5B1v4EMawF9PNsPCcEyAFCq4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PJw5B1v4EMawF9PNsPCcEyAFCq4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PJw5B1v4EMawF9PNsPCcEyAFCq4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PJw5B1v4EMawF9PNsPCcEyAFCq4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/sHs2RUujQmE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/4228868547480523359/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=4228868547480523359" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4228868547480523359?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4228868547480523359?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/sHs2RUujQmE/conversational-productivity-improvement.html" title="Conversational Productivity Improvement" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/03/conversational-productivity-improvement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8HR349fip7ImA9WxBbFEU.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-2997254546262589542</id><published>2010-03-13T05:25:00.000-08:00</published><updated>2010-03-13T05:27:16.066-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-13T05:27:16.066-08:00</app:edited><title>HP MediaSmart LX 195 - Victory At Last</title><content type="html">Two months ago I purchased a new &lt;a href="http://h30440.www3.hp.com/campaigns/mediasmart-server/demo/box/Model.html"&gt;HP MediaSmart Server LX195&lt;/a&gt;.  It is a low power computer and disc drive in a small box, with Windows Home Server, an operating system intended to help with some of the common home computing chores, like:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Automatic backup (both onsite and offsite)&lt;/li&gt;
&lt;li&gt;Photo upload&lt;/li&gt;
&lt;li&gt;Media storage&lt;/li&gt;
&lt;li&gt;Media streaming&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;The initial purchase price was slightly over $200 for a unit with a 640 GB hard disc.  That was close enough to the purchase price for a comparable sized hard disc that I was willing to experiment with the system just for the value of experimentation (and hope for easier backup).&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Miserable Initial Experience&lt;/h3&gt;&lt;br /&gt;
The initial installation experience was poor.  The computer has no display adapter so it must boot, connect to the home network, and be reachable from within that home network without any interaction with the user.  The total user interaction is through the power switch (on or off) and three front panel LED's.&lt;br /&gt;
&lt;br /&gt;
I was fascinated by the challenges hiding in making Microsoft Windows boot and configure itself on a network without user interaction.  There are so many ways to configure a network, so many conditions which could fail, so many potential problems, and a general assumption among the Windows development teams that a Windows server always has a display.&lt;br /&gt;
&lt;br /&gt;
The first time I switched on the power, the lights went red (disconcerting), then eventually glowed a yellow color.  That was not a good sign.  I pressed the power button to stop the machine and nothing seemed to happen.  I pressed and held the power button for 5 seconds and the power went off (learning to control the box...)&lt;br /&gt;
&lt;br /&gt;
The second time I switched on the power was similar to the first.  I was short of time, so I left the box on for a period and did other things.  It stayed in the same condition.  I didn't have time to fight with the box, so I sent a message to the seller asking for instructions to return the device.&lt;br /&gt;
&lt;br /&gt;
The seller was very considerate and offered to accept the return (impressive by itself, since this appeared to be a small shop selling through amazon.com).  The "I'll accept the return" message also included a suggestion that I contact HP.&lt;br /&gt;
&lt;br /&gt;
A week or so later, I had time again, so I went searching for the &lt;a href="http://j.mp/9fjPAU"&gt;195LX Windows Home Server&lt;/a&gt; support team on the HP web site.  After some digging, I found a &lt;a href="http://welcome.hp.com/country/us/en/contact/phone_assist.html#section1"&gt;phone number&lt;/a&gt; (800-474-6836).  I had initially been unwilling to spend any technical support time with the device, but decided I'd "try the experiment".&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Considerate Technical Support&lt;/h3&gt;&lt;br /&gt;
I assumed the technical support would be provided by someone lacking native language skills, and the support call would be a deep struggle.  I was wrong.  The technical support call was handled by a well spoken, considerate individual with clear communication skills, a cheery attitude, and no detectable accent in their speech.  I appreciated that!&lt;br /&gt;
&lt;br /&gt;
I didn't have much time that day, and we quickly exhausted that time before the problem was solved.  However, the experience was so positive (compared to my expectations), that I decided I might try again another day.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Home Networking Complications&lt;/h3&gt;&lt;br /&gt;
The second technical support call was just as pleasant an experience as the first call, and was much more successful at solving the root problem.  The technical support person asked some questions about my home network configuration, and I offered some things I had observed.  With the "back and forth" of that conversation, I think I persuaded him that I knew enough about networking to be interesting, and he persuaded me that he knew enough about the typical behaviors of the box that I should trust him.&lt;br /&gt;
&lt;br /&gt;
The tech support person had me insert the IP address of the 195LX into the hosts file of the Windows computer I was using as the client and display for the little server.  Apparently, Windows Server 2003 and Windows client operating systems did not like my attempt to use purely the IP address to configure the computer.  I don't have a DNS server at home, I don't have a WINS server at home, and at the time I was not running my own DHCP server either, choosing to use the DHCP server provided by my Linksys wireless router.&lt;br /&gt;
&lt;br /&gt;
Inserting the IP address was the "magic key".  The computer was now reachable, and ready for configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Success At Last&lt;/h3&gt;&lt;br /&gt;
Once that initial installation hurdle was overcome, the rest of the experience was great.  I'm a software tester type, and I expect software to disappoint me.  That's the nature of software testing.  In this case, rather than disappoint me, the configuration experience delighted me.  It has been a long time since I felt delight like that in working with software.  Thanks Microsoft!&lt;br /&gt;
&lt;br /&gt;
I configured the server to backup the computer I used for initial installation.  After installing a little client software and entering a password, the backup hid itself and ran very nicely.  I moved to the other 3 computers in the house and did the same thing, with the same easy experience.  That was already impressive, since those computers have operating systems of widely varying ages.  Two older Windows XP machines, a Windows Vista x64, and a Windows 7 x64 machine were all easily added to the backup process, and safely copied their files to the server.&lt;br /&gt;
&lt;br /&gt;
The server also has places for shared folders.  One of my concerns has been losing our digital photo collection, so I copied files from the client computers to the digital photos folder on the server.  That was easy, and well behaved.  There was also a setting to allow the server to search for photos on its own (thanks!).&lt;br /&gt;
&lt;br /&gt;
The same for music, although the music is a more replaceable item, since we should have the CD's for all that music anyway.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Offsite Backup&lt;/h3&gt;&lt;br /&gt;
A week or two after that positive experience, I remembered that I had seen mention of being able to use the MediaSmart to send backup data "offsite" for safety.  I found the configuration panel easily, and answered a few prompts for the offsite backup process.  It configured an Amazon simple storage service instance for me and started pushing my data to that offsite backup location.&lt;br /&gt;
&lt;br /&gt;
Several days later, I checked the status and it was still pushing my data to Amazon.&lt;br /&gt;
&lt;br /&gt;
I was curious why it was taking so long, so I checked the hard disc capacity of the server.  I had already consumed about 500 MB of the 640 MB disc.  Most of that was backup.  Apparently my computers contained more data than I realized.&lt;br /&gt;
&lt;br /&gt;
The backup process eventually completed successfully, and has been running happily since then.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Searching for a Lost File&lt;/h3&gt;&lt;br /&gt;
In the midst of all this fun with the server, my son lost a homework assignment.  He had forgotten to save it from within Word, and was desperately trying to find any remnants of the assignment.  I opened the restore wizard and was able to comfortably navigate around the files in the backup device.  Unfortunately, the file was not there, but my confidence was increased that the backup might actually be usable, not just a "write only" device like most backups I've had in the past.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Adding Storage&lt;/h3&gt;&lt;br /&gt;
Since the home computers were needing more backup space than I expected, I could see that I would exhaust the disc space on the server in a week or two.  That was a nice opportunity to expand the disc storage.  I purchased a 2 TB USB disc drive and connected it to one of the 4 USB ports on the back of the server.  The server recognized the drive, and offered me choices in how I'd like to use the drive.  I used it to add additional file system space to the server, and then configured the existing folders on the server to "mirror" themselves.&lt;br /&gt;
&lt;br /&gt;
The "mirror" concept seems to be a "poor man's RAID", an operating system provided option that will periodically copy the contents of selected folder from its original drive to another drive on the system.&lt;br /&gt;
&lt;br /&gt;
That worked well also.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Changing Passwords&lt;/h3&gt;&lt;br /&gt;
One of the low points in my life is the requirement from work that I must change my password every three months.  Changing my password has been a hassle on a number of computers, and I worried this would be a similar experience.  I was wrong.  It was an easy process.  I changed my password on one of the client computers, and the Windows Home Server icon prompted a short time later that it is best if the client and server passwords match.  It let me make the change, with options to force the client and server passwords to be the same (nice touch!)&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Impressed&lt;/h3&gt;&lt;br /&gt;
I'm thoroughly impressed with the device.  The initial install experience was "rocky", but the experience with Windows Home Server has been delightful ever since that initial rough spot.&lt;br /&gt;
&lt;br /&gt;
As a caveat to software creators, the initial install experience is high risk that you will lose the customer before they've even seen your product's features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-2997254546262589542?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LEbwYXmUtiEWmSvq_RNXNHLPIIE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LEbwYXmUtiEWmSvq_RNXNHLPIIE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LEbwYXmUtiEWmSvq_RNXNHLPIIE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LEbwYXmUtiEWmSvq_RNXNHLPIIE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/MVzmczzHvi4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/2997254546262589542/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=2997254546262589542" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2997254546262589542?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2997254546262589542?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/MVzmczzHvi4/hp-mediasmart-lx-195-victory-at-last.html" title="HP MediaSmart LX 195 - Victory At Last" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/03/hp-mediasmart-lx-195-victory-at-last.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08HQnsyeip7ImA9WxBbEEQ.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-4451149164559026330</id><published>2010-03-08T16:50:00.000-08:00</published><updated>2010-03-08T16:50:33.592-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-08T16:50:33.592-08:00</app:edited><title>Stone Age Productivity Improvement</title><content type="html">Sometimes we spend more effort on presentation than on content, even when the real value is in the content, not in the presentation.&lt;br /&gt;
&lt;p&gt;Some examples:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Why spend time creating a PowerPoint slide deck for an informal discussion?  Why not scribble notes on a page, scan the page to PDF, then annotate the hand-written PDF notes during the meeting?&lt;br /&gt;
&lt;li&gt;Why spend time transcribing a white board to a computer when a digital photo of the white board captures the arcs, arrows, angles, and phrases on the board, without wasting the effort to form those into a digital document?&lt;br /&gt;
&lt;li&gt;Why enter requirements into a computer system when the team is local?  Use scraps of paper (3x5 cards work for me) and move them around on a table to prioritize and understand them&lt;br /&gt;
&lt;li&gt;Why not perform bug triage by rapidly moving pieces of paper around on a table instead of forcing everyone in the room to focus their attention on a screen where one and only one person can make progress?&lt;br /&gt;
&lt;li&gt;Why not have a face to face discussion or a phone call instead of composing an e-mail message?&lt;br /&gt;
&lt;li&gt;Why not talk about an issue instead of spending time to document it?&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;I listened to a programmer this morning noting that he was unable to find documentation on something.  The thought that kept rolling around in my head while he said that was, "what you need documented does not exist, and the waste of creating documentation for all the things in order to not be missing that one thing was just not worth it".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-4451149164559026330?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ob-b4TjHUMVD6pgAIXYpkIX1nGU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ob-b4TjHUMVD6pgAIXYpkIX1nGU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ob-b4TjHUMVD6pgAIXYpkIX1nGU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ob-b4TjHUMVD6pgAIXYpkIX1nGU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/cu0RJJD-8d4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/4451149164559026330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=4451149164559026330" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4451149164559026330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4451149164559026330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/cu0RJJD-8d4/stone-age-productivity-improvement.html" title="Stone Age Productivity Improvement" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/03/stone-age-productivity-improvement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMBRH8_fSp7ImA9WxBVEEs.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-2882798945917360467</id><published>2010-02-13T05:07:00.000-08:00</published><updated>2010-02-13T05:07:35.145-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-13T05:07:35.145-08:00</app:edited><title>Expressing My Priorities</title><content type="html">We've had a set of tests failing on our continuous integration server for a week or more.  That's a bad thing, since we tend to ignore continuous integration jobs which are not clean almost all the time.  Continuous integration failures need to be infrequent and interspersed with extended periods of "clean", or at least need to be viewed as a trustworthy development information source.  Otherwise, the team ignores the continuous integration server and it becomes another wasted and ignored feedback system.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;The same tests work fine on the developer machine where we've run them (in a slightly different configuration).  The "builder" attempts to diagnose the root cause of the failures have been unsuccessful.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I've scheduled a Monday brainstorming session with a larger group of people.  We'll discuss what we know about the failures, what we know about matching successes, and then decide on a course of action.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;A colleague asked why I was the one convening the meeting, instead of someone in the affected team. His logic was that several different people on the development team should have been intensely interesting in the root cause of the failure, and have "run it to ground".&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I think there are several reasons why individual developers are not chasing this problem:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The problem crosses boundaries (only visible from an installed version, only visible when other components installed, only visible from the continuous integration machine, etc.)&lt;br /&gt;
&lt;li&gt;There is no clear correlation between the first failure and a commit from a developer&lt;br /&gt;
&lt;li&gt;Installation related problems are more difficult and painful to diagnose.  Setup and teardown time for the test is signficantly more than the setup and teardown time for most of our other automated tests&lt;br /&gt;
&lt;li&gt;Diagnosing this failure will reduce the energy available to work on other things, like new backlog items and new tests&lt;br /&gt;
&lt;/ul&gt;
&lt;p&gt;I'm expressing my priorities by scheduling the meeting and bringing a group of people together to work on the problem.  Since I'm a manager, my priorities have a little more weight, and I'm "throwing that weight around" a little for this case.

&lt;p&gt;Eventually I'm confident others in the organization will recognize my focus on keeping the continuous integration servers "clean".  Until then, I'll continue working with people to persuade them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-2882798945917360467?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zoEuS178kCGn-d2a7ibWjHuzrLw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zoEuS178kCGn-d2a7ibWjHuzrLw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zoEuS178kCGn-d2a7ibWjHuzrLw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zoEuS178kCGn-d2a7ibWjHuzrLw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/9ZgeS_N-Q_o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/2882798945917360467/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=2882798945917360467" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2882798945917360467?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/2882798945917360467?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/9ZgeS_N-Q_o/expressing-my-priorities.html" title="Expressing My Priorities" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/02/expressing-my-priorities.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4CQ345cSp7ImA9WxBXE0g.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-4924280981381279241</id><published>2010-01-24T08:35:00.000-08:00</published><updated>2010-01-24T08:36:02.029-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-24T08:36:02.029-08:00</app:edited><title>Microsoft Mesh - Synchronizing Files Between Computers</title><content type="html">I work with many different computers between home and work and have found that &lt;a href="https://www.mesh.com/"&gt;Microsoft Live Mesh&lt;/a&gt; has been a nice addition to my computers.  Mesh allows me to specify one or more directories which should be synchronized between all the various computers I'm using.&lt;br /&gt;
&lt;br /&gt;
Thus far, I've used it to allow me to write performance reviews on any of my typical computers, knowing that the written results will be synchronized with my other computers so I can continue writing elsewhere.&lt;br /&gt;
&lt;br /&gt;
I'm now attempting to use it to synchronize my "3x5" cards electronically.  I usually carry a stack of 3x5 paper cards in my pocket for idea and task capture.  When those cards need to live a little longer than they would normally sit in my pocket, I'm writing them to a file (in emacs "&lt;a href="http://orgmode.org/"&gt;org mode&lt;/a&gt;") which let's me shuffle, stack and move them almost as easily as I can move them on a table.  With that file synchronized between my various computers, I hope to lose fewer cards, and have a more clear idea of priorities at any computer I use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-4924280981381279241?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YjoFgxqRb_c5-ylQXnCYYPxEvrQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YjoFgxqRb_c5-ylQXnCYYPxEvrQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YjoFgxqRb_c5-ylQXnCYYPxEvrQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YjoFgxqRb_c5-ylQXnCYYPxEvrQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/4ldpCo3jODg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/4924280981381279241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=4924280981381279241" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4924280981381279241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4924280981381279241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/4ldpCo3jODg/microsoft-mesh-synchronizing-files.html" title="Microsoft Mesh - Synchronizing Files Between Computers" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2010/01/microsoft-mesh-synchronizing-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04ERXs7fCp7ImA9WxBSFEU.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-8467954281709668808</id><published>2009-12-22T05:36:00.000-08:00</published><updated>2009-12-22T05:51:44.504-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-22T05:51:44.504-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="discovery" /><category scheme="http://www.blogger.com/atom/ns#" term="serendipity" /><category scheme="http://www.blogger.com/atom/ns#" term="reputation" /><category scheme="http://www.blogger.com/atom/ns#" term="google alerts" /><title>Google Alerts - Monitoring Your Online Reputation</title><content type="html">&lt;a href="http://www.google.com/alerts/"&gt;Google alerts&lt;/a&gt; delivers periodic search results to my e-mail box.  I've been impressed at how it helps me detect new bloggers that might be worth reading, and helps me manage my own reputation.&lt;br /&gt;&lt;br /&gt;I have several topical search terms that I use to watch for interesting new authors and sites.  I currently have alerts set for "Association for Software Testing", "exploratory testing" and Debian Linux testing.  I'll eventually add search terms for SharePoint 2010 and evidence based management.&lt;br /&gt;&lt;br /&gt;I also have search terms which search for specific authors I've found interesting in the past.  The search results on those authors have lead to other interesting writing on topics I follow.&lt;br /&gt;&lt;br /&gt;I even search for my own name.  I realize that is more than just a little vain, but it provides one way to monitor how others might perceive me.  I use an exclusion term or two to avoid the writing of the journalist who shares my name and writes at a newspaper in Nevada.  Someday I may add an exclusion term for the person who shares my name in Georgia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-8467954281709668808?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ahu5v8FOzvD9G9J0zSjeeojbXho/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ahu5v8FOzvD9G9J0zSjeeojbXho/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ahu5v8FOzvD9G9J0zSjeeojbXho/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ahu5v8FOzvD9G9J0zSjeeojbXho/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/O8MqrjaQkqQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/8467954281709668808/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=8467954281709668808" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8467954281709668808?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8467954281709668808?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/O8MqrjaQkqQ/google-alerts-monitoring-your-online.html" title="Google Alerts - Monitoring Your Online Reputation" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/12/google-alerts-monitoring-your-online.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQBQns_fCp7ImA9WxBTE0s.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-7359432007908995561</id><published>2009-12-09T04:57:00.001-08:00</published><updated>2009-12-09T05:45:53.544-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-09T05:45:53.544-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="process" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="simple" /><title>Simplifying is Hard Work</title><content type="html">One of our QA managers asked a very simple question yesterday that took me through a series of twists and turns trying to find a reasonable answer.  It reminded me that seeking and finding solutions to problems is hard work, and finding a workable solution can be exhilarating.&lt;br /&gt;&lt;p&gt;The question was "How can a tester know if a specific fix is included in this build?"&lt;br /&gt;&lt;p&gt;The question hides contextual information like "source code is stored in git", "bug reports are stored in a customized Siebel database", "Siebel interface or API changes are not feasible", "testers are typically a long distance (geographically) from developers", "builds are accessible from a web page of hyperlinks" and "the recent builds page also has links to gitweb".&lt;br /&gt;&lt;p&gt;Challenges hidden in the question:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;No API connection between git and Siebel means we need to rely on people as the carriers of information, the "information transport"&lt;br /&gt;&lt;li&gt;Time and space separation between developers and testers complicates communication, yet complicated forms or processes are more likely to be bypassed than simple ones&lt;br /&gt;&lt;li&gt;Complicated user interfaces are more expensive to develop than simple ones, and complicated user interfaces tend to get less interest from users&lt;br /&gt;&lt;li&gt;Persuading people to enter accurate data into forms, fields, or even free form text is difficult.  It can be made much easier if they see immediate benefit from that entry, if the format is simple, and if the results of that data entry help them&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;My proposal to my colleagues (after an embarrassing amount of thought) was:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;When a developer fixes a bug, they paste the SHA1 hash of the fix into the bug report.  The SHA1 hash is a unique identifier of that commit in git, so recording it in the bug report provides a "link" between the bug reporting system and git&lt;br /&gt;&lt;li&gt;When a build runs, it records the short form of the "git log" for that build (the list of checkins which were in that build) with the identifiers (SHA1 hashes) of each checkin and the first line of the checkin comment&lt;br /&gt;&lt;li&gt;When a tester verifies a bug, they first verify that the log file which came with the build contains the SHA1 hash from the bug report.  If it does, then they perform the verification.  If it doesn't, they don't waste time performing that verification&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;During the thought process before arriving at that idea, I wandered several different blind alleys, thinking of one complicated solution or another.  For example, the early wrong or overly complicated ideas and questions included:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Why do they need this data, don't the testers "trust" developers?  The question is &lt;u&gt;not&lt;/u&gt; about trust, it is about communicating intent, and preventing the wasted time associated with testing a specific fix, reporting it is not fixed, then being told "Oh, it wasn't in that build"&lt;br /&gt;&lt;li&gt;How can we ask git to tell us which changes are in a build when there is no API connection between the build and the source repository?  I envisioned complicated sequences trying to map a build date or time or version number or branch back to the git repository to generate the list of changes&lt;br /&gt;&lt;li&gt;How do we connect the build (performed at some independent time) with the bug report (submitted at a different time on a different system) and the source master (yet another time and system)?  Programs, links, pages, all came to mind as ways to make that connection, before I realized that the unique identifier of the commit is one of the few data items which might travel reliably between all those systems&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Then again, looking at the idea now in the "cold light of a new day", maybe I was just too tired to think clearly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-7359432007908995561?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ItQMpkmdLSu5ctP2gZIgV8L5Md0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ItQMpkmdLSu5ctP2gZIgV8L5Md0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ItQMpkmdLSu5ctP2gZIgV8L5Md0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ItQMpkmdLSu5ctP2gZIgV8L5Md0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/NROz_wrGtec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/7359432007908995561/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=7359432007908995561" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7359432007908995561?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7359432007908995561?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/NROz_wrGtec/simplifying-is-hard-work.html" title="Simplifying is Hard Work" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/12/simplifying-is-hard-work.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8BQHs7eCp7ImA9WxNaFEk.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-7552770989674981241</id><published>2009-11-28T12:32:00.000-08:00</published><updated>2009-11-28T12:40:51.500-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T12:40:51.500-08:00</app:edited><title>Small Barriers == No Socialization</title><content type="html">I was again reminded today that very small barriers can kill a conversation, or cause a contributor to stop contributing.  I wanted to post a follow-up comment to David Chadwick's exploratory testing blog posting.  I was on a different computer than I originally used to post the first comments.  &lt;br /&gt;&lt;br /&gt;Unfortunately, the IBM developerworks site is unfamiliar enough that I don't remember my password.  I remember that it had a more restrictive password policy than other sites, so I was unable to apply my common password rules to their site.  That made the site "unique" in a negative sense, something I had to remember outside my normal patterns of memorization.&lt;br /&gt;&lt;br /&gt;The key point:  I had a few minutes to contribute something to a conversation.  I was not willing to spend more than a minute or two, including the time to login, post the comment, and verify the comment was posted.  I abandoned the comment because:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Restrictive password rules were outside my typical rule set&lt;br /&gt;&lt;li&gt;Time was limited, I was unwilling to spend more time trying to login again&lt;br /&gt;&lt;li&gt;Prior experience with the site made me distrust its use of my time&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The relationship between a contributor and the forum to which they are contributing seems to be very fragile, at least for me.  The newer I am to a forum, the more fragile the relationship.  The less value I perceive from the forum, the more fragile the relationship.  Even seemingly insignificant hurdles may be enough to stop a contribution and disengage a contributor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-7552770989674981241?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zIx4U9p0iO7qZ7G7kVb5jM099Kc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zIx4U9p0iO7qZ7G7kVb5jM099Kc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zIx4U9p0iO7qZ7G7kVb5jM099Kc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zIx4U9p0iO7qZ7G7kVb5jM099Kc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/c3iRLSXI-n4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/7552770989674981241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=7552770989674981241" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7552770989674981241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7552770989674981241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/c3iRLSXI-n4/small-barriers-no-socialization.html" title="Small Barriers == No Socialization" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/11/small-barriers-no-socialization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYCSHY8eyp7ImA9WxNaEkg.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-3017189109508401423</id><published>2009-11-26T08:09:00.000-08:00</published><updated>2009-11-26T08:32:49.873-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-26T08:32:49.873-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="exploratory testing" /><category scheme="http://www.blogger.com/atom/ns#" term="data loss" /><category scheme="http://www.blogger.com/atom/ns#" term="developerworks" /><title>Do Not Discard My Data</title><content type="html">I just wasted 40 minutes trying to post a comment to an &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/dchadwick/entry/what_s_up_with_exploratory_testing51?lang=en"&gt;IBM developerworks blog posting&lt;/a&gt; from David Chadwick.&lt;br /&gt;&lt;br /&gt;That wasted 40 minutes was a flawed attempt to describe the simple changes I think could be made to David's list of things which he believes exploratory testing is "not".  I believe with relatively simple wording changes, I could modify each of his "not" descriptions to instead be descriptions of high value, useful exploratory tests.  The wording changes are so small that I believe they hint David may not yet understand exploratory testing and how to apply it.  However, this posting is &lt;span style="font-weight:bold;"&gt;not&lt;/span&gt; about exploratory testing, it is about a site that lost my data, twice.&lt;br /&gt;&lt;br /&gt;My first comment was lost after 20 minutes of writing, thinking, and editing.  The comment was lost because I clicked the "Add Comment" link, entered my comment, then pressed the "submit" button.  The page which was returned politely informed me that my comment was rejected, and listed several possible reasons for the rejection.  Unfortunately, &lt;span style="font-weight:bold;"&gt;IT DISCARDED MY DATA&lt;/span&gt;.  &lt;br /&gt;&lt;br /&gt;Don't discard my data!  It frustrates me as a user and makes me unwilling to return to the site.  If I must be logged in to submit a comment, force the login before accepting my input.&lt;br /&gt;&lt;br /&gt;I registered on developerworks, logged in, and clicked the "add comment" link again.  I added a short, dummy comment to assure that I was now able to add comments.  I was able to add the comment.&lt;br /&gt;&lt;br /&gt;I wrote a new response (I assume it was a little better than the first comment, since second drafts are commonly better than first drafts).  After about 20 minutes of working on that response, I clicked the "submit" link.  My comment was rejected again, with the same list of possible reasons for the rejection.  Unfortunately, &lt;span style="font-weight:bold;"&gt;IT DISCARDED MY DATA AGAIN&lt;/span&gt;.  &lt;br /&gt;&lt;br /&gt;Don't discard my data!  It makes me feel stupid, and then I need to remind myself that I'm not stupid, the software which should be working for me is instead making me do the work.&lt;br /&gt;&lt;br /&gt;I assume the second failure was either due to my inserting URL's into the text, or due to the length of the text I was trying to post.  I don't know which it is, and I'm frustrated enough with the developerworks site to not care which it is.&lt;br /&gt;&lt;br /&gt;I gave up on trying to post a useful comment.  I left a short note that my comments had been rejected twice, and if the author wanted my comments, he would need to send me e-mail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-3017189109508401423?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IhUCI6jojhCWz-iTkdwNS3xDhkk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IhUCI6jojhCWz-iTkdwNS3xDhkk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IhUCI6jojhCWz-iTkdwNS3xDhkk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IhUCI6jojhCWz-iTkdwNS3xDhkk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/X9dBXZTbbjI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/3017189109508401423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=3017189109508401423" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/3017189109508401423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/3017189109508401423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/X9dBXZTbbjI/do-not-discard-my-data.html" title="Do Not Discard My Data" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/11/do-not-discard-my-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CSXc8fSp7ImA9WxNbEE4.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-4765262508133991643</id><published>2009-11-12T05:47:00.001-08:00</published><updated>2009-11-12T06:09:28.975-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-12T06:09:28.975-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="format" /><category scheme="http://www.blogger.com/atom/ns#" term="code ownership" /><category scheme="http://www.blogger.com/atom/ns#" term="style" /><title>Systematic Source Formatting</title><content type="html">When my team switched to Extreme Programming in March 2003 (XP by 3/03), we decided to try all the practices and all the recommendations.  There were plenty of bumps and bruises as we learned what worked for us and what didn't work for us.  We learned that the original XP descriptions were too light on testing for our business needs, and we learned that integration tests worked better for us than pure unit tests with mock objects.  Those can be topics for another time.&lt;br /&gt;&lt;br /&gt;One of the surprisingly effective results of that adoption of all the practices and all the recommendations was using automated source code formatting to assure all our code looked the same.  We had a diverse team of people developing the code, some in the U.S., some in Germany.  That diverse team of people had different opinions and attitudes about the "one true way" to format source code.  Those different attitudes and opinions lead to annoying little changes from one file version to another as the files changed hands from one person to another.&lt;br /&gt;&lt;br /&gt;Since XP espouses "no code ownership" and allows anyone to be anywhere in the code, those formatting differences tended to worsen as people moved through the source tree.&lt;br /&gt;&lt;br /&gt;We took a "top down edict" approach to implementing "no code ownership".  I decided (as the manager) that we would use a program to format all our Java source code as part of each compile.  The concept was that developers would no longer need to think about formatting their code, a program would do it for them.  We inserted the open source version of the "&lt;a href="http://jalopy.sourceforge.net/"&gt;jalopy&lt;/a&gt;" source code formatter into our standard build process and then added an additional step to systematically format the code once a day with the same process, in case someone forgot to format before they committed changes to the master.&lt;br /&gt;&lt;br /&gt;The initial adoption of the change caused some angst, since the chosen format (Sun Java code formatting guidelines) disagreed with the "one true way" which some of the team expected.  We pushed our way through that initial hurdle and found over the course of years that automated source formatting freed us from a number of problems.&lt;br /&gt;&lt;br /&gt;Positive results of our switch to automated source code formatting:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Code looks the same no matter who wrote it&lt;br /&gt;&lt;li&gt;Changes in the source master are "real changes", not white space shuffling&lt;br /&gt;&lt;li&gt;Developers don't need to think about source code format, they can insert code however they want and the formatter will fix it to meet the standard&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Negative results of our switch to automated source code formatting:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;A "diff wall" was created at the point where we first ran the automated source code formatting tool.  The automated formatting created a single massive change to the source master to convert from the old ad-hoc format to the new consistent format.  I worried at the time that the "diff wall" was going to be a real problem, but it never appeared as a problem in our work&lt;br /&gt;&lt;li&gt;Command and control style management is frequently a bad pattern and should be reserved for rare occasions (our major process change from waterfall to Extreme Programming was done as a manager dictate from above, and this was "hidden" in that process change)&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;There are newer tools to support automatic source code formatting (&lt;a href="http://astyle.sourceforge.net/"&gt;astyle&lt;/a&gt; seems to be popular) and I hope to persuade my new organization to adopt automated source code formatting.  I'm not in a position to be the dictator in the new organization, so changes like that are more difficult to create.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-4765262508133991643?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cW6V4uCLoXSEQSRK-EjarI5aIYs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cW6V4uCLoXSEQSRK-EjarI5aIYs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cW6V4uCLoXSEQSRK-EjarI5aIYs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cW6V4uCLoXSEQSRK-EjarI5aIYs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/tmVnTdrFRg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/4765262508133991643/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=4765262508133991643" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4765262508133991643?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/4765262508133991643?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/tmVnTdrFRg0/systematic-source-formatting.html" title="Systematic Source Formatting" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/11/systematic-source-formatting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcGRH87fSp7ImA9WxNUFkQ.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-8533939283958005407</id><published>2009-11-08T06:03:00.000-08:00</published><updated>2009-11-08T07:10:25.105-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-08T07:10:25.105-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="deliberate practice" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="improvement" /><category scheme="http://www.blogger.com/atom/ns#" term="retrospectives" /><title>Deliberate Practice - Mary Poppendieck Talk</title><content type="html">As a manager at &lt;a href="http://www.ptc.com"&gt;PTC&lt;/a&gt;, I need to write a performance appraisal for each of my direct reports.  I will also receive a performance appraisal from my manager to help me identify strengths and weaknesses and set goals for the coming year.  While preparing my own self-evaluation, I remembered reading about the concept of "deliberate practice".  I'd already been trying to apply my understanding of the idea, but decided to listen to an original source before including more about it in my self appraisal.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/presentations/poppendieck-deliberate-practice-in-software-development"&gt;Mary Poppendieck's Agile 2009 deliberate practice talk&lt;/a&gt; describes deliberate practice as practice which is intentionally focused on improving performance.  I want to improve my performance.  Mary highlights four key components that are required for a person to be using deliberate practice:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Mentor - a high skills expert to review, critique, and highlight flaws&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Challenge - tasks that require greater skill than we currently possess&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Feedback - review and analysis of results used to improve future attempts&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dedication - hard work, time and energy applied diligently&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;I don't have a mentor for the things I'm trying to improve!  At least, I haven't identified someone as my "coach" and had them agree to review, critique, and highlight flaws in my performance.  Flaw number 1 (and the most glaring flaw) in my recent improvement attempts.&lt;br /&gt;&lt;br /&gt;Many of my tasks and assignments are the same assignments I've had before, coordinating, planning, discussing, and interacting with others.  However, I always find those tasks challenging because I don't feel like a naturally social person.  Negotiating, discussing, persuading, and debating do not come naturally to me.  There is room to improve in the "challenge" area, although I don't see it as making as much an improvement as the absence of a coach in my improvement efforts.&lt;br /&gt;&lt;br /&gt;Most of my activities have feedback built into the activity in one form or another.  Meetings which start on time, stay on task, complete their objectives, and end on time leave me feeling refreshed, invigorated, and useful. Meetings which start late, wander aimlessly, don't have objectives, or extend beyond their scheduled end leave me frustrated and edgy.  That's a form of feedback.  However, there are other feedback forms (like &lt;a href="http://www.infoq.com/news/2009/09/key-elements-agile-retrospective"&gt;team retrospectives&lt;/a&gt;) which I've not been using faithfully lately, and need to start using again.&lt;br /&gt;&lt;br /&gt;Dedication may actually need some "negative attention", since lately I've been spending too many hours at work and not enough hours with my wife and children.  Mary's talk notes that expert performers in other fields (like music) have discovered that they cannot apply more than 3 hours of deliberate practice at a time because it is too tiring.  They stop, change tasks, take naps, or otherwise refresh themselves rather than continuing, and risking developing bad habits by practicing poorly.&lt;br /&gt;&lt;br /&gt;With the identified gaps in my efforts to improve, now it is time to choose a mentor and start hearing the performance critiques, then acting on them.  Finding a mentor seems like a difficult task for a manager.  I want a mentor that is&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Regularly and naturally exposed to my performances, without requiring that I present them a summary of what I did.  Swimming coaches do not ask the swimmer to describe the most recent swim, they &lt;b&gt;watch the swimmer&lt;/b&gt; and then &lt;b&gt;tell the swimmer&lt;/b&gt; directly and openly what could have been improved in that swim.  My mentor needs to be someone who "watches my performances" on a regular basis as part of their normal work&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Able to spend time and energy critiquing my performances with focus on improving them&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Credible as an expert.  My request for coaching is an act of trust and that extension of trust requires that I believe in the skills of the person providing the coaching.  I may disagree with their perspectives, challenge their ideas, and still want their coaching&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Interested in my success.  Without interest in my success, I doubt the coach can be trusted to provide excellent feedback&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;I'm sure there are other things I need in a mentor as well, but that list already worries me.  Those who are regularly involved in my work tend to be my direct reports, my peers, and my manager.  My direct reports aren't very interested in coaching their manager (other than possibly to smile with him about his many failings).  My manager is already a mentor by being my manager.  My peers and I frequently disagree on methods and techniques and so I'm not sure peers are the best source of mentors either.&lt;br /&gt;&lt;br /&gt;All this musing might also be less useful if instead of a mentor, I need to become a "&lt;a href="http://www.buccaneerscholar.com/"&gt;buccaneer scholar&lt;/a&gt;" as suggested by James Bach.  James suggests that I should take responsibility for my own education and for my own learning.  That may make seeking a single perfect mentor a waste of effort, rather I could accept that there are mentors all around me and those mentors can provide useful information at times, and information to be ignored at other times.&lt;br /&gt;&lt;br /&gt;Another alternative is to consider Bob Sutton's questioning of the &lt;a href="http://bobsutton.typepad.com/my_weblog/2008/02/perfromnce-eval.html"&gt;value of annual performance appraisals&lt;/a&gt;.  So many ideas to consider, so many things to learn (&lt;span style="font-style:italic;"&gt;the act of writing this has already taken me on a different path than I expected when I began...&lt;/span&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-8533939283958005407?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3xUMc1EIM6En2ddHEgfjwSjy8Yc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3xUMc1EIM6En2ddHEgfjwSjy8Yc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3xUMc1EIM6En2ddHEgfjwSjy8Yc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3xUMc1EIM6En2ddHEgfjwSjy8Yc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/pnyIA2AGgwc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/8533939283958005407/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=8533939283958005407" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8533939283958005407?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8533939283958005407?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/pnyIA2AGgwc/deliberate-practice-mary-poppendieck.html" title="Deliberate Practice - Mary Poppendieck Talk" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/11/deliberate-practice-mary-poppendieck.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYEQHsyeSp7ImA9WxNUFE8.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-5361294230835991033</id><published>2009-11-05T04:42:00.000-08:00</published><updated>2009-11-05T05:35:01.591-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-05T05:35:01.591-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="scm" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="software configuration management" /><title>Was Our Switch to Git a Mistake?</title><content type="html">My team is part of a larger, multi-team, multi-site organization in our company.  The corporate choice for software configuration management is ClearCase.  Unfortunately, my team is "remote", and "small".  ClearCase does not handle remote teams well.  I could find more polite ways to say it, but that is the simple result of our experiment.  ClearCase was costing us far too much time due to its poor performance over a wide area network.&lt;br /&gt;&lt;br /&gt;We solved the ClearCase problem by creating a bidirectional bridge between ClearCase and Subversion.  My team's interface to the source master became Subversion.  We saw great performance improvements, and were seeing the ClearCase updates within a few minutes of their arrival on the ClearCase master.  The bridge was conceptually very simple, and it worked very, very well for our needs.  Life was good.&lt;br /&gt;&lt;br /&gt;We were then faced with a new, even more challenging problem.  The new development work needed to be spread even more widely than the previous development work, with a larger number of teams involved and more dispersed geography.  The new work would create multiple products, each with their own release cycle and their own development lifetime.&lt;br /&gt;&lt;br /&gt;At the time we were making this transition, I'd been experimenting with the &lt;a href="http://git-scm.com/"&gt;git version control system&lt;/a&gt;.  Git is version control software created by Linus Torvalds when he needed to switch from BitKeeper for Linux kernel development.  It runs very, very well on Linux.  It is significantly faster than Subversion, which (in our environment) is significantly faster than ClearCase.  Performance looked like a big winner.&lt;br /&gt;&lt;br /&gt;Another challenge of the new environment was branch related.  The new teams thought their development model would likely be "branch intensive".  My prior experiences with branches have been with CVS and Perforce, where branches are globally visible and merging things between branches is a hassle.  I hate branches.  However, considering that the new world would be "branch intensive" and Subversion is generally not perceived favorably for branch management, we didn't want to use Subversion in a "branchy" environment.&lt;br /&gt;&lt;br /&gt;With those two needs, distributed teams and branch intensive environment, we skipped Subversion and went looking.  My recent git experience (and recent Mercurial experience) biased me in favor of a distributed version control system.  A key opinion leader in the company had also been using git in a subteam of a very large project, pushing their results back to ClearCase.  They reported positive results.  My experience had also been positive while I was experimenting with taking a work project off on a "tangent".  Git worked well for me, sitting on my underpowered Linux box doing my personal "skunk works" project.&lt;br /&gt;&lt;br /&gt;We chose git as the team source control system.&lt;br /&gt;&lt;br /&gt;Unfortunately, I had failed to detect my own biases, and the biases of the other early adopters of git.  Those biases were very different than the biases of my co-workers.&lt;br /&gt;&lt;br /&gt;I'm a command line fan.  I'm old enough that my first high school experience programming computers was with the newly installed terminals to the school district mainframe (thanks Davis School District and Layton High for spending the money, the time, and the pain to install those machines!), then I moved to a University that required I submit programs on punch cards (makes me sound old).  Before I left the University, they had upgraded to dumb terminals communicating with a DEC minicomputer.&lt;br /&gt;&lt;br /&gt;As a command line fan, I found the git "user interface" perfectly comfortable and very similar to CVS, Subversion, and Perforce.  There were a few surprises while I tried to understand distributed version control, but those surprises were related to version control concepts, not the specifics of git.&lt;br /&gt;&lt;br /&gt;Unfortunately, many in my team and in other teams are not command line fans.  They are accustomed to productivity accelerators like graphical user interfaces, integrated development environments, and mouse clicking to perform work much faster.  The transition to git has been painful for them.  In addition to my transition experience (centralized vs. distributed, new commands, new concepts), they've also had to deal with transitions from robust GUI tools (TortoiseSVN, Perforce Windows client, etc.) to weak and brittle GUI tools (GitSVN, gitk, git gui, etc.).&lt;br /&gt;&lt;br /&gt;The challenge has been made worse by our decision as a management team to isolate teams on branches.  Two of the managers in the team come from a large scale development organization (5-10x larger than our current organization) and they are accustomed to requiring branches as a way to isolate one team from the potentially breaking changes made by another team.  The price of that branch isolation is that we now are required to perform more frequent merges of work, with the resulting complexity and frustrations which come from merging with conflicts.  It gets worse when the files to be merged are coming from the Visual Studio IDE, and the meaning of the contents of the files is not always clear.&lt;br /&gt;&lt;br /&gt;I think the branch configuration decision has done more damage than the choice of git, but that is probably biased (again) by my command line centric mindset.  Unfortunately, we're far enough into the project that we aren't willing to switch SCM systems.  We'll remain with git for at least the duration of this project, glad to have a source master, glad to have it connected to our continuous integration servers, and glad to not have the awful performance of remote ClearCase.&lt;br /&gt;&lt;br /&gt;In all fairness to git, I still remember the growing pains when we switched from CVS to Perforce.  I whined mightily at paying hundreds of dollars per developer for our corporate standard SCM system.  Then I whined mightily at the tool changes and use model changes forced upon us by Perforce's way of thinking.  After 6 months or a year, I discovered that I had changed my way of thinking, and was now very comfortable using Perforce, getting value from its way of branching, and being very grateful that it was so fast.&lt;br /&gt;&lt;br /&gt;Maybe 6-12 months from now I'll say the same things about git.  Maybe it is a part of "climbing the learning curve", and unfair to judge our experience this early.  Or maybe not...&lt;br /&gt;&lt;br /&gt;I still don't know what we should have chosen instead of git, since it is not clear to me that there were any better alternatives for my team at that time.  The company was not willing to purchase another SCM system, since they were already paying for ClearCase.  That excluded all the purchased SCM systems (Perforce, Microsoft Team System, Accurev, BitKeeper, etc.).  The teams were known to be widely distributed, so that pushed us towards distributed SCM.  The benchmark comparisons suggested that Git was faster than Mercurial in many operations, and the Bazaar people were still not settled on their final "on disc" format.  Subversion was not well perceived for handling "branchy" development, and CVS was worse than Subversion.&lt;br /&gt;&lt;br /&gt;The Linux kernel handles massive amounts of change (averaging &lt;a href="https://www.linuxfoundation.org/publications/linuxkerneldevelopment.php"&gt;2-4 changes per hour continuously for the last 4 years&lt;/a&gt;) from many, many developers.  It scales well for that widely distributed, branch intensive team, yet we're struggling with it.  Of course, Linux kernel developers are even more likely to be command line biased than I am, and scaling the tool is not the issue that is getting in our way, it is more our choice to be "branchy" and the user interface weaknesses in git.&lt;br /&gt;&lt;br /&gt;So many things to learn, so little time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-5361294230835991033?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0_lVqWYUQwHxKZ63KlLMQzTkYv4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0_lVqWYUQwHxKZ63KlLMQzTkYv4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0_lVqWYUQwHxKZ63KlLMQzTkYv4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0_lVqWYUQwHxKZ63KlLMQzTkYv4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Mfc8YwIcmuE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/5361294230835991033/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=5361294230835991033" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/5361294230835991033?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/5361294230835991033?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Mfc8YwIcmuE/was-our-switch-to-git-mistake.html" title="Was Our Switch to Git a Mistake?" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/11/was-our-switch-to-git-mistake.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABRnw8eSp7ImA9WxNVGEw.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-7412376611956892129</id><published>2009-10-29T03:23:00.001-07:00</published><updated>2009-10-29T04:12:37.271-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T04:12:37.271-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nursing" /><category scheme="http://www.blogger.com/atom/ns#" term="interruptions" /><category scheme="http://www.blogger.com/atom/ns#" term="thinking" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Dangerous Interruptions</title><content type="html">Bob Sutton's blog post on &lt;a href="http://bobsutton.typepad.com/my_weblog/2009/10/reducing-interruptions-and-saving-lives-new-study-on-drug-treatment-errors.html"&gt;reducing medical interruptions&lt;/a&gt; reminds me of Sunday mornings when I take my mother-in-law from her nursing home to church.  I frequently interrupt or disrupt the nursing staff with my out of sequence, unpredictable arrival, and with my desire to get "Nana" to church on time.&lt;br /&gt;&lt;p&gt;Nana's trip from the nursing home to church starts from her room at the nursing home.  I arrive at her room between 10:20 AM and 10:40 AM (depending on how late I arrive from home).  Sunday is the only day we do this, so I tend to disrupt all sorts of people at the nursing home, including the nursing staff.&lt;br /&gt;&lt;p&gt;My mother-in-law is a diabetic, and church runs over the noon hour when she would normally receive her medications.  The nurse would normally check her blood sugars right before lunch, then based on the results of that blood sugar test, she would select the proper dose of insulin, draw that dose, and administer the dose to Nana.  Each of those steps has a potential for error, and each of those steps needs careful thought and attention to detail by the nurse.&lt;br /&gt;&lt;p&gt;Because I arrive as much as 90 minutes prior to lunch, and Nana will be gone for the three hours of church, the nurse is required to interrupt her current medication process, test Nana, medicate Nana, and then return to her previous task.  The nurses are always very kind about handling the interruption, and they provide great care.  I worry that my interruption may cause them to make unnecessary mistakes...&lt;br /&gt;&lt;p&gt;The study which Bob Sutton references was performed in the UCSF hospital system in San Francisco and is described in a &lt;a href="http://sfgate.info/cgi-bin/article.cgi?f=/c/a/2009/10/28/MNIM1AB9DB.DTL"&gt;San Francisco Chronicle article&lt;/a&gt;.  The study was an attempt to reduce the frequency of medication errors at hospitals.  They used both low-tech solutions and high tech solutions to reduce medication errors by nurses.&lt;br /&gt;&lt;p&gt;The low tech solutions described in the article focused on reducing nursing interruptions when administering medication.  The article describes "do not interrupt" sashes and vests, closing blinds to prevent distractions, and other relatively simple techniques to reduce interruptions during the crucial activity of administering medication.  The article noted that the nursing teams were encouraged to develop their own solutions, within their own working environment (own your process).  It appears from the study that nurses administer medications (a detailed technical task) less accurately when they are interrupted than when they are undisturbed.  It also appears that nurses allowed to explore improvement techniques tend to improve.&lt;br /&gt;&lt;p&gt;The study may not directly apply to my software development team, but I think there are several lessons I should take from the study.  They are lessons others have noted, but the article serves as a good reminder.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Interrupting technical work (pair programming, software design, software testing, etc.) increases the chances for error.  &lt;b&gt;I need to interrupt my people less&lt;/b&gt;&lt;br /&gt;&lt;li&gt;Allowing and encouraging people to improve their own processes, their own ways of working is likely to generate improvement.  I need to find ways to &lt;b&gt;acknowledge my mistakes openly&lt;/b&gt;, &lt;b&gt;learn from those mistakes&lt;/b&gt;, and &lt;b&gt;encourage others to do the same&lt;/b&gt;.  A software bug is a late manifestation of a mistake, mistakes will happen in human endeavors, and we want to learn from those mistakes, not hide them until later&lt;br /&gt;&lt;li&gt;Fear of failure tends to hide those failures, particularly in organizations with a culture of fear.  &lt;a href="http://bobsutton.typepad.com/my_weblog/2009/10/reducing-interruptions-and-saving-lives-new-study-on-drug-treatment-errors.html"&gt;Sutton's posting&lt;/a&gt; notes that hospitals which acknowledge and seek to reduce their drug administration errors tend to report 10x more drug administration errors than units with a more punitive attitude towards errors.  The failures will still occur, but they will be discovered later, and likely be discovered with more damage done, or higher costs incurred from the failure.  It would be a gross mistake to declare the nursing unit which reports 10x the drug administration errors as a failed unit without further investigation.  If the clinical results of the unit are better (fewer deaths, fewer injuries, lower costs, etc.), then the larger number is actually highlighting their good practice of learning, rather than the bad practice of medication errors.  &lt;b&gt;Don't worry about &lt;u&gt;bug counts&lt;/u&gt;, worry about what bugs can tell us about &lt;u&gt;how to be better&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;"Best practices" at one location were not necessarily "best" at another location&lt;/b&gt;, although sharing practice based experiences seems like a good way to learn from mistakes and thus make fewer mistakes in the future.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-7412376611956892129?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6CeZstqQFHde8W3VK_ETXPPDhZs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6CeZstqQFHde8W3VK_ETXPPDhZs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6CeZstqQFHde8W3VK_ETXPPDhZs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6CeZstqQFHde8W3VK_ETXPPDhZs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/JGAhVj13hIY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/7412376611956892129/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=7412376611956892129" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7412376611956892129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/7412376611956892129?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/JGAhVj13hIY/dangerous-interruptions.html" title="Dangerous Interruptions" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/10/dangerous-interruptions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMSHo9eip7ImA9WxNVE0g.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-8760753030308453778</id><published>2009-10-23T20:59:00.000-07:00</published><updated>2009-10-23T21:11:29.462-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-23T21:11:29.462-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="merge" /><category scheme="http://www.blogger.com/atom/ns#" term="reset" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="communication" /><title>Learning and Responding</title><content type="html">A mistake was made today.  Code was merged from one branch to another branch and the destination branch was broken in its intended use.  The break was detected late in the day of the team that caused the break, and they had already mostly left for the day.  The break highlighted all sorts of weaknesses in how I was handling things, including things like&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Why didn't I make it clear to everyone both the purpose and the target configuration of each branch?  &lt;b&gt;Poor communication&lt;/b&gt;  I had not made it clear what the purposes and expected configuration was for each branch, and they assumed that since they could see the branch building in one case, that was sufficient&lt;br /&gt;&lt;li&gt;Why didn't the person who performed the merge detect the broken build on the continuous integration server?  &lt;b&gt;Unclear information sources&lt;/b&gt;.  We had configured 3 different continuous integration servers because we needed three different configurations.  Unfortunately, I then "muddied the waters" by having one of the branches made compatible with all three configurations, and actively visible on all three configurations.  When the developer performed the merge, they saw that it was "green" on the screen they were watching, and thought they were done.  It had gone "red" on the other two servers, and those two were the most important to my team&lt;br /&gt;&lt;li&gt;Why wasn't the team which performed the harmful merge able to repair their damage?  &lt;b&gt;Unavailable spare configuration&lt;/b&gt;  They had no machine available to them which matched the problem configurations and could be used for diagnosis and development.  Their machines were all configured for their needs, and the break was in an area needed by other teams&lt;br /&gt;&lt;li&gt;Why did it take half a day to recover from the damage?  &lt;b&gt;Inexperience with our tools&lt;/b&gt;  We recently switched from Perforce to Subversion to Git and the transition has left us less skilled in dealing with the complexity of this type of failure.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;All told, the damage cost my team less than a day to recover, and because we're using a distributed version control system, they were able to continue their work locally, but they were not able to push to the central repository.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Moral of the story:  Communicate clearly, listen carefully, and be willing to change as better ideas arrive&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-8760753030308453778?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4I0dWFev87o2OFksFMl1xJY6c_Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4I0dWFev87o2OFksFMl1xJY6c_Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4I0dWFev87o2OFksFMl1xJY6c_Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4I0dWFev87o2OFksFMl1xJY6c_Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/u-Aw1Bl8R2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/8760753030308453778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=8760753030308453778" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8760753030308453778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8760753030308453778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/u-Aw1Bl8R2I/learning-and-responding.html" title="Learning and Responding" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/10/learning-and-responding.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8NSXg9fyp7ImA9WxNWEkw.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-1611206105765508431</id><published>2009-10-10T14:33:00.000-07:00</published><updated>2009-10-10T14:41:38.667-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T14:41:38.667-07:00</app:edited><title>Ask More Questions - Get More Answers</title><content type="html">I had been tolerating a nagging problem with my web browser on multiple machines and now have a solution, because I had the presence of mind to finally &lt;span style="font-weight:bold;"&gt;ask a question&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Firefox is my preferred web browser because it includes the Gmarks plugin.  The Gmarks plugin brings my google bookmarks into the Firefox menu.  That makes portable bookmark management easier (all my bookmarks are stored at Google, visible from any web browser on the internet).&lt;br /&gt;&lt;br /&gt;I also prefer the Foxit PDF reader instead of the Adobe reader.  It feels faster, cleaner, and seems less likely to be attacked by malware (smaller installed base, newer code base).&lt;br /&gt;&lt;br /&gt;Unfortunately, Firefox would report "OCX failed to load" when I tried to open a PDF file.  I had found all sorts of strange alternatives for opening PDF files in Firefox.  For example, sometimes I would download the PDF file, then open it in Foxit from the local machine.  Other times I would copy and paste the URL from FIrefox to Internet Explorer, then use Internet Explorer to open the PDF file.&lt;br /&gt;&lt;br /&gt;All those strange alternatives (work arounds, fixes, etc.) have now stopped.  I was weary of the alternatives, so I used Google to search for the error message.  In classic Google search fashion, the first page had a perfect match for my needs, a post which described my problem and an &lt;a href="http://support.mozilla.com/tiki-view_forum_thread.php?locale=fr&amp;comments_parentId=319307&amp;forumId=1"&gt;easy solution to my problem&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The moral: Ask questions sooner, don't be afraid of questions or their answers.  I'll need to think more about why I didn't ask the question sooner...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-1611206105765508431?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FZwpf2PJL6YxFG27_o2HdWANcP8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FZwpf2PJL6YxFG27_o2HdWANcP8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FZwpf2PJL6YxFG27_o2HdWANcP8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FZwpf2PJL6YxFG27_o2HdWANcP8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Z54Jo7sG-js" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/1611206105765508431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=1611206105765508431" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/1611206105765508431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/1611206105765508431?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Z54Jo7sG-js/ask-more-questions-get-more-answers.html" title="Ask More Questions - Get More Answers" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/10/ask-more-questions-get-more-answers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIASXs-cCp7ImA9WxNQGEw.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-912511492899231992</id><published>2009-09-24T09:35:00.001-07:00</published><updated>2009-09-24T09:42:28.558-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-24T09:42:28.558-07:00</app:edited><title>Feedback Junkie</title><content type="html">&lt;p&gt;I was reminded again this morning that I am a "&lt;i&gt;feedback junkie&lt;/i&gt;".  My team is on a new project and the backlog items are starting to appear as small working pieces of code.  In addition, we're connecting with other groups in the company and connecting them to our continuous integration server, showing them how it works, showing them why it helps, and hoping that together we can arrive at working faster because we have better feedback systems.&lt;/p&gt;&lt;p&gt;We've already exceeded my 5 minute threshold on the feedback system.  My arbitrarily chosen rule of thumb is that we need to know a checkin is "good" or "bad" within 5 minutes of that checkin.  I know that is not always possible.  I know there are many tests and sets of tests which will take more than 5 minutes.  Still, that 5 minute barrier is the goal, and we'll keep splitting, partitioning, and refining to keep the feedback system within those 5 minutes.&lt;/p&gt;&lt;p&gt;Now, we continue fomenting revolution, getting other people just as addicted to feedback as I am...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-912511492899231992?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0tcSQrmSZvI7cb3cXohwVQIN7So/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0tcSQrmSZvI7cb3cXohwVQIN7So/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0tcSQrmSZvI7cb3cXohwVQIN7So/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0tcSQrmSZvI7cb3cXohwVQIN7So/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Ha_8EEpsG7g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/912511492899231992/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=912511492899231992" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/912511492899231992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/912511492899231992?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Ha_8EEpsG7g/feedback-junkie.html" title="Feedback Junkie" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/09/feedback-junkie.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UEQHc-eyp7ImA9WxNSEU4.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-1988987092785876007</id><published>2009-08-24T11:40:00.001-07:00</published><updated>2009-08-24T11:40:01.953-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-24T11:40:01.953-07:00</app:edited><title>Experimenting with Windows Live Writer</title><content type="html">&lt;p&gt;I heard about Windows Live Writer in the context of Windows 7.&amp;#160; It proclaimed itself as able to help me do a better job posting to my blog.&amp;#160; Thus far I’ve struggled to post multiple pictures and to have the formatting I want.&lt;/p&gt; &lt;a title="MarkWaite by Mark Waite, on Flickr" href="http://www.flickr.com/photos/markewaite/714150891/"&gt;&lt;img alt="MarkWaite" src="http://farm2.static.flickr.com/1260/714150891_5d76768c52_o.jpg" width="480" height="356" /&gt;&lt;/a&gt;   &lt;p&gt;The idea is that I should be able to easily embed multiple pictures, wrap text around the pictures, and generally manage the blog more directly with their editing tool rather than using the HTML editor provided by blogspot.com.&lt;/p&gt;  &lt;p&gt;We’ll see…&lt;/p&gt; &lt;a title="MarkWaite by Mark Waite, on Flickr" href="http://www.flickr.com/photos/markewaite/714150891/"&gt;&lt;img alt="MarkWaite" src="http://farm2.static.flickr.com/1260/714150891_802f1a99c3_t.jpg" width="100" height="74" /&gt;&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-1988987092785876007?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m1YMZtyp0dckS87mZTo5rSj48lA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m1YMZtyp0dckS87mZTo5rSj48lA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m1YMZtyp0dckS87mZTo5rSj48lA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m1YMZtyp0dckS87mZTo5rSj48lA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/2k9lUhSA1Zs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/1988987092785876007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=1988987092785876007" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/1988987092785876007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/1988987092785876007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/2k9lUhSA1Zs/experimenting-with-windows-live-writer.html" title="Experimenting with Windows Live Writer" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm2.static.flickr.com/1260/714150891_802f1a99c3_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/08/experimenting-with-windows-live-writer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECQHk7eSp7ImA9WxNTEUo.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-6518550398588803833</id><published>2009-08-13T07:55:00.001-07:00</published><updated>2009-08-13T08:01:01.701-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-13T08:01:01.701-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="win32" /><category scheme="http://www.blogger.com/atom/ns#" term="windows7" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Python WIN32 extensions on Windows 7</title><content type="html">I started using Windows 7 a few days ago and needed the &lt;a href="http://www.python.org"&gt;Python interpreter&lt;/a&gt;.  I also needed the &lt;a href="http://sourceforge.net/projects/pywin32/"&gt;WIN32 extensions for Python&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Python installation worked just fine, I downloaded Python 2.6.2 and it installed with the expected Microsoft UAC prompt confirming that I truly intended to install.&lt;br /&gt;&lt;br /&gt;The WIN32 installation prompted for UAC as well, but then failed with an obscure error message.  However, I was able to successfully install if I opened a command processor window with "Run as Administrator", and then ran the pywin32 installer from there.  With that "magic", the installer succeeded and had the happy message "The pywin32 extensions were successfully installed".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-6518550398588803833?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fnYPENhoOQVG1xTFR7RZ4EjdGcI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fnYPENhoOQVG1xTFR7RZ4EjdGcI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fnYPENhoOQVG1xTFR7RZ4EjdGcI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fnYPENhoOQVG1xTFR7RZ4EjdGcI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/buBOQ5eu0Vg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/6518550398588803833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=6518550398588803833" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6518550398588803833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6518550398588803833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/buBOQ5eu0Vg/python-win32-extensions-on-windows-7.html" title="Python WIN32 extensions on Windows 7" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/08/python-win32-extensions-on-windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04FQH05eip7ImA9Wx5QEkQ.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-8803794844436758615</id><published>2009-07-16T05:52:00.001-07:00</published><updated>2010-08-31T17:11:51.322-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-31T17:11:51.322-07:00</app:edited><title>CAST 2009 - Red, Yellow, Green Facilitation</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/markewaite/3725828155/" title="K-Cards"&gt;&lt;img src="http://farm3.static.flickr.com/2484/3725828155_4cefab649e_m.jpg" alt="K-Cards" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/markewaite/3725828155/"&gt;CAST 2009 - Red, Yellow, Green&lt;/a&gt;  &lt;br /&gt;
Originally uploaded by &lt;a href="http://www.flickr.com/people/markewaite/"&gt;Mark Waite&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;An amazing conference has ended its formal sessions.  The last 3 days have been filled with insights about software testing, management, and measurement with a group of serious thinkers and practitioners of software testing.&lt;br /&gt;
&lt;br /&gt;
I was fascinated by the facilitation technique used to support the high amount of conversation that occurs at CAST.  The facilitation technique allowed a group of engaged listeners to discuss, debate, question, and interact with the presenter in a fluid but surprisingly orderly fashion.&lt;br /&gt;
&lt;br /&gt;
Imagine the types of problems which are likely to occur when a presenter brings a controversial topic to a group of highly engaged, forward thinking professionals.  The audience (software testers) consider it their professional role to challenge the status quo, see things differently, and understand those differences more deeply.  With that type of audience, a typical presentation would rapidly lose focus as many of the testers challenge, question, and discuss their insights.&lt;br /&gt;
&lt;br /&gt;
The CAST 2009 facilitators used "K-cards" and some agreed principles to assure that the presentations and resulting conversations are a good balance between allowing the presenter to complete their ideas and allowing the audience to interact with the presenter.  K-cards are a trio of colored 3x5 cards with a unique number assigned to each member of the audience.&lt;br /&gt;
&lt;br /&gt;
The red card is the "Burning Issue" card.  An audience member raises their red card to interrupt the presenter or any current discussion.  The red card is used to raise points of order, to flag blocking problems (like poor facility acoustics), or to allow a meaningful interruption of the presentation with key information.  The red card can be confiscated by the facilitator if the facilitator feels it is being misused or abused.&lt;br /&gt;
&lt;br /&gt;
The yellow card is the "On Stack" (or current topic) card.  It signals that you have a question or comment related to the current thread of discussion.&lt;br /&gt;
&lt;br /&gt;
The green card is the "New Stack" (or new topic) card.  It signals that you have a question or comment which is not related to the current discussion.  The facilitator keeps a list of numbers on a sheet of paper which reminds the facilitator the expected order in which new topics will be addressed.&lt;br /&gt;
&lt;br /&gt;
The interaction during the sessions was orderly, insightful, and well managed.  Ideas were presented, disagreed upon, discussed, and then new ideas were managed as well.  The general format of a presentation allowed the first half of the allotted time to be dedicated to the presenter, while audience members would listen and if necessary, would raise a red card to flag a point of order or question which justified interrupting the speaker.  The facilitator during my first few sessions was quite patient with my tendency to interrupt and did not take my red card.&lt;br /&gt;
&lt;br /&gt;
Once the presentation was complete, or presentation time expired, the session switched to "open session".  The facilitator called the number of the first "new topic" card they had seen during the presentation.  The audience member whose number was called (I was number 15 throughout the sessions) asked their question or made their comment and the presenter responded, with some "back and forth" dialog between questioner and presenter.&lt;br /&gt;
&lt;br /&gt;
If someone else had an "on topic" comment or question, they would raise their yellow card.  Throughout the session the facilitator is noting the order of appearance and resolution of green ("new topic") and yellow ("on topic") cards on a notepad.  "On topic" comments and questions take priority over new topics, and burning issues take priority over same thread topics.&lt;br /&gt;
&lt;br /&gt;
With that simple mnemonic device, a skilled facilitator, an engaged audience, and a presenter ready to engage in dialog about their topic, the conference moved forward very well.&lt;br /&gt;
&lt;br /&gt;
Paul Holland, the lead facilitator of CAST 2009, noted that there are some other subtle techniques which the facilitator can use to further improve the meeting.  For example, if there are especially strong or high expertise individuals in the room, it is OK (and useful) for the facilitator to place those individuals at the "bottom" of the "on topic" stack, even if that is not the order in which they raised their card.  By placing the experts at the bottom of the on topic stack, it allows the chance for others to present the question or observation which the expert would have presented, and involves other less expert people in the discussions more effectively.  I believe some of the facilitators even chose consciously to place experts at the bottom of their "new topic" stack so the less expert would be involved in the conversation.&lt;br /&gt;
&lt;br /&gt;
That stacking system worked well in the session I attended with experts.  There were cases where the expert would be called upon and would call "pass" because their idea or comment had already been covered in the discussion.&lt;br /&gt;
&lt;br /&gt;
The system is called "K-cards", named after Paul Holland's wife Karen.  Before K-cards, Paul facilitated by having people learn three hand signs to signal the same meaning as the 3 colored K-cards.  One of the attendees complained that the hand signs were too complicated.  Paul was complaining to Karen in mock outrage that someone would not be able to learn 3 simple hand gestures.  Karen suggested, "Why not use different colored cards".  They made the switch, and they are now named "K-cards".&lt;br /&gt;
&lt;br /&gt;
Paul noted that the Los Altos Workshop on Software Testing (LAWST) pioneered the original format which has been improved with K-cards.&lt;br /&gt;
&lt;br /&gt;
I will attempt to use K-cards in sessions where I facilitate a discussion with a large group, and I may discuss the idea with others.  We have a user experience workshop coming soon, and that workshop seems like an interesting place to try this technique as a way to manage the many opinions, discussions, and conversations which will naturally arise.&lt;br /&gt;
&lt;br /&gt;
Thanks to Paul Holland and to the rest of the CAST 2009 facilitation team for showing how effectively a simple device can encourage interesting, effective, actively progressing conversation!&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-8803794844436758615?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/usxJRRqvn2boPpC-9_-vIAbuCMo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/usxJRRqvn2boPpC-9_-vIAbuCMo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/usxJRRqvn2boPpC-9_-vIAbuCMo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/usxJRRqvn2boPpC-9_-vIAbuCMo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Opagx6hf5MY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/8803794844436758615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=8803794844436758615" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8803794844436758615?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/8803794844436758615?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Opagx6hf5MY/cast-2009-red-yellow-green-facilitation.html" title="CAST 2009 - Red, Yellow, Green Facilitation" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2484/3725828155_4cefab649e_t.jpg" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/07/cast-2009-red-yellow-green-facilitation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08MSX4zfip7ImA9WxJREU8.&quot;"><id>tag:blogger.com,1999:blog-6810754477660374002.post-6169144164794126165</id><published>2009-05-12T05:02:00.001-07:00</published><updated>2009-05-12T05:04:48.086-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T05:04:48.086-07:00</app:edited><title>Another Mistake - Inconsistent Systems</title><content type="html">The build broke again.  It seems to have been the same root cause as the last break.  The build machine has something different about its configuration which caused it to reject code which was allowed on a developers clean installation of Visual Studio 2008 and the Microsoft.NET framework.&lt;br /&gt;&lt;br /&gt;The moral of this story: Don't ignore the first failure, since the root cause of the failure won't "just go away" until it is understood and repaired.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6810754477660374002-6169144164794126165?l=markwaite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h8jVJNppPreF_0Yy-u6jax38luY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h8jVJNppPreF_0Yy-u6jax38luY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h8jVJNppPreF_0Yy-u6jax38luY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h8jVJNppPreF_0Yy-u6jax38luY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkWaite/~4/Q5GgfrzslMs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://markwaite.blogspot.com/feeds/6169144164794126165/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6810754477660374002&amp;postID=6169144164794126165" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6169144164794126165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6810754477660374002/posts/default/6169144164794126165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MarkWaite/~3/Q5GgfrzslMs/another-mistake-inconsistent-systems.html" title="Another Mistake - Inconsistent Systems" /><author><name>Mark Waite</name><uri>http://www.blogger.com/profile/18379371030875205412</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://bp3.blogger.com/_--QdPTKZ4Bc/SDlqbz1tgWI/AAAAAAAAAPU/GH2ePi_V9qQ/S220/MarkWaite.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://markwaite.blogspot.com/2009/05/another-mistake-inconsistent-systems.html</feedburner:origLink></entry></feed>

