<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>skizz.biz</title>
	<atom:link href="http://skizz.biz/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://skizz.biz/blog</link>
	<description>Chris Stevenson's blog</description>
	<pubDate>Mon, 04 May 2009 23:38:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Mea culpa</title>
		<link>http://skizz.biz/blog/2009/05/04/mea-culpa/</link>
		<comments>http://skizz.biz/blog/2009/05/04/mea-culpa/#comments</comments>
		<pubDate>Mon, 04 May 2009 23:31:15 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/?p=263</guid>
		<description><![CDATA[I like many have been following the recent discussions in the rails community about the p0rn presentation. This is not about that, except peripherally.
This is a mea culpa. Some may dismiss it as a luxurious middle class angst and maybe it is. But it is how I feel and reflects the learnings and thoughts of [...]]]></description>
			<content:encoded><![CDATA[<p>I like many have been following the recent discussions in the rails community about the <a href="#mce_temp_url#">p0rn presentation</a>. This is not about that, except peripherally.</p>
<p>This is a mea culpa. Some may dismiss it as a luxurious middle class angst and maybe it is. But it is how I feel and reflects the learnings and thoughts of quite some time.</p>
<p>When do we learn to discriminate?</p>
<p>A friend of mine told me something the other day. He was playing an old video game with a friend&#8217;s child. At the start of the game you get to choose which character you play. There are two player avatars, one white, one black. The black character is wearing a hat. His friend&#8217;s (white) child would always choose to play as &#8216;the one with the hat&#8217;.</p>
<p>In a similar vein I had a shock once after being in India for a long time, and traveling back to the UK. On the train on the way back to London I felt wierd and uncomfortable, and I realized that it was because everyone else on the train was white. I had become so used to living in India that my concept of what was &#8216;normal&#8217; had shifted so that white people looked &#8216;different than me&#8217;.</p>
<p>In one of my first jobs we had a female lead DBA (let&#8217;s call her Alice). She was incredibly good at her job. We had a contractor (lets call him Charlie). Charlie was a man in his 50s who was contracted to come and do a review and audit of some of the data. There had been problems with the data in previous years that meant that external review was important.</p>
<p>Another colleague of mine pointed out something that has remained with me ever since. He pointed out that Charlie never talked to Alice. He would never ask her for help, or address questions to her, or even acknowledge her in meetings. The next time I was in a meeting with them both I watched, and it was perfectly true. He would address questions to some of the other DBAs, and if he spoke it would be to someone else.</p>
<p>Two things struck me abut this. One was the obvious misogyny and disrespect that Charlie showed towards someone who I knew to be incredibly competent - in fact far more competent that he. The other - and in many ways more frightening realization - was that I had never noticed this. That I had been in meetings before where this behavior had happened and that I had never seen it. I started to question my own assumptions and behaviors and have tried to do so ever since.</p>
<p>Recently I&#8217;ve come to realise that I am a lot more like Charlie than I like to admit. I have worked in India and China for a long time now, and when I see the sort of discrimination against Indians or Chinese people and towards foreigners I have always hated it, and done what I could do divert or deflate it. But while it is sometimes easy to see in others it can be hard to see in yourself.</p>
<p>I am a tall, experienced, confident, financially secure white man. I have all the advantages in our world. My only minority status is as a gay man - ironically out middle class gay men are one of the richest niche demographics in the western world. While I can empathize and recoil in horror at the treatment of GLBT people in Africa, India, China and parts of our western world I have been lucky enough to live in places where that kind of discrimination is not common. Debates about same-sex marriage notwithstanding, I have never suffered negative discrimination on that account, even being &#8216;out&#8217; in India and China where the majority of society still treats gay locals as outcast.</p>
<p>As that experienced, tall, confident rich white foreigner I get a lot of deference and respect. It is far too easy to internalize that deference - to come to believe that all of it is deserved - to take it all for granted. As that happens more times you start to think you are always right. No matter how many times I have been humbled by the skills and knowledge of my junior colleagues. And no matter how hard I try it is easy end up thinking as yourself as &#8216;better&#8217;.</p>
<p>I like all of us have seen cases where a good suggestion or idea from a junior in a team is ignored, while the very same suggestion from a person in power is enthusiastically taken up. Often times this happens in the same meeting, and the person who does it seems completely unaware of what just happened. Earlier in my career I saw it happen to others, and sometimes myself. These days I wonder how often I do it myself.</p>
<p>I don&#8217;t know if I, or any of us who are in these unconsciously powerful social roles can ever move beyond conscious incompetence at recognizing when this is happening. I try to set up an environment where people can learn and people can own their own innovations. I try to give others the chance to propose solutions *before* I give my ideas. I try (and often fail) not to drive too much while pairing.</p>
<p>We miss things like this all the time. We become desensitized to our surroundings and we don&#8217;t see the things that stare others in the face. Go into a shop that sells hose (I was buying it for a stage costume - honest) or cosmetics and see what the &#8216;normal&#8217; color range looks like. Walk through an American city as a vegetarian and look at all the pictures of dead bleeding meat on billboards. Walk as a gay man and notice all the heterosexuality on billboards. Walk as a woman and notice the number of semi-naked women sharing a space in an ad with a fully dressed man.</p>
<p><a href="http://www.ibiblio.org/wm/paint/auth/manet/dejeuner/"><img class="alignnone" title="Dejeuner sur lHerbe" src="http://www.ibiblio.org/wm/paint/auth/manet/dejeuner/manet.dejeuner-sur-herbe.jpg" alt="" width="409" height="281" /></a></p>
<p>This is why it is so important that I listen to a colleague when they tell me that something makes them feel uncomfortable. Because I have been be blind to it in the past and I will be in the future. To question their experience is to prolong my own ignorance and increase the offense.</p>
<p>I will never reach the end of this path. The best I can hope for is that by keeping constant guard I may be able to realize and notice these things, and try to address them in myself. When I fail (and I fail often) it is not just others who suffer, but my relationships with others, and I myself diminish.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2009/05/04/mea-culpa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>In the Middle Somewhat Elevated - San Francisco Ballet</title>
		<link>http://skizz.biz/blog/2009/01/30/in-the-middle-somewhat-elevated/</link>
		<comments>http://skizz.biz/blog/2009/01/30/in-the-middle-somewhat-elevated/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 07:30:17 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[arts]]></category>

		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/?p=259</guid>
		<description><![CDATA[&#8220;In the middle, somewhat elevated&#8221; is what modern dance should be about. The piece opens with an industrial crash, and the electronic-punk soundtrack by Thom Willems grabs the audience (and the dancers) by the throat and doesn&#8217;t let up. 
It was first performed in 1987 by the Paris Opera Ballet - in the Palais Garnier with [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;In the middle, somewhat elevated&#8221; is what modern dance should be about. The piece opens with an industrial crash, and the electronic-punk soundtrack by Thom Willems grabs the audience (and the dancers) by the throat and doesn&#8217;t let up. </p>
<p>It was first performed in 1987 by the Paris Opera Ballet - in the Palais Garnier with its rococco stylings and Marc Chagall roof. The stage is bare, the wings exposed, and the performers wear skintight lycra. This contrast carries into the choreography with its playful contrast of angular movement with classical references and pas de deux.</p>
<p>The dancers match the frenetic music, the focus shifting from one dancer to a group to a pair. Often there are multiple groupings at once, and sometimes the briefest of handoffs as a single shared movement is taken in different directions.</p>
<p>Dancers give the briefest of acknowledgements to each other before they part - stalking away in disdain - forming again in aggression or sexual tension before parting again. The piece is demanding and relentlessly angular - making heavy demands on the dancers.</p>
<p>This performance by the <a href="http://www.sfballet.org/performancestickets/2009season/program2.asp">San Francisco Ballet</a> was magical. It came at the end of the night after two other pieces. </p>
<p>&#8220;Naked&#8221; is choreographed by Stanton Welch to music by Poulenc. It seemed that the dancers were not fully invested in the piece however. There are playful elements to the piece that I felt were missing, and while it was entertaining I felt myself drifting. &#8220;Ibsen&#8217;s House&#8221; by Val Caniparoli to music by Dvorak seemed to engage the dancers more. There are some engaging ensemble dances for the female dancers, and some of the pas de deux are great. </p>
<p>But really the Forsythe, last for physical reasons, is a level above in terms of performance and commitment. It was worth the ticket price on its own. Highly highly recommended.</p>
<p>PS. You can catch a <a href="http://www.youtube.com/watch?v=vHCUpEEqPSU">flavor of the piece on youtube</a> but really there&#8217;s no substitute for seeing it live. You can see it until 8th February - <a href="http://www.sfballet.org/performancestickets/2009season/program2.asp">Book tickets here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2009/01/30/in-the-middle-somewhat-elevated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft&#8217;s recursive search</title>
		<link>http://skizz.biz/blog/2008/08/12/microsofts-recursive-search/</link>
		<comments>http://skizz.biz/blog/2008/08/12/microsofts-recursive-search/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 08:26:48 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/?p=255</guid>
		<description><![CDATA[Finding things on Microsoft&#8217;s site is an exercise in frustration.
Here is a case in point. I am looking for a fix to a problem caused when trying to open a VSTO (Office) project in Visual Studio. I get a helpful error that says &#8220;The project type is not supported by this installation.&#8221;. There are a [...]]]></description>
			<content:encoded><![CDATA[<p>Finding things on Microsoft&#8217;s site is an exercise in frustration.</p>
<p>Here is a case in point. I am looking for a fix to a problem caused when trying to open a VSTO (Office) project in Visual Studio. I get a helpful error that says &#8220;The project type is not supported by this installation.&#8221;. There are a few places around the web that talk of this problem and suggest ways to fix it. I follow one link to an MS web page:</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;displaylang=en</a></p>
<p>Unfortunately this is an old link, and the page no longer exists. MS use their flagship Live Search to give me a set of alternatives. Unfortunately, and insanely stupidly, the very first link that comes up as a result of the search is the same link that I was trying to go to in the first place &#8212; the one that doesn&#8217;t exist.</p>
<p>Sigh.</p>
<p><span style="color: #0000ee;"><span style="text-decoration: underline;"><a href="http://skizz.biz/blog/wp-content/uploads/2008/08/microsoft-recursive-search.png"><img class="alignnone size-full wp-image-256" title="Microsoft Recursive Search" src="http://skizz.biz/blog/wp-content/uploads/2008/08/microsoft-recursive-search.png" alt="" width="500" height="270" /></a></span></span></p>
<p>Interestingly when I put the same search into Google and follow the link, I get the same &#8216;not found&#8217; error but the first link on the page is not the recursive search link.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/08/12/microsofts-recursive-search/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is that Martin Fowler?</title>
		<link>http://skizz.biz/blog/2008/08/04/is-that-martin-fowler/</link>
		<comments>http://skizz.biz/blog/2008/08/04/is-that-martin-fowler/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 07:27:40 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[humour]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/?p=251</guid>
		<description><![CDATA[I was showing http://cuil.com to a colleague &#8212; I like the three column view &#8212; when I noticed this rather unexpected image appear when I did a search for Martin Fowler : http://www.cuil.com/search?q=martin+fowler
So who is that youngster that appears? Did Martin clone himself a few years back and is starting to accustom us to his [...]]]></description>
			<content:encoded><![CDATA[<p>I was showing http://cuil.com to a colleague &#8212; I like the three column view &#8212; when I noticed this rather unexpected image appear when I did a search for Martin Fowler : http://www.cuil.com/search?q=martin+fowler</p>
<p>So who is that youngster that appears? Did Martin clone himself a few years back and is starting to accustom us to his new younger avatar?</p>
<p><a href="http://skizz.biz/blog/wp-content/uploads/2008/08/cuil-martin-fowler.jpg"><img class="alignnone size-full wp-image-252" title="Screenshot from cuil.com results for search on \&quot;Martin Fowler\&quot;" src="http://skizz.biz/blog/wp-content/uploads/2008/08/cuil-martin-fowler.jpg" alt="Martin Fowler\'s clone?" width="326" height="214" /></a></p>
<p>The photo does not appear on the linked page that I can see, and the image link itself (http://www.cuilimg.com/imgsrv?i=020410:620124592474843) doesn&#8217;t help. But there is a clue in the categories on the right hand side :</p>
<p><span style="color: #0000ee;"><span style="text-decoration: underline;"><a href="http://skizz.biz/blog/wp-content/uploads/2008/08/cuil-martin-fowler-categories.jpg"></a><a href="http://skizz.biz/blog/wp-content/uploads/2008/08/cuil-martin-fowler-categories.jpg"><img class="alignnone size-full wp-image-253" title="Cuil search for Martin Fowler categories" src="http://skizz.biz/blog/wp-content/uploads/2008/08/cuil-martin-fowler-categories.jpg" alt="Eureka!" width="318" height="522" /></a></span></span></p>
<p>So here is the solution - it seems that Martin has actually been a fictional character all along, and indeed <a title="Books by Martin Fowler" href="http://martinfowler.com/books.html">Patterns of Enterprise Application Architecture</a> itself is a subtle <a title="Wikipedia &quot;Astroturfing&quot;" href="http://en.wikipedia.org/wiki/Astroturfing">astroturfing</a> campaign to add credibility to a <a title="Wikipedia &quot;Marin Fowler Eastenders&quot;" href="http://en.wikipedia.org/wiki/Martin_Fowler_(EastEnders)">character in an english soap opera</a>.</p>
<p>Who knew? :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/08/04/is-that-martin-fowler/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Apple iPhone has no &#8216;off&#8217; button</title>
		<link>http://skizz.biz/blog/2008/05/06/the-apple-iphone-has-no-off-button/</link>
		<comments>http://skizz.biz/blog/2008/05/06/the-apple-iphone-has-no-off-button/#comments</comments>
		<pubDate>Tue, 06 May 2008 19:52:05 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2008/05/07/the-apple-iphone-has-no-off-button/</guid>
		<description><![CDATA[Update: So it turns out iPhones *do* have a way to turn it off but its just that I at least never read the manual (because you don&#8217;t need to) and didn&#8217;t discover it. My main point is still interesting I think, that you don&#8217;t need it enough to want to find it. As usual [...]]]></description>
			<content:encoded><![CDATA[<p><b>Update:</b> So it turns out iPhones *do* have a way to turn it off but its just that I at least never read the manual (because you don&#8217;t need to) and didn&#8217;t discover it. My main point is still interesting I think, that you don&#8217;t need it enough to want to find it. As usual I will leave my mistake here for the word to read. :-)</p>
<p>Apple get usability. By now there must be very few people who don&#8217;t realise that. But in case there are some out there, lets just look at a couple of examples that struck me recently. </p>
<p>I own an Apple iPhone. I bought it in San Francisco, unlocked it myself, and have been using it constantly for the last month. It is without question the best phone I have ever used. Not perfect, for all the (3G etc.) reasons that you can read about on the blogsphere, but it is pretty damn close, and certainly closer than any other I have owned, including my abortive attempts to get to like &#8220;smart phones&#8221; in the past (Palm, Nokia etc).</p>
<p>But it struck me after a month of using the thing that there is a glaring missing feature. In fact it is so obvious I&#8217;m astounded that I haven&#8217;t noticed it before. There is no &#8216;off&#8217; button. </p>
<p>There is a button on the top right that you press to lock it - the screen turns off but little more. </p>
<p>There is also a &#8216;be quiet&#8217; button on the left side, above the volume control. Hit it, and the phone gives a little shake and then remains silent. This is equivalent to choosing the &#8216;Silent&#8217; profile on a Nokia or other phone.</p>
<p>The most amazing thing about the lack of an &#8216;off&#8217; switch is that you never notice it. Hey, it took me a month. And when do notice, and start to think about it, you realise that you never actually needed an off button anyway. The only reason that I used it on my old phone was because I was going into a meeting, and I wanted to make sure I wasn&#8217;t disturbed. </p>
<p>But this shows the reason that Apple doesn&#8217;t need it. With my old Nokia, &#8216;Silent&#8217; was a profile, and I had to trust that the people who created that profile did the right thing, and turned all the sounds and notifications off. That they didn&#8217;t think &#8220;You know, this feature that I&#8217;m working on is really *really* important &#8212; no-one would *ever* turn it off &#8212; so I&#8217;ll give an ever so subtle beep even in Silent mode&#8221;. I don&#8217;t trust anyone to do that. I don&#8217;t trust *myself* to do that if I&#8217;m developing software.</p>
<p>So what Apple does is say: &#8220;No, this isn&#8217;t an option, its not a profile that you can customise. No questions asked &#8212; hit this button and I won&#8217;t disturb you. Not at all. Never&#8221;. It is still a trust issue. But I trust that button. I trust it because it doesn&#8217;t feel like a software option &#8212; the button implies a hardware solution &#8212; a built in switch that kills the sound. (Of course I understand that in reality it is software, but trust is conveyed by the visceral physical click of that button).</p>
<p>Apart from wanting to make it silent, why would you ever turn off your mobile? These days turning off a mobile is like locking yourself in a dark room and calling out to your friends that you aren&#8217;t coming out. Life &#8212; or at least social life &#8212; stops [1]. So the Apple iPhone has no off button.</p>
<p>Another shorter example. I am writing this sitting outside the Apple store in NY. You know the one, the glass box on 5th Avenue. Every couple of minutes someone takes a photo of it. It is beautiful, ad the plaza that surrounds it is comfortable and popular and full of people sitting eating lunch. A shop that gives something back. Nice.</p>
<p>Inside the store, it is very busy, very crowded. Apple stores have the highest per foot profitability of any store here. But it is still cool and comfortable and a pleasant place to be. But it is quite noisy. So how do you sell iPods, which are &#8216;all about the music&#8217; as Steve Jobs likes to say in a noisy environment?</p>
<p>I don&#8217;t know how other companies would do it, but what Apple do is load all the iPods on display with Bose sound cancelling headphones. These are the $250+ headphones that you see long distance travellers (like me) using on long haul flights to cut down the airplane noise and get some sleep [2]. Despite the noise in the store you really can hear the music, and the chaos of the store disappears when you put them on.</p>
<p>This is the attention to the user experience that has made Apple what it is. It is pleasant to visit an Apple store. It is pleasant to buy an Apple product. It is pleasant to use an Apple product. And it is why the Apple iPhone doesn&#8217;t have an off button.</p>
<p>[1] While writing this it struck me that the same is true of my laptop. I never switch it off, I just close the lid. And that makes me wonder if we will someday see a laptop from Apple that has no off switch? </p>
<p>[2] They are using the AC3 ones that sit on the ear, and I guess that is because a used over the ear headphone might feel unsanitary, whereas the on the ear design leads to less actual contact. They are not the battery operated ones though, I don&#8217;t know what exact model they are.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/05/06/the-apple-iphone-has-no-off-button/feed/</wfw:commentRss>
		</item>
		<item>
		<title>REST Podcast</title>
		<link>http://skizz.biz/blog/2008/03/22/rest-podcast/</link>
		<comments>http://skizz.biz/blog/2008/03/22/rest-podcast/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 15:38:32 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2008/03/22/rest-podcast/</guid>
		<description><![CDATA[While in San Francisco recently for a meeting, a group of ThoughtWorkers got together to record some podcasts. The first has now been posted here:
In this two-part series, Martin Fowler, Chris Stevenson, Jim Webber, and Sriram Narayan discuss REST (Representational State Transfer). They touch on the history of REST, a detailed explanation, and examples. Additionally, [...]]]></description>
			<content:encoded><![CDATA[<p>While in San Francisco recently for a meeting, a group of ThoughtWorkers got together to record some podcasts. The first has now been posted here:</p>
<blockquote><p>In this two-part series, Martin Fowler, Chris Stevenson, Jim Webber, and Sriram Narayan discuss REST (Representational State Transfer). They touch on the history of REST, a detailed explanation, and examples. Additionally, they discuss programming with the Web today, modeling your resources, types, RESTful enterprise development, and reuse.</p></blockquote>
<p><a href="http://www.thoughtworks.com/what-we-say/podcasts.html">http://www.thoughtworks.com/what-we-say/podcasts.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/03/22/rest-podcast/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fixing Broken Windows with Ratcheting</title>
		<link>http://skizz.biz/blog/2008/03/11/fixing-broken-windows-with-ratcheting/</link>
		<comments>http://skizz.biz/blog/2008/03/11/fixing-broken-windows-with-ratcheting/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 15:23:08 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2008/03/12/fixing-broken-windows-with-ratcheting/</guid>
		<description><![CDATA[Many codebases suffer from an accumulation of technical debt &#8212; small sub-optimal fixes and tactical decisions. Each of these probably made sense at the time, and we always intend to come back and fix them, but somehow never have time. Ratcheting is one technique that may help to address this problem.
The Problem
You are on a [...]]]></description>
			<content:encoded><![CDATA[<p>Many codebases suffer from an accumulation of technical debt &#8212; small sub-optimal fixes and tactical decisions. Each of these probably made sense at the time, and we always intend to come back and fix them, but somehow never have time. Ratcheting is one technique that may help to address this problem.</p>
<h2>The Problem</h2>
<p>You are on a large codebase in a large team. The codebase hase been around for a while, and as always in these cases, has accumlated some technical debt. These are mostly simple things that would be easy to fix, but there are so may of them that it can be hard to see where to start. And since you are busy releasing new versions and working on new features, it is hard to find the time to just work on these trivial things.</p>
<p>But just leaving them is bad too - since this lead to an acceleration of problems. If there are 100 warnings, then 101 is not so bad, is it? If there are already 30 ignored tests, does it really matter if I ignore this test? These are the sort of simple day to day compromises that lead to a long term deterioration in code.</p>
<p>This is the <a href="http://en.wikipedia.org/wiki/Boiling_frog">boiling frog</a> syndrome &#8212; where a small incremental change is not noticeable but over a long period of time there is a significant change.</p>
<p>Another example is build time. Over time our builds tend to get longer, and while today&#8217;s build may only be a second or two slower than yesterday&#8217;s, over a year or longer we may be looking at significantly slower builds.</p>
<p>Avoiding this is one problem. Another is fixing it when it has occurred, but you can&#8217;t take the development process offline to just fix the technical debt.</p>
<p>It is easy to say &#8216;the build should be no longer than 10 minutes&#8217; but what do you do if it is currently 20 minutes? What do you do if you have hundreds of build warnings, or FxCop reports thousands of (mostly trivial) problems?</p>
<h2>Ratcheting</h2>
<p>A ratchet is defined as &#8220;a ratchet is a device that allows linear or rotary motion in only one direction, while preventing motion in the opposite direction.&#8221; &#8212; <a href="http://en.wikipedia.org/wiki/Ratchet_%28device%29">Wikipedia</a></p>
<p>What we are trying on our project is a software version of the ratchet. The approach is fairly simple, and consists of the following steps:</p>
<p><b>Identify a problem</b> &#8212; Choose one of the issues that you have, and find a way of reducing it to a number. Examples are build time, the number of ignored tests, the <a href="http://skizz.biz/blog/2004/01/20/more-reasons-never-to-use-c-enums/">number of enums</a>, switch statements, code coverage or pretty much whatever you can count.</p>
<p><b>Stop it getting worse</b> &#8212; This is the crucial piece. <b>In every build, check the number, and compare it to the number in the previous build. If it is &#8216;worse&#8217;, then fail the build.</b> Of course what &#8216;worse&#8217; means differs for different metrics. Build time is worse if it goes up. Coverage is worse if it goes down.</p>
<p><b>Make it better (optional)</b> &#8212; In this step you <b>fail the build if the number doesn&#8217;t get better</b>. I think of this as tightening the screws. I like to think of it as a reference to literally tightening loose screws on some kind of machine. But done badly it could be a reference to tightening thumbscrews to torture people. A tyrannical &#8216;architect&#8217; doing this could kill team morale. On the other hand if the whole team agrees to it and chooses the thing to ratchet then it can be a positive reinforcement.  </p>
<p>This means that every time someone checks in, they have to remove one of these items. It may be simple, as in fixing one build warning, or more complex, as in improving code coverage. It will affect productivity a bit, but only a little bit for each checkin. It makes sure that everyone takes responsibility for fixing the problems in the code. Done well, I think this can enhance the team.</p>
<p><b>Repeat</b> &#8212; There&#8217;s a lot left to do. Choose another metric. Keep the previous ratchet in place, or you will lose the benefit.</li>
<h2>Trying it out</h2>
<p>On our current project, we have 85 &#8216;TODO&#8217; comments in the code. This is classic technical debt. Who knows if these are still valid? We have turned ratcheting of these on in our build to test the idea. With a team of 7 pairs, it should only take us a few days to get that to zero. I&#8217;ll let you know how it goes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/03/11/fixing-broken-windows-with-ratcheting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>UN data free and accessible &#8212; data.un.org</title>
		<link>http://skizz.biz/blog/2008/02/23/un-data-free-and-accessible-dataunorg/</link>
		<comments>http://skizz.biz/blog/2008/02/23/un-data-free-and-accessible-dataunorg/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 01:07:48 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2008/02/23/un-data-free-and-accessible-dataunorg/</guid>
		<description><![CDATA[At TED in 2007, Hans Roslings announced that the UN had agreed to make their data freely available. Previously it was paid only. 
Well they have not only followed up with action, they have done it in style.They have just introduced a new website where you can query all the databases. It is features a very [...]]]></description>
			<content:encoded><![CDATA[<p>At TED in 2007, Hans Roslings announced that the UN had agreed to make their data freely available. Previously it was paid only. </p>
<p>Well they have not only followed up with action, they have done it in style.They have just introduced a new website where you can query all the databases. It is features a very nice google style search, with lots of ajaxy goodness to make finding data even easier.You can find it here : <a href="http://data.un.org/">http://data.un.org/</a>.</p>
<p>It is early days yet, and all the data is not there, but you can already do some interesting searches. Some rather peculiar ones too. For example, you can find out how many Internet users there were in the world from 1960 to the present. Here is the data for 1960 : <a href="http://data.un.org/Data.aspx?d=CDB&amp;f=srID:29972;yr:1960&amp;c=2,3,4&amp;s=_crEngNameOrderBy:asc,yr:desc&amp;v=1">Internet Usage in 1960</a> - 30 years before Al Gore even invented it :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/02/23/un-data-free-and-accessible-dataunorg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mashups at the World Bank</title>
		<link>http://skizz.biz/blog/2008/02/23/mashups-at-the-world-bank/</link>
		<comments>http://skizz.biz/blog/2008/02/23/mashups-at-the-world-bank/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 00:26:27 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[mashup]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2008/02/23/mashups-at-the-world-bank/</guid>
		<description><![CDATA[I have been interested for a while in the idea of the &#8216;corporate mashup&#8217;. What could be done with corporate data mashed up with things like Google Maps and other visualizations? I found this one today from the World Bank &#8212; summaries of its projects in a Google Maps mashup.
http://geo.worldbank.org/
It is also very good to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been interested for a while in the idea of the &#8216;corporate mashup&#8217;. What could be done with corporate data mashed up with things like Google Maps and other visualizations? I found this one today from the World Bank &#8212; summaries of its projects in a Google Maps mashup.</p>
<p><a href="http://geo.worldbank.org/">http://geo.worldbank.org/</a></p>
<p>It is also very good to see that these organizations are starting to open up access to this information &#8212; triggered in no small part by Hans Roslings at <a href="http://www.gapminder.org">Gapminder</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2008/02/23/mashups-at-the-world-bank/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Owen and Fiona&#8217;s leaving China party</title>
		<link>http://skizz.biz/blog/2007/12/21/owen-and-fionas-leaving-china-party/</link>
		<comments>http://skizz.biz/blog/2007/12/21/owen-and-fionas-leaving-china-party/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 10:35:01 +0000</pubDate>
		<dc:creator>skizz</dc:creator>
		
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://skizz.biz/blog/2007/12/21/owen-and-fionas-leaving-china-party/</guid>
		<description><![CDATA[
Owen and Fiona have been here in China for the last 6 months, and have just headed back to Vancouver, Canada. I have worked with Owen in many countries around the world, and it is sad to see them leave so soon after I got here. A group of us from the office went to a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://skizz.biz/galleries/2007-12-19-owen-and-fiona-farewell/"><img src="http://skizz.biz/galleries/2007-12-19-owen-and-fiona-farewell/thumbnails/thumb-20.jpg" /></a></p>
<p>Owen and Fiona have been here in China for the last 6 months, and have just headed back to Vancouver, Canada. I have worked with Owen in many countries around the world, and it is sad to see them leave so soon after I got here. A group of us from the office went to a local gyoza joint for dinner and to say farewell. There are a few babies around, and it made me realise how much ThoughtWorks can be a global family. Photos <a href="http://skizz.biz/galleries/2007-12-19-owen-and-fiona-farewell/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skizz.biz/blog/2007/12/21/owen-and-fionas-leaving-china-party/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
