<?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>Preston Lee&#039;s Blog &#187; development</title>
	<atom:link href="http://www.prestonlee.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.prestonlee.com</link>
	<description>Technologist, businessman and entrepreneur.</description>
	<lastBuildDate>Fri, 23 Jul 2010 23:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Offering Developers Startup Equity, A Dialog</title>
		<link>http://www.prestonlee.com/2009/02/11/offering-developers-startup-equity-a-dialog/</link>
		<comments>http://www.prestonlee.com/2009/02/11/offering-developers-startup-equity-a-dialog/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 05:40:42 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[equity]]></category>
		<category><![CDATA[openrain]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=554</guid>
		<description><![CDATA[I have this conversation about once a month, generally by a well-intentioned dreamer new to the software space who doesn&#8217;t understand why OpenRain can&#8217;t accept projects for equity. I may be exaggerating slightly, but it sure feels this way&#8230;  :)   Preston: Hi Bill, nice to meet you. How can OpenRain help you develop your online [...]]]></description>
			<content:encoded><![CDATA[<p><em>I have this conversation about once a month, generally by a well-intentioned dreamer new to the software space who doesn&#8217;t understand why <a href="http://www.openrain.com">OpenRain</a> can&#8217;t accept projects for equity.</em><em> I may be exaggerating slightly, but it sure </em><strong><em>feels</em></strong><em> this way&#8230;  :)</em></p>
<p> </p>
<p><strong>Preston</strong>: Hi Bill, nice to meet you. How can OpenRain help you develop your online venture?</p>
<p><strong>Bill</strong>: I have a unique web startup opportunity worth $4B and am accepting HTML experts to implement it.</p>
<p><strong>Preston</strong>: <em>[im</em><em>mediately suspicious of the phrase "HTML expert"]</em>   Ok, you have my attention. What&#8217;s the business plan?</p>
<p><strong>Bill</strong>: It&#8217;s essentially a combination of eBay, Facebook&#8230;</p>
<p><strong>Preston</strong>: <em>[senses where this is going]</em></p>
<p><strong>Bill</strong>: &#8230;Slashdot and TheSuperficial.</p>
<p><strong>Preston</strong>: It&#8217;s a news and auction site for celebrity social networks?</p>
<p><strong>Bill</strong>: No no no, it&#8217;s more like Google meets MySpace.</p>
<p><strong>Preston</strong>: Like.. Orkut?</p>
<p><strong>Bill</strong>: Kinda, but simpler.</p>
<p><strong>Preston</strong>: <em>[completely confused]</em>  Back to the business plan part for a minute. Could you tell me about the nature of the business? Is this an ad-based site?</p>
<p><strong>Bill</strong>: No.</p>
<p><strong>Preston</strong>: Ahh, ok. Some sort of subscription thing then like Salon or TheOnion?</p>
<p><strong>Bill</strong>: No way. Users hate paying for stuff. It&#8217;ll affect our bottom line. We&#8217;re going to keep it free for everybody. And green. We should probably add a database of sites using ecological products. And videos, of course.</p>
<p><strong>Preston</strong>: <em>[now confident of where this is going]</em>  Let me restate the question. Where did that $4B figure come from?</p>
<p><strong>Bill</strong>: YouTube was bought out for $18B. Google will be all over this after we capture 10% market share.</p>
<p><strong>Preston</strong>: <em>[completely ignores the issues with those two sentences]</em> I see. To be completely honest, I should share a couple general thoughts. <em>[brings up telephone script #4 from personal wiki]</em> We haven&#8217;t talked about budgets at all, but I assume this is an equity-share idea, and I&#8217;m really honored you thought of us. There are a lot of development shops out there, and I&#8217;m happy and thankful we stood out to you. Unfortunately, we&#8217;re not accepting equity-based projects at this time for two primary reasons. First&#8211;and again all in frank honesty&#8211;we have the technical, business and other resources to implement these things on our own without external partners. We have a lot of great ideas, and it makes the most sense for us to pursue them internally. Secondly, it&#8217;s our goal to treat employees the way we all want to be treated: with respect, recognition and great benefits. That comes with cash flow requirements we just can&#8217;t meet with equity-heavy relationships. I&#8217;m going to email you some contact information for other resources you may want to follow up with directly, and I think you&#8217;ll find that reputable software engineering shops will share these two sentiments in common as a matter of prudence. We look forward to working with you in the future, however, and we&#8217;ll keep in touch periodically to check up on you!</p>
<p><em>[exchange of pleasantries]</em></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2009/02/11/offering-developers-startup-equity-a-dialog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What If Ruby Had Final Variables Like Java Or Erlang?</title>
		<link>http://www.prestonlee.com/2009/01/01/what-if-ruby-had-final-variables-like-java-or-erlang/</link>
		<comments>http://www.prestonlee.com/2009/01/01/what-if-ruby-had-final-variables-like-java-or-erlang/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 22:13:01 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[openrain]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[pastie]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=454</guid>
		<description><![CDATA[After a long confusing Ruby debate today at OpenRain on the merits of functional, Erlang-esque write-once-read-many variables, I&#8217;m going to step onto the podium and just say it&#8230; Ruby should get &#8220;final&#8221; or &#8220;const&#8221; variables in a similar semantic style to Java, except at runtime. Rather than ramble on for 12 paragraphs explaining exactly how this might work, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-309" title="ruby" src="http://www.prestonlee.com/wp-content/uploads/2008/09/ruby.png" alt="ruby" width="100" /></p>
<p><a href="http://openrain.com">After a long confusing Ruby debate today at OpenRain</a> on the merits of functional, Erlang-esque write-once-read-many variables, I&#8217;m going to step onto the podium and just say it&#8230; <strong>Ruby should get &#8220;final&#8221; or &#8220;const&#8221; variables</strong> in a similar semantic style to Java, except at runtime. Rather than ramble on for 12 paragraphs explaining exactly how this might work, <a href="http://pastie.org/350206">read this fictitious Ruby code snippet</a> instead. (Optional: Also check out the chapter on &#8220;final&#8221; in <a href="http://oreilly.com/catalog/9780596005689/">Hardcore Java</a>.)</p>
<p><strong>Final variables like this are really just an inline TDD mechanism.</strong></p>
<p>Allowing local stack data to be constant provides no functional enhancements to the software, but alleviates the need for certain types of tests by using the compiler and/or runtime to assert certain memory is immutable. The &#8220;friend_best&#8221; method variant in the code snippet would obviously break most existing Ruby programs, but ups the bar for defensive programming by preventing many common bugs out-of-the-box while still providing support for traditional Ruby variables. At the very least we should have something like &#8220;friend_better&#8221;. Adding this information to the parse tree will also make it easier for IDEs to provide features more easily implemented for static languages.</p>
<p>TDD/BDD is in&#8211;no qualms about it&#8211;but we can make our code safer, cleaner and more concise by applying some of the lessons learned by our statically-typed language cousins over the last few decades.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2009/01/01/what-if-ruby-had-final-variables-like-java-or-erlang/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone Developers May Now Speak&#8230; Almost</title>
		<link>http://www.prestonlee.com/2008/10/01/iphone-developers-may-now-speak-almost/</link>
		<comments>http://www.prestonlee.com/2008/10/01/iphone-developers-may-now-speak-almost/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 00:53:54 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[nda]]></category>
		<category><![CDATA[oreilly]]></category>
		<category><![CDATA[pi]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=379</guid>
		<description><![CDATA[Apple announced this morning that the NDA preventing developers from holding open development discussions will be lifted. While details of the new agreement are not yet available, we are already beginning to see changes in the iPhone development landscape. Details on the first Phoenix iPhone Developer Group meeting will be announced tomorrow morning on the OpenRain [...]]]></description>
			<content:encoded><![CDATA[<p>Apple announced this morning that <a href="http://fuckingnda.com/">the NDA</a> preventing developers from holding open development discussions <a href="http://developer.apple.com/iphone/program/">will be lifted</a>. While details of the new agreement are not yet available, we are already beginning to see changes in the iPhone development landscape. Details on the first <a href="http://groups.google.com/group/phoenix-iphone-developer-group">Phoenix iPhone Developer Group</a> meeting will be announced tomorrow morning on <a href="http://blog.openrain.com/">the OpenRain blog</a>!</p>
<p>Publishers are also rejoicing, as many have been effectively sitting on completed books in anticipation of today. <a href="http://www.pragprog.com/titles/amiphd/iphone-sdk-development">iPhone SDK Development by The Pragmatic Programmers</a> is already available for immediate electronic download, and an O&#8217;Reilly representative has informed me that <a href="http://oreilly.com/">O&#8217;Reilly Media</a> has just released <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FiPhone-Forensics-Recovering-Evidence-Corporate%2Fdp%2F0596153589%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1222908623%26sr%3D8-1&amp;tag=prestoncom-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">iPhone Forensics</a>.</p>
<p>It begins.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2008/10/01/iphone-developers-may-now-speak-almost/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Identifying Senior Software Engineers: Six Critical Differences</title>
		<link>http://www.prestonlee.com/2008/08/20/identifying-senior-software-engineers-the-critical-differences/</link>
		<comments>http://www.prestonlee.com/2008/08/20/identifying-senior-software-engineers-the-critical-differences/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 20:38:21 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[leadership]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=291</guid>
		<description><![CDATA[For HR and legal purposes, most development companies classify Software Engineers into ranks from I to IV (or V). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you&#8217;ll need to classify people accurately with a minimum amount of direct personal exposure: a [...]]]></description>
			<content:encoded><![CDATA[<p>For HR and legal purposes, most development companies classify Software Engineers into ranks from I to IV (or V). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you&#8217;ll need to classify people accurately with a minimum amount of direct personal exposure: a non-ideal but practical requirement of most hiring processes.</p>
<p>While we don&#8217;t regularly use titles at <a href="http://openrain.com">OpenRain</a>, we nevertheless have to distinguish senior talent. The core issue is, <em>&#8220;How to you objectively identify &#8216;senior&#8217; engineering qualities?&#8221;</em> Today we&#8217;ll focus on several key factors always present in quality engineers, independant of language and platform.</p>
<p><strong>Instinct</strong></p>
<p>He/She has developed extraordinary technical relevance filtering to the point of being able to scroll through a never-before-seen 500 line file in a language they don&#8217;t know, and tell you..</p>
<ul>
<li>how complicated the code is.</li>
<li>where potential bugs are.</li>
</ul>
<p>Even with no formal knowledge of code smells or design patterns, a senior developer can sense ugly code and architecture from a mile away even if they don&#8217;t yet know exactly why.</p>
<p><strong>Foresight</strong></p>
<p>Long-term implications are always on the mind of the Senior Software Engineer. They&#8217;ve been through the end-to-end development process (from requirements gathering to product maintenance and end-of-life) numerous times, know what issues are going to arise and will point out a suitable solution long before the symptoms start to appear. (This quality thus becomes most apparent after delivery when work is bombarded with never-before-seen use cases.) The truly elite developer is often hard to identify because they&#8217;re solving the important issues before anyone else notices the problem. (<a href="http://disjointthoughts.com/">Ben</a> is a primary example of this extraordinary perceptiveness.)</p>
<p><strong>Results Focus</strong></p>
<p>Knowledge without application leads to arrogance without insight. Senior developers are always focused on results which stand the test of time and can easily see through posers who fluff their way through status meetings.</p>
<p><strong>Communication</strong></p>
<p>New developers seldom understand the required differences of communication between different types of stakeholders. Newbies tend to treat all stakeholders as authoritative figures, and are quick to lose direction when exposed to people with differing incentives.  The criticality of non-verbal developer communication is also apparent to the senior engineer.  For example, a green engineer may see issue tracking as micro-management, automated testing as an ideological obsession, and project planning as administrative overhead, but these are all monumentally important aspects required to keep all developers and stakeholders in a real-time communications loop, since many do not directly interact. A senior engineer will see these concepts as empowering and often get grouchy when not present because NOT having clear priorities and documentation introduces roadblocks to <em>results</em>.</p>
<p><strong>Time &amp; Priority Management</strong></p>
<p>A senior engineer can more-or-less tell you what their schedule looks like a week out, even if it&#8217;s not written down, and won&#8217;t be hesitant to express any issues with workload ahead of time.</p>
<p><strong>Estimation</strong></p>
<p>New software engineers seem to invariably produce time estimates magnitudes off from reasonable numbers. The issue largely appears to be one of Foresight since accurate estimates are oft best produced by benchmarking current requirements against past similar project experiences: a task more easily accomplished with experience. This issue is an arguing point against <a href="http://www.extremeprogramming.org/rules/customer.html">the &#8220;Customer is Always Available&#8221; aspect of eXtreme Programming</a> since a green developer is generally more likely to over-commit a workload than a senior.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2008/08/20/identifying-senior-software-engineers-the-critical-differences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallels Server Pricing: Redux</title>
		<link>http://www.prestonlee.com/2008/06/25/parallels-server-pricing-redux/</link>
		<comments>http://www.prestonlee.com/2008/06/25/parallels-server-pricing-redux/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:10:15 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[deal]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=250</guid>
		<description><![CDATA[After a few grumpy emails between myself and our Account Manager, I&#8217;m happy to report that we have purchased the GA release and it&#8217;s working well. If you are using Parallels Server for internal development purposes and not for hosting, they will extend a more reasonable price per machine: $200 + $50/year maintenance. I think [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png"><img class="alignright size-full wp-image-246" style="float: right;" title="parallels_server" src="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png" alt="" width="132" height="172" /></a></p>
<p>After a few grumpy emails between myself and our Account Manager, I&#8217;m happy to report that we <em>have</em> purchased the GA release and it&#8217;s working well. If you are using Parallels Server for internal development purposes and not for hosting, they will extend a more reasonable price per machine: <strong>$200 + $50/year maintenance</strong>. I think that&#8217;s a very reasonable price point for our usage, and am happy to pay it.</p>
<p>This likely has more to do with meeting end-of-Q2 sales quotas than attracting <em>my</em> dinky business, but regardless, a win is a win! <em><strong>Thanks!</strong></em></p>
<p> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2008/06/25/parallels-server-pricing-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallels Desktop Coherence Mode Rocks: OS X/Windows XP Screenshot</title>
		<link>http://www.prestonlee.com/2007/04/23/parallels-desktop-coherence-mode-rocks-os-xwindows-xp-screenshot/</link>
		<comments>http://www.prestonlee.com/2007/04/23/parallels-desktop-coherence-mode-rocks-os-xwindows-xp-screenshot/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 00:22:39 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/archives/112</guid>
		<description><![CDATA[I tried Parallels Desktop&#8216;s Coherence mode today, and was so blown away I had to blog about it immediately. The above image has not been doctored. It&#8217;s my normal OS X desktop with Windows XP running in coherence mode. When activated, the window around the XP virtualization session vanishes, the XP taskbar integrates into your [...]]]></description>
			<content:encoded><![CDATA[<p>I tried <a href="http://www.parallels.com/">Parallels Desktop</a>&#8216;s Coherence mode today, and was so blown away I had to blog about it immediately.</p>
<p><img id="image111" src="http://www.prestonlee.com/wp-content/uploads/2007/04/parallels-coherence-mode-small.png" alt="parallels-coherence-mode-small.png" width="580" height="362" /></p>
<p>The above image has not been doctored. It&#8217;s my normal OS X desktop with Windows XP running in coherence mode. When activated, the window around the XP virtualization session vanishes, the XP taskbar integrates into your OS X desktop, and XP application windows are free to float around. With Parallels Tools installed each XP application has a dock item which can be Command-Tabbed to. If you look closely you can see I&#8217;m running IE 6 next to Safari, both natively, without the visual distraction of the virtualization window. This is a huge usability landmark. Thank you Parallels!</p>
<p>Try it yourself by selecting the View -&gt; Coherence menu option when running Parallels Desktop.</p>
<p><em>(Question: Does VMWare currently have a feature like this?)</em></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/2007/04/23/parallels-desktop-coherence-mode-rocks-os-xwindows-xp-screenshot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
