<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>big-oh notation - Tan Quach &#187; Craftsmanship</title>
	<atom:link href="http://www.tanquach.com/blog/category/craft/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tanquach.com/blog</link>
	<description>The secret to happiness is low expectations.</description>
	<lastBuildDate>Wed, 03 Feb 2010 22:57:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Creativity in Software</title>
		<link>http://www.tanquach.com/blog/2009/04/09/creativity-in-software/</link>
		<comments>http://www.tanquach.com/blog/2009/04/09/creativity-in-software/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 15:54:45 +0000</pubDate>
		<dc:creator>tan</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Leadership]]></category>

		<guid isPermaLink="false">http://www.tanquach.com/blog/?p=66</guid>
		<description><![CDATA[
&#8220;Great software, likewise, requires a fanatical devotion to beauty. If you look inside good software, you find that parts no one is ever supposed to see are beautiful too.&#8221; &#8211; Paul Graham, Hackers and Painters

I am often brought back to this essay by Paul Graham. He often grounds us in our pursuit of perfect software [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="padding-left: 30px;">&#8220;Great software, likewise, requires a fanatical devotion to beauty. If you look inside good software, you find that parts no one is ever supposed to see are beautiful too.&#8221; &#8211; Paul Graham, <a title="Hackers and Painters" href="http://www.paulgraham.com/hp.html" target="_blank">Hackers and Painters</a></p>
</blockquote>
<p>I am often brought back to this essay by Paul Graham. He often grounds us in our pursuit of perfect software by putting in perspective the nature of our work. We may not be as artistic as our tradesmen counterparts, but if we strive for a more balanced reform between technical work and artistry, we can deliver high quality and more original work, leading to innovation and greater aspirations.</p>
<p>Creativity is key in software development as much as it is in any other profession.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanquach.com/blog/2009/04/09/creativity-in-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Would Jesus Do?</title>
		<link>http://www.tanquach.com/blog/2008/05/09/agile-requirements-engineering/</link>
		<comments>http://www.tanquach.com/blog/2008/05/09/agile-requirements-engineering/#comments</comments>
		<pubDate>Fri, 09 May 2008 14:49:37 +0000</pubDate>
		<dc:creator>tan</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://big-oh.tantastik.org/?p=10</guid>
		<description><![CDATA[I&#8217;ve always had a penchant for all things miraculous: God speaking to me through a homeless person, large structures randomly falling out of the sky, estimating a development effort accurately 8-months in advance. I&#8217;ve recently been tasked with the last one, given that we are subscribing to a SDLC that is slowly falling down a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had a penchant for all things miraculous: God speaking to me through a homeless person, large structures randomly falling out of the sky, estimating a development effort accurately 8-months in advance. I&#8217;ve recently been tasked with the last one, given that we are subscribing to a SDLC that is slowly falling down a giant waterfall. We&#8217;re currently in Week 13 of requirements gathering.</p>
<p>The field of software engineering has evolved through years of theoretical research. Computer Scientists have come up with great ideas that should work in theory, but are seldom applicable in real world situations. I have learned more about software development out in the field than university could ever have prepared me for. Most of the things I did learn in university, I would need to look up on the Internet anyway, say if the rare occasion ever arose that I would need to know how hash maps are implemented using Red-Black Trees (I only apply at Google once ever 18 months).</p>
<p>Software is an immature discipline and software itself rarely lasts much longer than 4-5 years before it becomes legacy. As such, it becomes increasingly hard to predict, as complexity increases. Only thirty years ago, computers were the size of refrigerators and Irene, the 70 year old grandmother you see today coding in COBOL while staring at a 50lb CRT monitor running at 640&#215;480, was in the prime of her life. And in fact, there&#8217;s an army of Irenes who don&#8217;t like it when you show up in Lacoste shoes, and tight pants. Sometimes I wear pin-striped dress pants with a checkered shirt and that completely throws her off.</p>
<p>Irene probably went to a very good school where they taught her everything to know about documentation and software specification. In fact, she probably received accolades for her work in the field of  requirements engineering. But now, the business&#8217; needs have changed drastically, as have the times, and that mainframe system backed by a flat file-based database, can&#8217;t support what the business needs to do.</p>
<p>Large corporations reinvent themselves all the time to accommodate climate changes in the economy, business direction changes and continually respond to the market&#8217;s whims. There is no reason software development shouldn&#8217;t be any different. Software processes need to be adaptive to these changes just as much as individuals do. Clinging onto traditional methods that are known to be heavyweight and slow will only demean what we do as professionals and continue to lose the trust and confidence of our customers. Arguably, some of the time, developers are happy to engage in lightweight processes, but its the archaic bastions of old-school software engineering who claim authority over this subject matter, that refuse to allow it.</p>
<p>Agile development is so radically different than most of what they&#8217;ve been teaching in school that traditionalists are worried that they will need to adjust their thinking. Meanwhile, there are those of us who have been dying, waiting for something like this to come along and revitalize our craft. In time, agile processes will mature and evolve, and things like distributed agile development will come into focus. In time, agile processes will become obsolete and perhaps a successor will emerge as a better way to build software and provide business value. Those are the things we should look forward to and embrace, rather than reject and undermine.</p>
<p>How do television evangelists do it? Day after day, they convince millions of Americans to follow them and give them money, and yet I can&#8217;t convince one person in this organisation to adopt a lean software development methodology. Perhaps, I&#8217;d have better luck converting them to mormonism. But that&#8217;d be too easy. Given the option of marrying multiple 16-year olds, I&#8217;m sure they&#8217;d choose that over <a href="http://en.wikipedia.org/wiki/Lent">lent</a> any day. I&#8217;d be happy with just one.</p>
<p>Christians need to work on their marketing. The best that Christians have come up with in the last 100 years is a fish. Lame! I recently saw a bumper sticker that said, &#8220;Try Jesus&#8221; as though Jesus was a spicy Mexican dish that you&#8217;d never seen or heard of before advertised on a giant poster on the side of a dingy roadside restaurant that read, <em>&#8220;Try our new Mole con Pollo!&#8221;</em> And frankly, I don&#8217;t doubt that Jesus loves <em>mole con pollo.</em></p>
<p><em>References:</em></p>
<p><sup>1</sup><a href="http://www.agilemodeling.com/essays/agileRequirementsBestPractices.htm">Agile Requirements Best Practices</a> Ambler, Scott<br />
<sup>2</sup><a href="http://www2.enel.ucalgary.ca/People/eberlein/publications/TCRE-AE_JL1.pdf">Agile Requirements Definition: A View from Requirements Engineering</a> Eberlein, Armin, et al.<br />
<sup>3</sup><a href="http://www.extranews.net/news.php?nid=2271">Mole con Pollo!</a> Mexicans everywhere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanquach.com/blog/2008/05/09/agile-requirements-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding Standards</title>
		<link>http://www.tanquach.com/blog/2008/02/27/coding-standards/</link>
		<comments>http://www.tanquach.com/blog/2008/02/27/coding-standards/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 06:45:53 +0000</pubDate>
		<dc:creator>tan</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://big-oh.tantastik.org/?p=4</guid>
		<description><![CDATA[Bob Martin has written a lucid article on his idea of what Coding Standards should be. I agree with most of his points, especially his ideas on the value of pair-programming with the team lead:
 Nothing is quite as persuasive to a young programmer than pairing with the lead programmer and hearing him say: “We [...]]]></description>
			<content:encoded><![CDATA[<p>Bob Martin has written a lucid article on his idea of what <a href="http://blog.objectmentor.com/articles/2007/04/18/coding-standards">Coding Standards</a> should be. I agree with most of his points, especially his ideas on the value of pair-programming with the team lead:<br />
<blockquote> Nothing is quite as persuasive to a young programmer than pairing with the lead programmer and hearing him say: “We don’t do things that way; we do things <strong>this</strong> way.”</p></blockquote>
<p>With our new eComm team, I have set aside 1-2 hours each iteration to sit with each developer and pair-program with them. I drive for half-an-hour, and then they drive for half-an-hour. Coupled with empathy and tact, the hard-nosed coder will relent to doing things The Right Way™; for the greater good, and the greatness of the team.Once the team gets enough experience, I hope to have them start pair-programming with each other. When new recruits join the team, they spend some time pair-programming with the Team Lead. When they get comfortable, they pair-up with other members of the team occasionally.Achieving a level of consistency and fluidity to the code, brings out a certain enjoyment and pride for development. Though I understand the plight of the team lead in which there is rarely time to catch up on work, let alone spend time reviewing code, or even sitting down and pairing with them, I sincerely believe it only takes 1-2 hrs to reap years of benefit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tanquach.com/blog/2008/02/27/coding-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
