<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Advanced Codemunging: A Report from the Trenches</title>
	<atom:link href="http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/feed/" rel="self" type="application/rss+xml" />
	<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/</link>
	<description>(notes from an average programmer studying the hard stuff)</description>
	<lastBuildDate>Thu, 21 May 2009 01:17:58 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: DBlanchard</title>
		<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/#comment-2252</link>
		<dc:creator>DBlanchard</dc:creator>
		<pubDate>Tue, 30 Sep 2008 23:07:16 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=118#comment-2252</guid>
		<description>@Lispy:
Great post. I just discovered your blog and will dig into it tonight when I get off work. Looks like some great gems here.

@Mark:
I worry about the same &quot;when you leave&quot; problem at my job. I work pretty independently in a variety of languages on a variety of projects. I love the freedom and flexibility this gives me, but it also scares me. I can&#039;t expect anyone else to pick up all the work I currently have when I leave. I can tell you though, that coding for the lowest common denominator is not the answer. 

Code well and demonstrably expect others to code well. Simply expecting more of people won&#039;t get results. They need to know you expect greatness, and to see that you are willing to work with them to do it.

Seeing how things have been left here after others&#039; departures, I now only expect that certain people will pick up certain parts of my workload and code base upon my departure. I also have come to accept that someone refactoring my code or even rewriting my apps isn&#039;t bad. It isn&#039;t my ideal, but hopefully they&#039;ll improve my algorithms if not my code, learn something from my code, or at least wait till requirements have changed to start in on it. It is good for them to have my model of how something can be done, but my way isn&#039;t the only good and reasonable way. As long as their way still produces solid code that meets requirements, it doesn&#039;t really matter to me.

By my guess, I&#039;m still many years away from leaving, but I&#039;ve already started making premature, but conscientious decisions about who I would pick to take on which of my projects and have started using them individually as my resources for bouncing ideas off of and after I make a design decision, I let them know, usually in an e-mail what I chose and why. In addition to my regular documentation, which I often create from these e-mails, he or she now has a linear chain of reasoning on the design decisions for the project that I would hand them if I needed to. If they leave before I do, I still have that same chain and can bulk forward it to someone else, or just bundle it into the regular docs as an added resource.

I&#039;ve also started a lunch group where once a week someone presents a new skill or paradigm they&#039;ve learned in the recent past. This has varied from lesser-known keyboard shortcuts, to AHK scripting demos, to better ways to talk to people (&quot;Hey, are you OK today?&quot; is very pragmatically different from &quot;What&#039;s wrong with you today?&quot; even though they&#039;re semantically very close). 

Aside from the obvious benefits of learning new things and networking, this lets me see who else is interested in learning for the sake of learning and what their interests are. These are the people I would want to pick up the more interesting and challenging things that I leave behind. They also turn out to be really cool people to eat lunch with.

@~</description>
		<content:encoded><![CDATA[<p>@Lispy:<br />
Great post. I just discovered your blog and will dig into it tonight when I get off work. Looks like some great gems here.</p>
<p>@Mark:<br />
I worry about the same &#8220;when you leave&#8221; problem at my job. I work pretty independently in a variety of languages on a variety of projects. I love the freedom and flexibility this gives me, but it also scares me. I can&#8217;t expect anyone else to pick up all the work I currently have when I leave. I can tell you though, that coding for the lowest common denominator is not the answer. </p>
<p>Code well and demonstrably expect others to code well. Simply expecting more of people won&#8217;t get results. They need to know you expect greatness, and to see that you are willing to work with them to do it.</p>
<p>Seeing how things have been left here after others&#8217; departures, I now only expect that certain people will pick up certain parts of my workload and code base upon my departure. I also have come to accept that someone refactoring my code or even rewriting my apps isn&#8217;t bad. It isn&#8217;t my ideal, but hopefully they&#8217;ll improve my algorithms if not my code, learn something from my code, or at least wait till requirements have changed to start in on it. It is good for them to have my model of how something can be done, but my way isn&#8217;t the only good and reasonable way. As long as their way still produces solid code that meets requirements, it doesn&#8217;t really matter to me.</p>
<p>By my guess, I&#8217;m still many years away from leaving, but I&#8217;ve already started making premature, but conscientious decisions about who I would pick to take on which of my projects and have started using them individually as my resources for bouncing ideas off of and after I make a design decision, I let them know, usually in an e-mail what I chose and why. In addition to my regular documentation, which I often create from these e-mails, he or she now has a linear chain of reasoning on the design decisions for the project that I would hand them if I needed to. If they leave before I do, I still have that same chain and can bulk forward it to someone else, or just bundle it into the regular docs as an added resource.</p>
<p>I&#8217;ve also started a lunch group where once a week someone presents a new skill or paradigm they&#8217;ve learned in the recent past. This has varied from lesser-known keyboard shortcuts, to AHK scripting demos, to better ways to talk to people (&#8220;Hey, are you OK today?&#8221; is very pragmatically different from &#8220;What&#8217;s wrong with you today?&#8221; even though they&#8217;re semantically very close). </p>
<p>Aside from the obvious benefits of learning new things and networking, this lets me see who else is interested in learning for the sake of learning and what their interests are. These are the people I would want to pick up the more interesting and challenging things that I leave behind. They also turn out to be really cool people to eat lunch with.</p>
<p>@~</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/#comment-1850</link>
		<dc:creator>Mark Miller</dc:creator>
		<pubDate>Fri, 16 May 2008 23:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=118#comment-1850</guid>
		<description>I enjoyed this post. You&#039;re a testament to the idea that it can be done. It gives me something to shoot for. While the tagline on my blog doesn&#039;t say it directly, I thought yours summed up my motivation pretty well: An average developer trying to do the hard stuff. I guess what Giles is saying is even the programmers we regard as geniuses now started out where you were. Maybe they just got the same realizations you did faster, but they went through the same process.

What you&#039;ve described of your journey reminded of something Alan Kay said in &quot;The Early History of Smalltalk&quot;, a paper he wrote years ago:

&quot;A twentieth century problem is that technology has become too &#039;easy&#039;. When it was hard to do anything whether good or bad, enough time was taken so that the result was usually good. Now we can make things almost trivially, especially in software, but most of the designs are trivial as well. This is inverse vandalism: the making of things because you can. Couple this to even less sophisticated buyers and you have generated an exploitation marketplace similar to that set up for teenagers. A counter to this is to generate enormous disatisfaction with one&#039;s designs using the entire history of human art as a standard and goal. Then the trick is to decouple the disatisfaction from self worth--otherwise it is either too depressing or one stops too soon with trivial results.&quot;

I have a couple questions.

It sounds like you found a company that was willing to throw away the legacy stuff and start fresh. How did you convince them that you were the one to help them do that? I would imagine with a resume that only had prior work on typical database apps. that you wouldn&#039;t come across very convincingly. Did they have someone who was perceptive interviewing you who could see that despite no prior experience with doing this on your part that, &quot;The Force is strong with this one&quot;?

You talk about being &quot;the lone developer&quot;. I&#039;ve explored a corrollary of this idea: What if you leave? Who will carry on the work you started? I think you have the right idea about what you&#039;re doing. It sounds like you have advanced the &quot;state of the art&quot; for the company you work for, and that&#039;s definitely a good thing IMO.

I had a conversation with a friend of mine last year kind of along these lines. He thought the whole exercise of learning more advanced computing through software was futile, because while I may be smart and able to get this stuff, 98% of the programmers out there are totally unaware of what any of this stuff means (commonly referred to as &quot;code monkeys&quot;). He said that &quot;when you leave--and you WILL leave,&quot; they&#039;re not going to understand a wit of what you wrote, and they&#039;re going to just scrap it and use typical run-of-the-mill solutions instead, because that&#039;s what they understand. My question about this is how do you leave a legacy behind so that &quot;when you leave&quot; there will be people to replace you who will continue the work you started? That&#039;s a big question I have, and I think it&#039;s critical for strategies like yours to succeed. I wish you much success! :)</description>
		<content:encoded><![CDATA[<p>I enjoyed this post. You&#8217;re a testament to the idea that it can be done. It gives me something to shoot for. While the tagline on my blog doesn&#8217;t say it directly, I thought yours summed up my motivation pretty well: An average developer trying to do the hard stuff. I guess what Giles is saying is even the programmers we regard as geniuses now started out where you were. Maybe they just got the same realizations you did faster, but they went through the same process.</p>
<p>What you&#8217;ve described of your journey reminded of something Alan Kay said in &#8220;The Early History of Smalltalk&#8221;, a paper he wrote years ago:</p>
<p>&#8220;A twentieth century problem is that technology has become too &#8216;easy&#8217;. When it was hard to do anything whether good or bad, enough time was taken so that the result was usually good. Now we can make things almost trivially, especially in software, but most of the designs are trivial as well. This is inverse vandalism: the making of things because you can. Couple this to even less sophisticated buyers and you have generated an exploitation marketplace similar to that set up for teenagers. A counter to this is to generate enormous disatisfaction with one&#8217;s designs using the entire history of human art as a standard and goal. Then the trick is to decouple the disatisfaction from self worth&#8211;otherwise it is either too depressing or one stops too soon with trivial results.&#8221;</p>
<p>I have a couple questions.</p>
<p>It sounds like you found a company that was willing to throw away the legacy stuff and start fresh. How did you convince them that you were the one to help them do that? I would imagine with a resume that only had prior work on typical database apps. that you wouldn&#8217;t come across very convincingly. Did they have someone who was perceptive interviewing you who could see that despite no prior experience with doing this on your part that, &#8220;The Force is strong with this one&#8221;?</p>
<p>You talk about being &#8220;the lone developer&#8221;. I&#8217;ve explored a corrollary of this idea: What if you leave? Who will carry on the work you started? I think you have the right idea about what you&#8217;re doing. It sounds like you have advanced the &#8220;state of the art&#8221; for the company you work for, and that&#8217;s definitely a good thing IMO.</p>
<p>I had a conversation with a friend of mine last year kind of along these lines. He thought the whole exercise of learning more advanced computing through software was futile, because while I may be smart and able to get this stuff, 98% of the programmers out there are totally unaware of what any of this stuff means (commonly referred to as &#8220;code monkeys&#8221;). He said that &#8220;when you leave&#8211;and you WILL leave,&#8221; they&#8217;re not going to understand a wit of what you wrote, and they&#8217;re going to just scrap it and use typical run-of-the-mill solutions instead, because that&#8217;s what they understand. My question about this is how do you leave a legacy behind so that &#8220;when you leave&#8221; there will be people to replace you who will continue the work you started? That&#8217;s a big question I have, and I think it&#8217;s critical for strategies like yours to succeed. I wish you much success! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2008-05-14 &#171; that dismal science</title>
		<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/#comment-1847</link>
		<dc:creator>links for 2008-05-14 &#171; that dismal science</dc:creator>
		<pubDate>Wed, 14 May 2008 15:42:08 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=118#comment-1847</guid>
		<description>[...] Advanced Codemunging: A Report from the Trenches « Learning Lisp (tags: emacs greenspun lisp programming sicp toread learning norvig) [...]</description>
		<content:encoded><![CDATA[<p>[...] Advanced Codemunging: A Report from the Trenches « Learning Lisp (tags: emacs greenspun lisp programming sicp toread learning norvig) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: giles bowkett</title>
		<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/#comment-1844</link>
		<dc:creator>giles bowkett</dc:creator>
		<pubDate>Wed, 14 May 2008 13:28:35 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=118#comment-1844</guid>
		<description>_You see a lot out there about those supposedly super-duper type programmers that are worth ten times as much as their lesser colleagues. While I will not claim to be one of those guys_

You ridiculous monkey. Of *course* you&#039;re one of those guys. The tagline of your blog:

_(notes from an average programmer studying the hard stuff)_

No surer sign than that of the presence of &quot;one of those guys.&quot; (Or girls.) There&#039;s no such thing as programming geniuses. We&#039;re all average programmers, and some of us work on the easy stuff, and some of us work on the hard stuff. Keep working on the hard stuff long enough, and people will go &quot;wow, you&#039;re a programming genius.&quot; Because they think programming geniuses exist in the first place. The whole point of the idea of a programming genius is that it&#039;s an excuse not to work on the hard stuff. There&#039;s really *no such thing*.

You&#039;ll see it happen in a couple years, and you&#039;ll go, &quot;Wow. Hunh.&quot;</description>
		<content:encoded><![CDATA[<p>_You see a lot out there about those supposedly super-duper type programmers that are worth ten times as much as their lesser colleagues. While I will not claim to be one of those guys_</p>
<p>You ridiculous monkey. Of *course* you&#8217;re one of those guys. The tagline of your blog:</p>
<p>_(notes from an average programmer studying the hard stuff)_</p>
<p>No surer sign than that of the presence of &#8220;one of those guys.&#8221; (Or girls.) There&#8217;s no such thing as programming geniuses. We&#8217;re all average programmers, and some of us work on the easy stuff, and some of us work on the hard stuff. Keep working on the hard stuff long enough, and people will go &#8220;wow, you&#8217;re a programming genius.&#8221; Because they think programming geniuses exist in the first place. The whole point of the idea of a programming genius is that it&#8217;s an excuse not to work on the hard stuff. There&#8217;s really *no such thing*.</p>
<p>You&#8217;ll see it happen in a couple years, and you&#8217;ll go, &#8220;Wow. Hunh.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kib2</title>
		<link>http://lispy.wordpress.com/2008/05/13/advanced-codemunging-a-report-from-the-trenches/#comment-1837</link>
		<dc:creator>kib2</dc:creator>
		<pubDate>Tue, 13 May 2008 20:14:29 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=118#comment-1837</guid>
		<description>Thanks for all these posts about the way you&#039;ve learned Lisp, I had to do it myself and I think they may help a lot.

See you.</description>
		<content:encoded><![CDATA[<p>Thanks for all these posts about the way you&#8217;ve learned Lisp, I had to do it myself and I think they may help a lot.</p>
<p>See you.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
