<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>f3yourmind</title>
	
	<link>http://aslamkhan.net</link>
	<description>"There are no limits. There are only plateaus, and you must not stay there, you must go beyond them." - Bruce Lee</description>
	<lastBuildDate>Wed, 28 Oct 2009 02:59:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nd/3.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/f3yourmind" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>There are no boundaries, just forces</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/ekdnkGAsnEs/</link>
		<comments>http://aslamkhan.net/software-development/there-are-no-boundaries-just-forces/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 02:59:42 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[diversity]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=277</guid>
		<description><![CDATA[I shared by thoughts on people dynamics and how it affects success of software development projects with Yuanfang Cai yesterday.  In particular, I was explaining my thoughts on how diversity in a team affects the performance of a team.  When I talk about diversity I mean a lot more than just culture, language, and timezone.  [...]]]></description>
			<content:encoded><![CDATA[<p>I shared by thoughts on people dynamics and how it affects success of software development projects with <a href="http://www.cs.drexel.edu/~yfcai/">Yuanfang Cai</a> yesterday.  In particular, I was explaining my thoughts on how diversity in a team affects the performance of a team.  When I talk about diversity I mean a lot more than just culture, language, and timezone.  I also view diversity in terms of value systems, political affiliation, economic position, overlapping worlds (such as work world overlapping with home world).  But my weirdest interpretation of diversity is that of diversity based on team boundaries.</p>
<p>Traditionally, each team has a boundary.  This boundary determines whether you are included or excluded from the team.  Sometimes, the inclusion and exclusion rules are clear, which is a good thing.  Sometimes, it is not.  Regardless, the boundary exists to eliminate diversity.  But, there are too many edge cases of people being brought into the team for a short while, then leaving.  The position taken is often &#8220;Joe is <em>not part of</em> the team, but <em>sometimes we need him</em> to join in so that we can &#8230;&#8221;.  Well, teams don&#8217;t work like that.  Let me rephrase: GOOD teams don&#8217;t work like that.</p>
<p>What I explained to Yuanfang was that I don&#8217;t think a team should have boundaries at all.  Instead, everyone is part of the team.  However, some people have a strong force that attaches them strongly to the team and others are attached by much weaker forces (like Joe&#8217;s part-time involvement).  When, you think of the team constructed via these forces, then the team can still work from one value system.  Why?  Because the degree of adoption of the value system is independent of the strength of the team forces.</p>
<p>Try it out and, maybe you will get greater harmony in the team and increased collaboration too.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=ekdnkGAsnEs:Vpy2neRYVtg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=ekdnkGAsnEs:Vpy2neRYVtg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=ekdnkGAsnEs:Vpy2neRYVtg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=ekdnkGAsnEs:Vpy2neRYVtg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=ekdnkGAsnEs:Vpy2neRYVtg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=ekdnkGAsnEs:Vpy2neRYVtg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=ekdnkGAsnEs:Vpy2neRYVtg:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/there-are-no-boundaries-just-forces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/there-are-no-boundaries-just-forces/</feedburner:origLink></item>
		<item>
		<title>Flowing in the Waves</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/5Ds-WbgDacE/</link>
		<comments>http://aslamkhan.net/software-development/flowing-in-the-waves/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:48:18 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Ubiquitous Language]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=274</guid>
		<description><![CDATA[I just had a quick Google Wave experience with Willem Odendaal and the experience of seeing the other person type was a bit weird for both of us.
Lesson to both of us: Think before you wave!
Also, I have to remind myself to not think about waves as email, or tweets or instant messages. It&#8217;s just [...]]]></description>
			<content:encoded><![CDATA[<p>I just had a quick <a href="http://wave.google.com">Google Wave</a> experience with <a href="http://thecodersperspective.blogspot.com/">Willem Odendaal</a> and the experience of seeing the other person type was a bit weird for both of us.</p>
<p>Lesson to both of us: <strong>Think before you wave!</strong></p>
<p>Also, I have to remind myself to not think about waves as email, or tweets or instant messages. It&#8217;s just something else! And it has a different spin on the time dimension of communication.</p>
<p>I suspect that Google Wave will force us to be better at the way we communicate, how we express ourselves and the relevance of the content to the conversation.  I can imagine a wave growing over time that describes a story started by a domain expert with feedback from a developer and a nice cadence emerging between them.  It all is in one nice wave, with playback that tells you how you got there in the first place.  I wonder if this will have an influence on effectiveness of remote pairing?</p>
<p>I also have a feeling that if you&#8217;re a waterfall type of person, then waves will not have an impact on you.  It&#8217;s all about feedback and dealing with the changes, which is at the heart of agility.</p>
<p>Now I just need someone to wave with to try out a slightly modified development flow.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=5Ds-WbgDacE:MBAIN_0xuec:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=5Ds-WbgDacE:MBAIN_0xuec:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=5Ds-WbgDacE:MBAIN_0xuec:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=5Ds-WbgDacE:MBAIN_0xuec:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=5Ds-WbgDacE:MBAIN_0xuec:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=5Ds-WbgDacE:MBAIN_0xuec:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=5Ds-WbgDacE:MBAIN_0xuec:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/flowing-in-the-waves/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/flowing-in-the-waves/</feedburner:origLink></item>
		<item>
		<title>Are you coming to OOPSLA?</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/31F0_Zigeq4/</link>
		<comments>http://aslamkhan.net/events/are-you-coming-to-oopsla/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:28:56 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Conferences, Speaking Gigs, etc.]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[modularity]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=271</guid>
		<description><![CDATA[In a couple of weeks I will be at the OOPSLA conference in Orlando, USA.  I am absolute OOPSLA nOOb but am already excited about it.  I&#8217;ve heard lots of nice things from the OOPSLA &#8220;veterans&#8221; at factor10 and now I can&#8217;t really wait to get there.
I will be giving a tutorial on using AOP [...]]]></description>
			<content:encoded><![CDATA[<p>In a couple of weeks I will be at the <a href="http://www.oopsla.org">OOPSLA</a> conference in Orlando, USA.  I am absolute OOPSLA nOOb but am already excited about it.  I&#8217;ve heard lots of nice things from the OOPSLA &#8220;veterans&#8221; at factor10 and now I can&#8217;t really wait to get there.</p>
<p>I will be giving a <a href="http://www.oopsla.org/oopsla2009/program/tutorials/149-using-aop-with-ddd-to-create-rich-clean-domain-models">tutorial</a> on using AOP to solve some domain problems, not just removing the infrastructural noise from your domain models.  Also, I&#8217;ve been invited to be part of a <a href="http://www.comp.lancs.ac.uk/~greenwop/ACoM.09/panel.htm">panel</a> on my best-loved-hated subject &#8230; modularity.  I will also take part in the Cloud Computing Design <a href="http://www.oopsla.org/oopsla2009/program/workshops/134-best-practices-in-cloud-computing-designing-for-the-cloud">workshop</a>.</p>
<p>There&#8217;s also an amazing line up for the other tutorials and OOPSLA still has a &#8220;Pay for 3 and attend 4&#8243; promotion going on.  Take advantage of it.  If you already signed up for 3, then just sign up for the 4th.  If you&#8217;ve signed up for 2, then pay for the third and register for the 4th too.</p>
<p>So much happening in just a short week.  But, it will be lot&#8217;s of fun and worth the 24 hour travel time from Cape Town.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=31F0_Zigeq4:kfeKpSyRt3E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=31F0_Zigeq4:kfeKpSyRt3E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=31F0_Zigeq4:kfeKpSyRt3E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=31F0_Zigeq4:kfeKpSyRt3E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=31F0_Zigeq4:kfeKpSyRt3E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=31F0_Zigeq4:kfeKpSyRt3E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=31F0_Zigeq4:kfeKpSyRt3E:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/events/are-you-coming-to-oopsla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/events/are-you-coming-to-oopsla/</feedburner:origLink></item>
		<item>
		<title>Driving through a red light can kill you</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/bXB1fsSJFAM/</link>
		<comments>http://aslamkhan.net/software-development/driving-through-a-red-light-can-kill-you/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 09:19:52 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=268</guid>
		<description><![CDATA[The other night I was driving home quite late from the airport.  For that hour, the roads are quiet and it&#8217;s a relaxing drive home that gives me a chance to think back on the the day&#8217;s events.  At a red traffic light, I stopped, but some idiot in the lane next to me rushed [...]]]></description>
			<content:encoded><![CDATA[<p>The other night I was driving home quite late from the airport.  For that hour, the roads are quiet and it&#8217;s a relaxing drive home that gives me a chance to think back on the the day&#8217;s events.  At a red traffic light, I stopped, but some idiot in the lane next to me rushed straight through.  You know what happened in the next 5 minutes.  Lots of honking, screeching tires and near crashes.  Fortunately, there were not accidents and nobody got hurt.</p>
<p>Really?</p>
<p>No!  Even though there wasn&#8217;t this big crash, someone did get a fright of their life, even I as an observer got a fright. And someone else did continue their journey quite shaken and certainly not in their same frame of mind.  The only person that seemed to be least affected was the person who jumped the red light.  But I am speculating, maybe he was under pressure and really needed to get to the end on time, and so he rushed ahead and saw in his rear view the potential destruction he left behind.  And maybe he regrets his decision.  But he certainly did not see how his actions affected the other people that were close by, myself included.</p>
<p>Driving through a red light can kill you and you can kill other people too.  The same thing happens when ignore the red light from your tests.  You can hurt yourself and you can hurt other people too.</p>
<p>Just think about that red light at the traffic light and in your code.  It&#8217;s telling you so much.</p>
<ul>
<li>It&#8217;s telling you to slow down a bit.</li>
<li>To look around.</li>
<li>To think about the moment.</li>
<li>Don&#8217;t focus on the end, you will get there in good time.</li>
<li>If you ignore the red light, other things will break and other people will get hurt.</li>
<li>Maybe you don&#8217;t know why you must stop, but you need to stop first, before you can find out why.</li>
<li>It&#8217;s telling you to do the right thing, not the rushed thing.</li>
</ul>
<p>Driving through a red light is another suicide pattern that I will add to my growing list.</p>
<p>And TDD is also part of ubuntu coding.  I am not telling you anything new.  I&#8217;m just telling you the same thing from another perspective.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bXB1fsSJFAM:dfmva7sY2c4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bXB1fsSJFAM:dfmva7sY2c4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bXB1fsSJFAM:dfmva7sY2c4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bXB1fsSJFAM:dfmva7sY2c4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bXB1fsSJFAM:dfmva7sY2c4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bXB1fsSJFAM:dfmva7sY2c4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bXB1fsSJFAM:dfmva7sY2c4:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/driving-through-a-red-light-can-kill-you/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/driving-through-a-red-light-can-kill-you/</feedburner:origLink></item>
		<item>
		<title>Younis and I are not related but …</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/8fN1R3AXu8Q/</link>
		<comments>http://aslamkhan.net/software-development/younis-and-i-are-not-related-but/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 09:11:10 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[coaching]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=265</guid>
		<description><![CDATA[The ICC Champions Trophy is on the go in South Africa at the moment (&#8230; I&#8217;m talking about cricket).  Yes, the Proteas failed in a big tournament (again!) but the Poms will be touring here this summer.  As passionate as Saffers are about their national teams, we also seek revenge, but in a nice way;  [...]]]></description>
			<content:encoded><![CDATA[<p>The ICC Champions Trophy is on the go in South Africa at the moment (&#8230; I&#8217;m talking about cricket).  Yes, the Proteas <a href="http://www.cricinfo.com/iccct2009/content/current/story/426918.html">failed</a> in a big tournament (again!) but the Poms will be touring here this summer.  As passionate as Saffers are about their national teams, we also seek revenge, but in a nice way;  I mean face-to-face revenge, not back-stabbing revenge <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>So with all this cricket frenzy going on, I caught an amazing <a href="http://www.cricinfo.com/magazine/content/story/425971.html">interview</a> with the captain of the Pakistan team, Younis Khan, on <a href="http://www.cricinfo.com/">cricinfo.com</a>.  For a person that lives in a country that is literally self-destructing, he views his purpose not just as a captain, but as citizen of a troubled country.  He views his influence on the team as lasting.  Like he says in the interview, when his time is up, he wants to leave with dignity and that which he leaves behind is more important than what he takes with him.</p>
<p>That is what I mean by <a href="http://aslamkhan.net/software-development/ubuntu-coding-for-your-friends/">Ubuntu coding</a>.  It&#8217;s more about what you leave behind than what you take with you.  When you leave behind a code base that someone else will enjoy, then you are already more than 50% down the path of helping yourself.  If you left behind a mess, then you breed more messy developers.  I&#8217;ve stopped asking <em>&#8220;What will I get out of this?&#8221;</em>.  I think more about <em>&#8220;What will you get out of this?&#8221;</em>.  That subtle switch in perspective is enough to make me realise that the value is in what I leave behind.  It also means that my search for quality and fulfillment is in the moment, not some future time which may never materialise.  Now, I stop chasing some future desire and appreciate the quality and importance of now, and realise that I what I leave behind is significant &#8211; good or bad.</p>
<p>There is also a comment from Younis about coaches.</p>
<blockquote><p>In the senior team there should be helpers who are also coaches, like Bob Woolmer was. He was a coach but he helped out with everything &#8211; in bowling, in life, in stretching, in luggage, in everything. This is not football, where you need to have that kind of coach. Here in cricket it is in individual game in a team game.</p></blockquote>
<p>This feels a lot like coaching software developers &#8230; individual game in a team game, and that experienced developers need nudges and guidance, and noobs need technical coaching.  And as a coach, you need to help out with everything too.  I recently realised that I don&#8217;t help out with many things.  Actually, I don&#8217;t want to either.  It&#8217;s not that I can&#8217;t help, but I just can&#8217;t multi-task and be effective at everything.  I am the kind of person who multi-tasks and delivers less than 100% quality on each task, but when I serialize my tasks, I hit 100% quality quite often.</p>
<p>So, here&#8217;s my take on coaching software teams.  It&#8217;s sometimes like cricket, and sometimes like football too.  You need many coaches.  Coaches that work with technical things, people things, process things, communication things, management things and all sorts of things.  I know that I suck when I try to do people and process coaching at the same time as technical coaching.  It&#8217;s the thing that <a href="http://www.scrumsense.com">Peter Hundermark</a> made abundantly clear to me over the last few weeks.  Now I know why he says that Scrum masters can&#8217;t be product owners, or can&#8217;t be part of the team, all at the same time.</p>
<p>That is also the reason why I can&#8217;t create miracles.  The people that have had greatness bestowed upon them; Mahatma Ghandi, Martin Luther King, Nelson Mandela, and many others; never created miracles but they allowed the people that they influenced create their own miracles.  Good software coaches are like that too.</p>
<p>So, Younis Khan and I are not related in blood, nor in career paths, but I have learned from an unlikely source with a very similar name.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=8fN1R3AXu8Q:nej2nArOKDk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=8fN1R3AXu8Q:nej2nArOKDk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=8fN1R3AXu8Q:nej2nArOKDk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=8fN1R3AXu8Q:nej2nArOKDk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=8fN1R3AXu8Q:nej2nArOKDk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=8fN1R3AXu8Q:nej2nArOKDk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=8fN1R3AXu8Q:nej2nArOKDk:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/younis-and-i-are-not-related-but/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/younis-and-i-are-not-related-but/</feedburner:origLink></item>
		<item>
		<title>Trust Everything</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/71rbpfxZlMo/</link>
		<comments>http://aslamkhan.net/general/trust-everything/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 22:39:42 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Conferences, Speaking Gigs, etc.]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[trust]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=263</guid>
		<description><![CDATA[Trust has popped up in so many of my conversations recently.  It came up at home, at a new school that Lia will be starting next term, in the DDD course that I gave earlier in the month, in Peter Hundermark&#8217;s scrum master certification course.  And I got a one line email that said this.
The [...]]]></description>
			<content:encoded><![CDATA[<p>Trust has popped up in so many of my conversations recently.  It came up at home, at a new school that Lia will be starting next term, in the <a href="http://www.factor10.com/courses/DDDfasttrack/about_this_course.html">DDD course</a> that I gave earlier in the month, in <a href="http://www.scrumsense.com">Peter Hundermark&#8217;s</a> scrum master certification course.  And I got a one line email that said this.</p>
<blockquote><p>The entire world lives on trust. Every aspect in life moves with trust.</p></blockquote>
<p>The more I think about situations in life that will prove this statement false, the more it seems to hold true.  Even in design it holds true.  Your most fundamental architectural decisions are based on trust and the implementations of that architecture work because of trust.</p>
<p>It&#8217;s true for code too.  If you don&#8217;t trust the code on which you build or depend, then you might as well write everything yourself, and give up your place on your team.</p>
<p>I was thinking about the AOP with DDD tutorial that I will be giving at <a href="http://www.oopsla.org/oopsla2009/program/tutorials/149-using-aop-with-ddd-to-create-rich-clean-domain-models">OOPSLA</a> this year, and this trust thing came up.  Here again, aspects and the classes into which they get woven, need a trust relationship.  It may seem like a stretch to make that statement, but I think it holds true again.</p>
<p>So, how do you gain trust?  I am not sure, but I think you have give up something first.  Maybe you need to show your vulnerability first, then it becomes easier to let someone into your space.  Then, perhaps, they will let you in to their space too.  When ego walls are erected, then trust finds it hard to grow.  By ego, I don&#8217;t mean arrogance, I mean awareness of your self that you hide from others for fear.  Perhaps, it is only when you show your true interface, that the other will worry less about hidden agendas.</p>
<p>In code, trust lies in interfaces and types, not in implementations.  It&#8217;s really about trusting the implementation that makes types worthy.  When you trust the type and send it a message and it behaves as expected, then you trust it.  If you request something of an abstract type and the message was received by an instance of a subclass, then you expect the subclass to behave like the abstract type.  You don&#8217;t hope that it does behave consistently, you trust that it does!</p>
<p>Trust is tied in with ubuntu too.  You can&#8217;t be part of a community nor allow yourself to be defined and shaped by the people around you, if you can&#8217;t trust them.  I think ubuntu coding needs trust as one of it&#8217;s values.  It&#8217;s already a value in XP, and Scrum, and families.  It needs to be in teams, and organisations, and communities and nations too.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=71rbpfxZlMo:Ws2Upom3A9g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=71rbpfxZlMo:Ws2Upom3A9g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=71rbpfxZlMo:Ws2Upom3A9g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=71rbpfxZlMo:Ws2Upom3A9g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=71rbpfxZlMo:Ws2Upom3A9g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=71rbpfxZlMo:Ws2Upom3A9g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=71rbpfxZlMo:Ws2Upom3A9g:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/general/trust-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/general/trust-everything/</feedburner:origLink></item>
		<item>
		<title>Scrum Day: Happy, Tired, Inspired</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/bSjLdtWd63w/</link>
		<comments>http://aslamkhan.net/events/scrum-day-happy-tired-inspired/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 21:37:12 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Conferences, Speaking Gigs, etc.]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=258</guid>
		<description><![CDATA[It was a privilege in itself to be invited to speak at Scrum Day but my expectations were blown out the water.  Knowing some of the people behind the scenes made me realise, again, what can be achieved when you put a bunch of talented people into a room with a common purpose.  Although, I [...]]]></description>
			<content:encoded><![CDATA[<p>It was a privilege in itself to be invited to speak at <a href="http://www.scrum.org.za/scrum-day-1-september-2009">Scrum Day</a> but my expectations were blown out the water.  Knowing some of the people behind the scenes made me realise, again, what can be achieved when you put a bunch of talented people into a room with a common purpose.  Although, I am pretty certain that these passionate people didn&#8217;t just share a common purpose &#8211; it meant <em>everything</em> to them.  And so, to all these wonderful people who gave up their time so we could learn a lot more, take a huge bow.  You deserve it! (PS: Can&#8217;t wait for next year!)  And if you&#8217;re looking for copies of the slides, then hop over to <a href="http://www.scrum.org.za/uncategorized/scrum-day-presentations">this page</a>.</p>
<p>A few personal observations about this event:</p>
<ul>
<li>smooth! very, very smooth!</li>
<li>Excellent speakers, excellent content, great questions.</li>
<li>Nice buzz.  Felt like there was something for everyone &#8211; from noobs to old war horses.</li>
<li>Adoption Challenges!  Seemed like this was a topic that came up in various guises during the day.</li>
<li>Sharing.</li>
<li>The magic wand / silver bullet was not in the building.</li>
<li>Professional event with a warm community feeling.</li>
</ul>
<p>And a small note on my presentation since I heard the comment &#8220;So what&#8217;s agile design got to do with Scrum?&#8221;.  Short answer: everything!  Absolutely everything.  If you&#8217;re using Scrum do build software, then agile design is the best feedback loop that you have.  The fact of the matter is that code does not lie yet it is the most ignored area in Scrum.</p>
<p>Well, I thought it was ignored until Jeff Sutherland, in his keynote, answered that Scrum hands off all agile engineering practices to Extreme Programming.</p>
<p>And read what others have tweeted about <a href="http://search.twitter.com/search?q=%23scrumdaysa">#scrumdaysa</a>!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bSjLdtWd63w:wg5OobvUWfg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bSjLdtWd63w:wg5OobvUWfg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bSjLdtWd63w:wg5OobvUWfg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bSjLdtWd63w:wg5OobvUWfg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bSjLdtWd63w:wg5OobvUWfg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=bSjLdtWd63w:wg5OobvUWfg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=bSjLdtWd63w:wg5OobvUWfg:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/events/scrum-day-happy-tired-inspired/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/events/scrum-day-happy-tired-inspired/</feedburner:origLink></item>
		<item>
		<title>Life Agile: Being a Father</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/0uvHBHAi-9Q/</link>
		<comments>http://aslamkhan.net/general/life-agile-being-a-father/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 07:58:27 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[fatherhood]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[zen]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=237</guid>
		<description><![CDATA[I often talk about fake agility &#8211; agility in process and not in your mind.  And I nauseatingly tell everyone that if you want to be agile, you must become agile in your life.  The one area that I&#8217;ve been struggling with for almost nine years is fatherhood.  I don&#8217;t think there is a tougher [...]]]></description>
			<content:encoded><![CDATA[<p><em>I often talk about fake agility &#8211; agility in process and not in your mind.  And I nauseatingly tell everyone that if you want to be agile, you must become agile in your life.  The one area that I&#8217;ve been struggling with for almost nine years is fatherhood.  I don&#8217;t think there is a tougher learning ground for agility than being a father (of course, Fiona will tell me that motherhood is a lot harder, and she&#8217;s most probably right).  But after just under nine years, I still feel like a beginner on the Dreyfuss scale.  I do look for signs and feedback and adapt to parenting situations on demand but the unpredictability of being a father is undeniably higher than any software project I&#8217;ve worked on.  The reason is simple: children are naturally agile.  They react to their environment instinctively, doing what makes sense to them.  In spite of being aware of agility, the theory, the principles and practices and being a practitioner for so long, I am convinced that agility in fatherhood is a significant step in life agility.</em></p>
<p><em>To help me progress beyond &#8220;Beginner&#8221;, I invited some friends to write a short piece on Agile Fatherhood.  Each one my guests has either just become a father for the first time or been &#8220;coaching&#8221; for a few years now.  I left the interpretation of the topic up to each person.  Personally, I think it makes for some fascinating reading.  And if you know these amazing geeks, you will learn a more personal side of them and understand them just a little bit more.</em></p>
<p><em>So here are some thoughts from friends much wiser than I and for whom I have an immense amount of respect.</em></p>
<p><strong><a href="http://www.claudioperrone.com/blog/"><img class="alignleft size-full wp-image-244" title="claudio" src="http://aslamkhan.net/wp-content/uploads/2009/08/claudio1.jpg" alt="claudio" width="73" height="73" />Claudio Perrone</a></strong> ( Oh man I hate you <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</p>
<p>Being only one month on my first baby boy I feel I&#8217;m not even chartered in the Dreyfus model, so I&#8217;m not sure I have much experience to share yet <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Being agile means to be able to quickly adapt to change, not simply react to it. Irene and I have struggled a lot. Then something happened. Instead of reacting with frustration to an ever screaming baby (I still call him the Anti Christ <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  I began to fully accept Matteo as an individual I needed to understand better. I &#8220;reprogrammed&#8221; my tone and attitude. I read a book on newborns. Apparently I have a &#8220;touchy baby&#8221; (aren&#8217;t they all?). So was I apparently. My mum told me that, exasperated, she once brought me to the doctor asking &#8220;what the hell is wrong with him???&#8221;<br />
Among other things, I took ownership of the kitchen (i had to) and bought a book to try many new recipes (I didn&#8217;t have to, but I was getting bored of my usual pasta).</p>
<p>Finally, in the last few days, I dropped my usual bottom-up GTD approach to productivity and went back to a top down approach. Mission, roles and goals, in other words (or &#8220;do the right things before doing them right&#8221;). It is still work in progress, but the sudden imbalance forced me to revisit my roles as family member, friend, self (to eat better, exercise, learn and refine my skills), my impact at work (ahah currently none), my contribuition in the community and, finally, how I can still relax and enjoy life. (if you are curious, I&#8217;m  experimenting with Life Balance for the iPhone &#8211; Omnifocus is suddenly sitting idle).</p>
<p>If you need only one sentence with an agile perspective:<br />
Embrace change and enjoy the ride. And since you can&#8217;t possibly be perfect, strive to achieve instead <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong><a href="http://niclasnilsson.se/"><img class="alignleft size-full wp-image-245" title="niclas-bw_bigger" src="http://aslamkhan.net/wp-content/uploads/2009/08/niclas-bw_bigger1.jpg" alt="niclas-bw_bigger" width="73" height="73" />Niclas Nilsson</a></strong> I tweeted this a little while ago, and a lot of people actually found it to be a useful analogy:</p>
<p>Raising a kid is like playing a platform game. First everything is new and a bit tricky, but then you get a hang of it. For a while, it&#8217;s actually quite smooth and you start to believe you&#8217;re pretty good at it. About that time, it turns out you have completed that level and you&#8217;re standing at the gates to the next level. But to get to the next level, you have to pass a monster&#8230;</p>
<p>If I&#8217;ll connect this to your question, what I mean is that everything seems to go in phases (iterations? at least increments), and that you&#8217;ll always get a new challenge (often in surprise) that you don&#8217;t know how to handle and you have to resort to your problem-solving agile mind to figure out what to do. Or rather, what to try first, since you have to try and try again until you find what works. If your lucky (or talented? or hard-working?), you&#8217;ll find a way that works and avoid screwing them up for life, but you&#8217;ll have to wait and see until they become teenagers to be sure. There&#8217;s no roll-back functionality in life. You can try compensating transactions, but you can never go back to the exact same state.</p>
<p><strong><a href="http://hermanlintvelt.blogspot.com/"><img class="alignleft size-full wp-image-241" title="Profile_HK" src="http://aslamkhan.net/wp-content/uploads/2009/08/Profile_HK.jpg" alt="Profile_HK" width="73" height="89" />Herman Lintvelt</a></strong> Wow! Selected from maybe millions of people&#8230; <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Communication; the importance thereof. That is probably one of the main ideas that I am extracting from the Agile approach. One of Agile&#8217;s core principles is to place people above processes. That implies that good communication is very important. Part of good communication is regular, positive feedback. So I&#8217;m trying to really make that part of my approach towards my two-year old boy. (His sister is only six weeks old now, so communication currently consists of making goo-goo sounds, or sometimes just googling at her). E.g, we are encouraging him to say &#8220;please&#8221; when asking for something, but recently realised that we are not using &#8220;please&#8221; when we ask him something. Now I try to lead by example and use &#8220;please&#8221; and &#8220;thank you&#8221; when talking to him as well.</p>
<p>I still have a lot of iterations ahead with them both, and I&#8217;m excited as well as a bit afraid of everything to come. There is a lot of different &#8220;formal&#8221; approaches and recipes one reads about for raising children, and I know I won&#8217;t be able to follow all of that advice, so I&#8217;m just staying agile and concentrating on people above processes.</p>
<p><strong><a href="http://www.hedgate.net"><img class="alignleft size-full wp-image-243" title="chris-face_bigger" src="http://aslamkhan.net/wp-content/uploads/2009/08/chris-face_bigger1.jpg" alt="chris-face_bigger" width="73" height="73" />Chris Hedgate</a></strong> I really like Niclas&#8217; analogy with platform games. I remember some games where you could move along quite smoothly through a level, save whenever you want and come back later to continue. But then, you go through a door, and you find yourself at the final stage of that level. You are not allowed to save at that stage, so you have to go through it in one try, or start over from that door. That reminds me of how it often feels with my 3-year old now. Sometimes I find myself in a situation that I either have to work through, which often requires lots of time and energy, or just let it go and come back to it later. I used to do this wrong I think, where I would try working it out but not have enough patience or time, and all of that work was lost. It&#8217;s the age old saying, &#8220;You can&#8217;t be efficient with people&#8221;. So I think that is one thing that connects work and fatherhood for me, always deciding if it is the right time to pursue some goal or try to make some change happen.</p>
<p>For me, the most important parts of agile is people-focus and constant learning. And I definitely bring both of those to fatherhood. Like Herman said, communication is really key. It is amazing what a 3-year old can tell you if you really ask, and understanding their reasoning will often show you that you are trying to &#8220;fix&#8221; something completely different from what the problem really is. And there&#8217;s where the patience and time comes in, you cannot rush this communication.</p>
<p>Regarding learning, I believe life is a long continuous learning experience. So therefore I encourage my son whenever he is interested in something. Right now he is into dinosaurs, so we talk a lot about dinosaurs, look at pictures and so on. He can name Tyrannosaurus, Brachiosaurus, Anchylosaurus, Stegosaurus, Triceratops, Pterodactyl and probably a few more from seeing them in a picture.</p>
<p>Regarding Claudio&#8217;s comment about retrospectives, I think even if you do not have formal retrospectives it is a great idea for both mother and father to observe and discuss each other&#8217;s behavior. It is much easier to see or hear things from an observer point. Also, we often find that if one of us do not have patience to continue through a situation, the other one can step in and resolve it.</p>
<p>Finally, to round off a rather long mail, I have to tell a story describing a recent situation. My son has a party whistle, the ones that make a whistle sound and roll themselves out, that he loves to blow. The problem is that my dog can&#8217;t stand the sound and tries to bite the whistle, often resulting in pushing my son to the ground and he gets upset.  So, I see him grabbing the whistle with her (the dog) standing right beside. I could have said &#8220;Do not blow the whistle here&#8221;, but I know how well that would have worked. Instead I asked him what happens when he blows it, and he said that the dog gets angry.  &#8220;Then what happens&#8221;, I asked, and he answered that she jumps up and pushes him. So I asked how he likes that, and he said that he gets upset and starts to cry. I asked if he wanted that, and he said no.  So finally I ask &#8220;What do you want to do then?&#8221;, and he says &#8220;I&#8217;ll go upstairs and blow it&#8221;, and goes directly up without blowing it on the way.</p>
<blockquote><p><em>Has this helped me?  Yes and no.  Yes, because the analogies and lessons are extremely insightful and valuable. No, because they didn&#8217;t have a magic wand cure.  But that&#8217;s exactly the point.  There is no magic, just learning and adjusting all the time.  Like I always say: &#8220;You need to let it take over your life.&#8221;.  When you do, then everything becomes simpler.  Like making that 1px adjustment on the last level of that game or just blowing your whistle where the dog can&#8217;t get to you.</em></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=0uvHBHAi-9Q:zvtLMXU0B28:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=0uvHBHAi-9Q:zvtLMXU0B28:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=0uvHBHAi-9Q:zvtLMXU0B28:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=0uvHBHAi-9Q:zvtLMXU0B28:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=0uvHBHAi-9Q:zvtLMXU0B28:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=0uvHBHAi-9Q:zvtLMXU0B28:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=0uvHBHAi-9Q:zvtLMXU0B28:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/general/life-agile-being-a-father/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/general/life-agile-being-a-father/</feedburner:origLink></item>
		<item>
		<title>Fat is the new Thin</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/CMNAhFgqlzU/</link>
		<comments>http://aslamkhan.net/software-development/fat-is-the-new-thin/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 22:19:11 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=234</guid>
		<description><![CDATA[During a factor10 virtual coffee break, Niclas Nilsson and I had a chat about what&#8217;s going on in web app land, on the browser end of the landscape. So this is inspired by his observations and him &#8216;pushing&#8217; me to write this.
Recently, I&#8217;ve seen a few people searching for the holy grail of the ubiquitous [...]]]></description>
			<content:encoded><![CDATA[<p>During a <a href="http://www.factor10.com">factor10</a> virtual coffee break, <a href="http://niclasnilsson.se/">Niclas Nilsson</a> and I had a chat about what&#8217;s going on in web app land, on the browser end of the landscape. So this is inspired by his observations and him &#8216;pushing&#8217; me to write this.</p>
<p>Recently, I&#8217;ve seen a few people searching for the holy grail of the ubiquitous browser UI.  The usual suspects appear: Silverlight, Flex, JavaFX.  Then I always suggest &#8220;What&#8217;s wrong with HTML, CSS and JavaScript.  You are writing a browser app, aren&#8217;t you?&#8221;.  And I get this weird, one raised eyebrow look.  So, in response to the one-raised-eyebrow look, here&#8217;s what I have observed. (I use the word <em>model</em> and <em>fat</em> below, maybe it&#8217;s the wrong usage, but I think you&#8217;ll get the gist.)</p>
<p>In the early days of browser apps, everyone was trying to write fat desktop apps in HTML.  And that went horribly wrong because the programming model was different.  We eventually figured out page based, disconnected apps in the browser, then someone did the AJAX thing and we had out-of-bound HTTP requests and in-place DOM updates.  Another small twist in the programming model.  But we had already made the transition to a new programming model and AJAX was not a radical change.</p>
<p>Now we have Silverlight, Flex/Air and others.  They happen to run in a browser, but there&#8217;s nothing browser based about them.  Yes, they all let you interact with the DOM and run some JavaScript too.  But these apps might as well not be in a browser.  In fact, that&#8217;s now pitched as a super great feature: your code can run inside and outside the browser.  The programming model is different.  No matter what the marketing folk say, I think the in-browser <em>feature</em> is a clever adoption scheme.</p>
<p>The truth is that this new thin is actually fat, FAT, <strong>FAT</strong>!  It&#8217;s just fat and disconnected.  That is all.  My advice for those that want to go this pseudo-thin route, is to just write your app to run outside the browser.  Just forget about the browser.  If you want to use the browser, then go back to HTML and JavaScript. The common counter statement is that these clients get rid of browser incompatibility issues.  If you really want to get rid of browser incompatibility issues, then don&#8217;t use a browser.  Simple.  And these confused thin clients will let you do that.</p>
<p>But the part that really scares me is that the fat code I have seen so far reminds me of unmaintainable VB, Delphi or PowerBuilder code.  And there are other scary things too.  For example, the Cairngorm framework for Flex is based on a singleton pattern, but the underlying language does not make it easy to create singletons.  Imagine all the code to create a singleton just to get the framework to work.  And these frameworks are not very DRY either.  Somehow, it seems like a new group of developers are writing these frameworks and they have not bothered to learn from 10+ years of web UI framework lessons.  The good news is that code maintenance and framework quality issues are solvable.</p>
<p>But the game itself has changed.  It&#8217;s not a case of new rules in an old game.  That&#8217;s what caused the mess in 1999 with HTML.</p>
<p>By this time, most people either close their eyes or raise the other eyebrow at me.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=CMNAhFgqlzU:uThlF4sq-MI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=CMNAhFgqlzU:uThlF4sq-MI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=CMNAhFgqlzU:uThlF4sq-MI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=CMNAhFgqlzU:uThlF4sq-MI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=CMNAhFgqlzU:uThlF4sq-MI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=CMNAhFgqlzU:uThlF4sq-MI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=CMNAhFgqlzU:uThlF4sq-MI:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/fat-is-the-new-thin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/fat-is-the-new-thin/</feedburner:origLink></item>
		<item>
		<title>Your ESB is going to kill you</title>
		<link>http://feedproxy.google.com/~r/f3yourmind/~3/qOXnMZPXOug/</link>
		<comments>http://aslamkhan.net/software-development/your-esb-is-going-to-kill-you/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 20:15:20 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=224</guid>
		<description><![CDATA[Recently I wrote about the fruitless plight of a schizophrenic service.  Now, I think that some of that schizophrenia exists in the ESB too (or is it rubbing off onto the ESB?).  I&#8217;ve always felt that the ESB was just another pattern that showed how to isolate things and deal with routing and transformations.  The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I wrote about the fruitless plight of a <a href="http://aslamkhan.net/software-development/launching-the-services-support-group/">schizophrenic service</a>.  Now, I think that some of that schizophrenia exists in the ESB too (or is it rubbing off onto the ESB?).  I&#8217;ve always felt that the ESB was just another pattern that showed how to isolate things and deal with routing and transformations.  The most common implementation was a messaging gadget with some pluggable framework of sorts for the transformations, and some configurable framework for routing.</p>
<p>With such isolation of parts, it was convenient to not worry about what happened elsewhere when something was thrown to this gadget for processing.  And we started wondering about scalability things and decided that asynchronous was the way to go &#8230; disconnected, stateless, etc, all good, well-intentioned things and useful things.</p>
<p>Then the pattern became a product.  And on top of this product we had more products like business process orchestrators or workflow managers.  And below this product we had applications and databases and ftp locations and all sorts of things that catered for every imaginable protocol.  And around all of this we had some enterprise-ish sort of management thing to keep on eye on everything that was happening inside this very busy product.</p>
<p>Then, services moved from applications to the ESB product.  After all, it&#8217;s a <em>service</em> and that&#8217;s an enterprise <em>service</em> bus, right?  And when the services where moved over to their new home, all the dependencies had to come along too.  And then we started arguing about getting granularity right in the ESB.  I used to just think that the ESB had a proxy of sorts to the service that still was at the application.  Maybe I got it all wrong.</p>
<p>Now this ESB is starting to feel like an Application Server with a messaging gadget, workflow gadget, transformers, routers, protocol handlers.  And some ESB&#8217;s have a web server too, since they have browser based management consoles.</p>
<p>Some people also like the idea of a rules engine for their complex domain rules and embedded those in their applications.  Hold on, those content based routers in the ESB also used a rules engine.  Ok, let&#8217;s move our rules over to the ESB too.  Cool, my ESB is also a rules engine.</p>
<p>Now, I see people writing the most hellish XML that is meant to do everything from configure routing, define transformations, execute code, persist messages, fire off sets of rules and more.  It reminds me so much of those weird and wonderful stored procedures and cascading triggers that we wrote.  The other day I got a laugh out of a friend when I told him that ESB&#8217;s are now DB servers and everyone writes sprocs in XML.</p>
<p>And we tried to do everything in the database server &#8211; rules, custom types, defaults, constraints, sprocs, triggers, batch jobs &#8230; even jump into a shell and execute something else.  It did not work out very well then.</p>
<p>If I was an ESB, I&#8217;d be very confused.  I started life as a pattern with a reasonable implementation using messaging and transformation and routing.  Now all of this.  In fact, I&#8217;d be more stressed than confused.</p>
<p>Then again, maybe the ESB is not confused, and maybe the people that use the ESB that are confused.  In fact, if I was one of those people, I&#8217;d be stressed too.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/f3yourmind?a=qOXnMZPXOug:JIet_6z-TmA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/f3yourmind?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=qOXnMZPXOug:JIet_6z-TmA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=qOXnMZPXOug:JIet_6z-TmA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=qOXnMZPXOug:JIet_6z-TmA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=qOXnMZPXOug:JIet_6z-TmA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/f3yourmind?a=qOXnMZPXOug:JIet_6z-TmA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/f3yourmind?i=qOXnMZPXOug:JIet_6z-TmA:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/your-esb-is-going-to-kill-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://aslamkhan.net/software-development/your-esb-is-going-to-kill-you/</feedburner:origLink></item>
	</channel>
</rss>
