<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>JeffStanden.com</title>
	
	<link>http://www.jeffstanden.com/blog</link>
	<description>Thoughts for Biz-minded Techies</description>
	<pubDate>Thu, 11 Dec 2008 11:27:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7-hemorrhage</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<geo:lat>33.923463</geo:lat><geo:long>-117.895596</geo:long><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/jeffstanden" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Is your Web API painful to use? 4 common mistakes that scream “YES!”</title>
		<link>http://www.jeffstanden.com/blog/2008/12/11/4-signs-your-web-api-is-painful-to-use/</link>
		<comments>http://www.jeffstanden.com/blog/2008/12/11/4-signs-your-web-api-is-painful-to-use/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 11:08:30 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[first impressions]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[how-to]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/?p=21</guid>
		<description><![CDATA[
Photo by freefotouk [Flickr]
&#8220;It was the damnedest thing; I walked right past a group of those computer geek types and they were organized into two sides arguing about, of all things, rest versus soap. I&#8217;m not kidding. Don&#8217;t they realize they could use a lot more of both?&#8221; - the same non-techie who walked past [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/freefoto/2818163322/"><img class="aligncenter size-full wp-image-25" title="Large soap bubbles at the Edinburgh Fringe" src="http://www.jeffstanden.com/blog/wp-content/uploads/2008/12/2818163322_dfe1823a74_o1.jpg" alt="" width="450" height="301" /></a></p>
<div style="margin-right:20px;margin-bottom:10px;text-align:right;"><em>Photo by <a title="Link to freefotouk's photostream" href="http://www.flickr.com/photos/freefoto/2818163322/">freefotouk</a> [Flickr]</em></div>
<div style="margin-bottom:10px;"><span style="color: #808080;">&#8220;It was the damnedest thing; I walked right past a group of those computer geek types and they were organized into two sides arguing about, of all things, rest versus soap. I&#8217;m not kidding. Don&#8217;t they realize they could use a lot more of both?&#8221;</span><em><span style="color: #808080;"> - the same non-techie who walked past your last geeky convo</span></em></div>
<p>We programmers have a strange sense of humor about naming our intangible creations. You really have to wonder what goes through non-techie heads as they run across the battlefield of one of our wars of technical ideology.  Think about how that grandmother down the street hears &#8220;Eunuchs versus windows&#8221; &#8212; it sounds like some kind of hate crime party game.</p>
<p>As a programmer who wants to build more cool things, I&#8217;d like to offer my opinion on the <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a> vs. <a href="http://en.wikipedia.org/wiki/SOAP_(protocol)" target="_blank">SOAP</a> debate (to the dismay of mothers everywhere).</p>
<p>For the uninitiated bystander, REST and SOAP are fairly similar ways of letting different applications, services, and devices share data with each other.  For a quick example, let&#8217;s assume you track your household shopping list on a piece of paper under a magnet on your fridge.  One day you drive to the supermarket and realize that your list is still stuck to the fridge.  You can either wing it or have someone next to the list relay it to you over the phone.  If your shopping list was online you could pull it up from your phone at the store, but you could also do a lot other interesting things like allowing different services to tell you how healthy your menu was, to group the list by aisle for quick navigation at your nearest location, or to find the brands that are on sale.  That&#8217;s a big part of what REST and SOAP do, they allow people to create tools and &#8220;mashups&#8221; that find new uses for (or meaning from) existing data.</p>
<p>Very briefly (and quite biased and oversimplified):</p>
<ul>
<li>SOAP enforces order at the cost of flexibility.</li>
<li>REST permits chaos for the benefit of flexibility.</li>
</ul>
<p>Still with me?  How about this:</p>
<ul>
<li>SOAP requests are verbose with a lot of formal syntax, always dealing with an HTTP POST.</li>
<li>REST is stateless and operates just like the Web where resources are at /paths/like/this.</li>
</ul>
<p>When passionate developers release an API there&#8217;s usually anticipation and curiosity about the kinds of third-party aftermarket that will develop.  Those suburbs of development can make or break a project.</p>
<p>A problem that I&#8217;ve seen quite a bit from various web services lately (I&#8217;m looking at you, <a href="http://www.pingdom.com/" target="_blank">Pingdom</a>) is one where developers get excited about checking off the &#8220;Web API&#8221; feature request (or marketing bullet point), but it&#8217;s clear that nobody on the official development team actually tried to build a new tool with it.</p>
<p>I sat down tonight and thought about the API design blunders that give me the most grief.  Let&#8217;s see how well you do!</p>
<h3><span style="color: #008000;">Have a Web API you want the world to use?<br />
</span></h3>
<ul>
<li style="margin-bottom:3px;"> Don&#8217;t make me log in and log out through the API.  You can tell who I am from my API key in the HTTP headers, and you can authenticate me by comparing a checksum you generate on-the-fly against the one I provide in the headers.  By enforcing an explicit login you&#8217;re requiring me to send at least 2-3 packets (login, action, logout or timeout) when I should be sending one.  Perhaps that&#8217;s fine for a desktop application that can maintain a persistent connection, but we live in the age of iPhones on cellular networks.  Why limit your reach?  Why punish my phone?</li>
<li style="margin-bottom:3px;">Don&#8217;t make me use the Web API with the same login and password that I use to access the normal app or service.  I shouldn&#8217;t have to give away all my secrets just to share some info with another application.  Issue me an anonymous API Key and allow me to use a secret phrase for signing my packets that is specific to the API access.</li>
<li style="margin-bottom:3px;">Don&#8217;t use SOAP just because it&#8217;s a more familiar buzzword.  There&#8217;s no need to be so formal unless it&#8217;s absolutely necessary.  Formality robs XML of its flexibility and platform agnosticism.  It makes it a pain to reuse my data if my new platform requires another library (or worse, custom code) to play dress up and talk SOAP.</li>
<li style="margin-bottom:3px;">Don&#8217;t forget to provide examples!  Documentation is well and good, but a block of sample data is worth a dozen pages of explanation.</li>
</ul>
<p>Do you have an abnormal affection for, or allergy to, a particular Web API?  I&#8217;d love to hear about it in the comments.</p>
<p>-Jeff</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=HAFrZipw"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=wUYpRwa2"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=VWzE37PX"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=VWzE37PX" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/12/11/4-signs-your-web-api-is-painful-to-use/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Paradox of Change: Rewrite that Web App</title>
		<link>http://www.jeffstanden.com/blog/2008/08/26/the-paradox-of-change/</link>
		<comments>http://www.jeffstanden.com/blog/2008/08/26/the-paradox-of-change/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 06:33:38 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[how-to]]></category>

		<category><![CDATA[mindshare]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/?p=20</guid>
		<description><![CDATA[Those working at the highest levels of abstraction inherit the most change from below.
Your application framework may be like standing on the shoulders of a giant, but that giant is a beneficiary of an entire civilization, which is nested on the ground of the Earth, which itself is locked in orbit around the Sun, which [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong><span style="color: #008000;">Those working at the highest levels of abstraction inherit the most change from below.</span></strong></em></p>
<p>Your application framework may be like standing on the shoulders of a giant, but that giant is a beneficiary of an entire civilization, which is nested on the ground of the Earth, which itself is locked in orbit around the Sun, which itself is orbiting around the galaxy, which itself is still accelerating through the Universe after being ejected from an epochal Big Bang, which itself was probably the result of a collision in an even higher abstraction on our path to infinite regression.</p>
<p>I&#8217;m not saying that you&#8217;re insignificant &#8212; quite the opposite, I&#8217;m saying you&#8217;re fortunate; as much to be alive as to be a developer with all these great tools to build on.  A few years ago it would take an army of tie-sporting programmers chanting corporate songs in lockstep to produce an end result that a single coder can do from their bedroom today.</p>
<p>But as commercial developers we also have a problem.  It&#8217;s so addictive to work in these high levels of abstraction to rapidly change the world for our users that we often don&#8217;t see the ground moving beneath our feet.  The reality is our platforms are in motion too, and it&#8217;s a fallacy to imagine that our currently cushy abstraction will forever insulate us from having to go back to the drawing board.  But redesign we must.</p>
<p>So why change?  As the platforms we&#8217;ve chosen to build on evolve, more and more of the arcane glue between our ideas and tangibility is being done for us by the platform.</p>
<p>Here are a few examples:</p>
<ul>
<li>In Firefox, the browser-based spell checker adds spell checking to every text box in a web-based application.  That removes a huge burden from web developers who should never have had to deal with server-side spell checking in the first place.  There are clear benefits for the user too: they get consistent spell checking support that they don&#8217;t have to re-train for each application.  Their last name added to the dictionary on one site is reflected on every site.</li>
<li>Again in Firefox, browser-based extensions can take over even more of the heavy and redundant functionality that shouldn&#8217;t be wasting developer time at the application level.  My favorite recent example is the WriteArea extension which adds an inline HTML editor to any &lt;textarea&gt;.  This cuts out a large chunk of the source code footprint (FCKeditor, and ironically TinyMCE, are both hefty); it reduces the amount of client-side script you&#8217;re requiring people to cache; and it also reduces complexity, especially on Ajax-enabled sites that may be popping up asynchronous edit windows on floating DIVs.</li>
<li>Memcached is a distributed shared memory cache that can take over your home-brew caching layer.</li>
<li>Syndicating application content as RSS is a great way to offload notifications to tools that are better suited for it, without overloading your users&#8217; e-mail inboxes.</li>
<li>PHP5 introduced SimpleXML; which while far from perfect, I&#8217;d take any day over the event-driven nonsense we were doing in PHP4.</li>
<li>PHP6 will introduce native Unicode support (I&#8217;ll wait while the Java crowd stops laughing).  Right now we&#8217;re having to hack support together with the &#8216;mbstring&#8217; extension and deal with side-effects in binary strings from libraries out of our control.</li>
<li>I&#8217;ve been pleasantly surprised by my forays in to OSX and iPhone development land.  While XCode itself is no Eclipse, the Interface Builder puts the UI tools I&#8217;ve used in Java (Swing or RCP) to shame.  This abstracts the relationships between the code and the interface.</li>
<li>Amazon&#8217;s elastic computing (EC2) and redundant storage (S3) services are game changers. Designing your application to take advantage of elastic computing and &#8220;unlimited&#8221; storage can remove your hardware-imposed scaling limits &#8212; at least until you&#8217;re successful enough the costs of doing it yourself are less imposing.</li>
</ul>
<p>If you haven&#8217;t gone back to the drawing board in the past 12 to 24 months, chances are you&#8217;re wasting a lot of time on things that are already solved.</p>
<p><em><strong><span style="color: #008000;">Sure, that sounds great in theory, but my community will turn into a com-mutiny!</span></strong></em></p>
<p>If you have a sufficiently large user community around a project, you likely have your own subgroup that gets loud every time significant change is hinted at.  &#8220;We don&#8217;t want to have to retrain our entire team to do things a different way,&#8221; they say. &#8220;Small improvements are okay, but don&#8217;t go turning us upside down.&#8221;</p>
<p>It&#8217;s never a great feeling when you feel your project needs to diverge from the comfort zone of some of your most loyal users &#8212; most of whom helped you grow from nothing &#8212; but it&#8217;s more important that your project still exists with <em>at least</em> as much contagious enthusiasm in a year from now.  Hopefully more.</p>
<p><span style="color: #008000;"><em><strong>So where&#8217;s the &#8220;paradox&#8221;&#8230; Or was that a sensational headline?</strong></em></span></p>
<p>I&#8217;ll make this real simple.  Let&#8217;s say you&#8217;re building applications on the LAMP stack.  PHP and MySQL are going to evolve with or without you.  Someday in the fairly soon future, Linux distributions will be standardizing on PHP6 and MySQL 6.  If your application doesn&#8217;t work in that environment, your users are going to have to maintain time capsules where it does work.  If their servers break, they&#8217;re going to have to spend extra time reverting a new server to old versions of everything.  That limits what they can do with their hardware.  They&#8217;re going to miss out on the other less-directly-tangible benefits of the platform: stability, security, maintainability.</p>
<p>Even if your application simply works with new versions of your platform, you&#8217;re at the risk of your competition offloading grunt work to their platform and spending their time making their product and packaging better.</p>
<p>The paradox is that you&#8217;re going to have to change anyway, and it&#8217;s going to cost you far more energy to not change and maintain a time capsule than it&#8217;ll take you to embrace change and draw energy from your platform.</p>
<p>Rewriting a successful application can be daunting, but it&#8217;s also inspiring to know you&#8217;re working on something that people <em>definitely </em>will use because you&#8217;ve already proven the idea.  This time you&#8217;re informed by all the things that didn&#8217;t work out like planned, and you have the ability to turn the roughest spots into the improvements you&#8217;re the most proud of.</p>
<p>This is the &#8220;why&#8221;, but I need to sit down and write out my thoughts on the &#8220;how&#8221;.  The real dividends from a software rewrite come from sweeping away the scaffolding cruft of a first attempt and building from a stronger,cleaner, more maintainable foundation on the ideas that survived.  It&#8217;s also more important to design for changeability than around a concrete feature set.  Your first re-write shouldn&#8217;t sow the seeds of your second in another year or two.  I&#8217;ll definitely post a follow-up.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=QbJR5P2k"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=T2TKGlAQ"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=CyPP57Cd"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=CyPP57Cd" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/08/26/the-paradox-of-change/feed/</wfw:commentRss>
		</item>
		<item>
		<title>If You Aren’t Hosting Your Own Software For Real Customers Then Prepare to Lose</title>
		<link>http://www.jeffstanden.com/blog/2008/05/15/if-you-arent-hosting-then-prepare-to-lose/</link>
		<comments>http://www.jeffstanden.com/blog/2008/05/15/if-you-arent-hosting-then-prepare-to-lose/#comments</comments>
		<pubDate>Fri, 16 May 2008 06:24:22 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[mindshare]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/?p=19</guid>
		<description><![CDATA[The world is full of commercial software developers who breathe a huge sigh of relief when they ship a new release of their project.  They start thinking about vacations.  I used to be able to relate to that.

Before starting WGM, I used to be among the purist crowd who considered the ability to [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">The world is full of <em>commercial</em> software developers who breathe a huge sigh of relief when they ship a new release of their project.  They start thinking about vacations.  I used to be able to relate to that.</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;">Before starting WGM, I used to be among the purist crowd who considered the ability to just “fire and forget” in development a major job perk (if not a requirement).  I naively felt that projects started at their conceptual best, when you built from a blank slate, and I didn&#8217;t enjoy watching them degrade and get “boxed-in” through the endless concessions made during maintenance and marketing.  Ideas were pure and reality was evil.  <em>Users</em> was somehow a dirty word.</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;">My reality at WGM, thankfully, has been much more practical; and my collaborative, iterative development eyes are wide open.  There&#8217;s a powerful, unavoidably-magnetic sense of pride and ownership here that makes it impossible for us to just “fire and forget” anything.</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;">I often find myself entranced by our hosted helpdesk servers.  They&#8217;re running hundreds of copies of Cerb4 for customers who exist in this &#8212; as my past self would say &#8212; “messy real-world”.  The same past self would gawk at the liability of hosting all this data, and whimper, “I just want to write code!”.  After all, every design flaw and inefficiency is embarrassingly magnified on this scale&#8230; and yet, I love it!</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;">It&#8217;s way too easy to forget how many inefficiencies you&#8217;re forgiven when you&#8217;re working on a scale of one copy on one machine.  I&#8217;ve really found my way as a developer by honestly looking at what hasn&#8217;t worked, and still trying new things knowing they could very well dead-end, because it&#8217;s always a much stronger lesson than simply googling “the best way to _____” and blindly assuming someone else&#8217;s opinions or conclusions.  Obviously it&#8217;s practical to do research, but that&#8217;s a far cry from letting something you &#8220;read somewhere&#8221; become your immutable opinion.</p>
<p style="margin-bottom: 20px;">
<p>So, do yourself a favor and find a way to be responsible for hosting at least 100 copies of your own software for real users.  Naturally, you can charge whatever you want, as long as you still end up with a population of at least 100.  Take care to not oversell your hardware, because I&#8217;m assuming you do actually want to provide a useful service to people; and your brand is going to be in the gutter if things are completely unusable.</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;">You&#8217;ll be getting paid to learn how to write better software.  You&#8217;ll get the mindshare of being the application people choose because it doesn&#8217;t bog down or die when you have a mere 500,000 records in the database.</p>
<p style="margin-bottom: 20px;">
<p style="margin-bottom: 0in;"><strong><em><span style="color: #008000;">(If there&#8217;s any interest on this topic, I&#8217;d love to do a couple more posts about the things I do to benchmark and monitor my applications in our high-use hosting environments.)</span></em></strong></p>
<p style="margin-bottom: 20px;">
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=KV4MHIYm"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=Fu8H0Fhm"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=gTiWBkrM"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=gTiWBkrM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/05/15/if-you-arent-hosting-then-prepare-to-lose/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Plight of the Well-Intended Zombies</title>
		<link>http://www.jeffstanden.com/blog/2008/04/04/the-plight-of-the-well-intended-zombies/</link>
		<comments>http://www.jeffstanden.com/blog/2008/04/04/the-plight-of-the-well-intended-zombies/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 02:51:09 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2008/04/04/the-plight-of-the-well-intended-zombies/</guid>
		<description><![CDATA[Usually you don&#8217;t hear someone described as well-intentioned until they&#8217;ve messed up somewhere.
I know too many talented and well-intentioned people who are professionally ineffective. Ineffective, because the result of their effort isn&#8217;t meaningful progress toward making tomorrow better than today.
(Measuring better is going to depend on the task at hand. For knowledge work, let&#8217;s say [...]]]></description>
			<content:encoded><![CDATA[<p>Usually you don&#8217;t hear someone described as <em>well-intentioned</em> until they&#8217;ve messed up somewhere.</p>
<p>I know too many talented and <em>well-intentioned</em> people who are professionally ineffective. Ineffective, because the result of their effort isn&#8217;t meaningful progress toward making tomorrow better than today.</p>
<p>(Measuring <em>better</em> is going to depend on the task at hand. For knowledge work, let&#8217;s say <em>better</em> means less repeating yesterday through mindless zombie motions today.)</p>
<p><font color="#008000"><strong>Never-ending droplets</strong></font></p>
<p>In some roles, emptying a bucket that will never stop filling up with accumulated droplets <em><strong>is</strong></em> the job description.</p>
<p>The ineffective way to handle these never-empty buckets is to just occasionally dump them in the sink.</p>
<p>It would be a lot more productive to dump these buckets into a garden. Our endless tedium could help produce useful resources &#8212; food, flowers, trees, fish-stocked ponds.</p>
<p><font color="#008000"><strong>Conservation of the point</strong></font></p>
<p>My point isn&#8217;t that you should run around hugging trees (but feel free!). Instead, every time you&#8217;re barraged with tedious tasks that have no end in sight, and you can&#8217;t automate them, find a way to build a garden out of them.</p>
<p>Instead of repetitively laboring through the same questions in phone calls and e-mail, treat them as a resource for constantly improving your documentation or website in ways you hadn&#8217;t originally thought of. Tomorrow those improvements will undoubtedly save everyone time.</p>
<p>Using the same example, you could also make a habit of asking each person who calls or e-mails a question of your own. You could tune your marketing without obnoxious and impersonal surveys.</p>
<p>You&#8217;ll start to perk up every time the phone rings.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=D6XsI0Ta"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=fTUp3GXq"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=5uti9Svy"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=5uti9Svy" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/04/04/the-plight-of-the-well-intended-zombies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dear Mr. Falsely Idealistic Software Zealot (Who Really Wants Everything For Free)</title>
		<link>http://www.jeffstanden.com/blog/2008/02/22/dear-mr-falsely-idealistic-software-zealot-who-really-wants-everything-for-free/</link>
		<comments>http://www.jeffstanden.com/blog/2008/02/22/dear-mr-falsely-idealistic-software-zealot-who-really-wants-everything-for-free/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 07:23:42 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[delirium]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2008/02/22/dear-mr-falsely-idealistic-software-zealot-who-really-wants-everything-for-free/</guid>
		<description><![CDATA[Paraphrased e-mail:
&#8220;You should be ashamed of yourselves for charging for software built on free software!&#8221;
Hey Potential Customer Who Feels All Software Should Be Free,
I wanted to write you a quick note about your &#8220;free software stack&#8221; jab.
Libraries, frameworks, languages and operating systems are the prime candidates for being open-source software.  Hobbyists, professionals and students can [...]]]></description>
			<content:encoded><![CDATA[<p>Paraphrased e-mail:</p>
<blockquote><p>&#8220;You should be ashamed of yourselves for charging for software built on free software!&#8221;</p></blockquote>
<p>Hey <em>Potential Customer Who Feels All Software Should Be Free</em>,</p>
<p>I wanted to write you a quick note about your &#8220;free software stack&#8221; jab.</p>
<p><strong><font color="#008000">Libraries, frameworks, languages and operating systems are the prime candidates for being open-source software. </font></strong> Hobbyists, professionals and students can all share in the building, maintenance and testing of those components.  Everyone can benefit from them for many purposes, and anyone can feed in donations of time, word-of-mouth or money to projects they want to see flourish.</p>
<p>Those open-source components are also used by commercial companies to build applications which are high-level and specialized.  The libraries, components and syntax of a particular programming language act as glue that binds high-level concepts and business logic together into tools.  Such tools are a unified front-end for the constituent components that would individually have little (or no) consumer value or appeal on their own.  Such tools also require a lot of ongoing business-related miscellanea (e.g. support, marketing, documentation) that many open-source programmers would rather live without.</p>
<p><strong><font color="#008000">Commercial software has a vested interest in the open-source software it depends on</font></strong>, and an unspoken moral responsibility to provide time, money, recognition, or energy to those projects when possible.  It&#8217;s an ecosystem.</p>
<p>It would be a much bigger warning sign to me (of inexperience or misplaced priorities) if a project was rolling its own XML parsing libraries, building its own database abstraction layer, or writing its own templating system, if those components weren&#8217;t at the core of that project&#8217;s purpose for existing.</p>
<p>Component projects that have philosophical reasons for only promoting free software have the option of releasing their work under licenses like the GPL, which requires derivative software to follow suit.  We use LGPL or BSD/MIT licensed components, where the authors put their work (for varying reasons) into the ecosystem between free and paid software.</p>
<p><font color="#008000"><strong>Complaining about that is like saying all books should be the cost of their paper because words are free.</strong></font>  There&#8217;s a lot of value created by someone who gathers innovative, efficient ideas and technology into a ready-to-use format for your business.</p>
<p>I&#8217;m certainly not ashamed of where we fit into that.  You&#8217;re a random human being on planet Earth who came into contact with us because of what we&#8217;re doing.  Did you also spend the same amount of time looking for programming languages or templating engines?  I imagine you were looking for something a little more immediately usable.</p>
<p>Signed,<br />
<em> - A dedicated team of talented people who are perpetually immersed in building charming solutions to all those nasty business problems which led you to our doorstep in the first place.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=gIKfxXgg"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=zrjLgv96"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=vYbVHRKv"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=vYbVHRKv" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/02/22/dear-mr-falsely-idealistic-software-zealot-who-really-wants-everything-for-free/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Screencasting with CamStudio and Jumpcut</title>
		<link>http://www.jeffstanden.com/blog/2008/02/08/screencasting-with-camstudio-and-jumpcut/</link>
		<comments>http://www.jeffstanden.com/blog/2008/02/08/screencasting-with-camstudio-and-jumpcut/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 00:23:15 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[mindshare]]></category>

		<category><![CDATA[reviews]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2008/02/08/screencasting-with-camstudio-and-jumpcut/</guid>
		<description><![CDATA[[[ This is a first draft I posted rather quickly since I needed to share these instructions with a few people immediately.  I'll be returning to this article to clean things up. ]]
Putting your screencast on most video sharing sites will require you to use resolutions much smaller than full-screen, high-definition video.  It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>[[ This is a first draft I posted rather quickly since I needed to share these instructions with a few people immediately.  I'll be returning to this article to clean things up. ]]</strong></em></p>
<p>Putting your screencast on most video sharing sites will require you to use resolutions much smaller than full-screen, high-definition video.  It&#8217;s a shame, but so are bandwidth costs.</p>
<p>You can still provide an incredibly useful screencast in a small video window with a few clever tricks.  I&#8217;ve found CamStudio to be one of the best screen recorders for these requirements.  It has an excellent &#8220;follow the mouse&#8221; scanning feature, which lets you provide a moving region of your full resolution screen based on what you&#8217;re pointing at with the mouse.  It&#8217;s also free and incredibly easy to use.</p>
<p>For sharing videos, I&#8217;ve come to like Jumpcut more than YouTube due to their online video editing toolset, slightly better resolution and more liberal allowances on file size and video length.</p>
<p>What you need to screencast:</p>
<ul>
<li>CamStudio: <a href="http://www.camstudio.org/CamStudio20.exe" target="_blank">http://www.camstudio.org/CamStudio20.exe</a></li>
<li>A Jumpcut login (<a href="http://www.jumpcut.com/" target="_blank">http://www.jumpcut.com/</a>)</li>
<li>The DivX codec (<a href="http://www.divx.com/divx/windows/download/index.php" target="_blank">http://www.divx.com/divx/windows/download/index.php</a>)</li>
<li>A headset microphone</li>
<li>Little enough sleep or enough caffeine to make yourself interesting</li>
</ul>
<p><font color="#008000"><strong>CamStudio Setup:</strong></font></p>
<ul>
<li>Install CamStudio 2.0</li>
<li>Run the application.</li>
<li>Region-&gt;Fixed Region-&gt;640&#215;480</li>
<li>Options-&gt;Record Audio from Microphone</li>
<li>Options-&gt;Enable Autopan, Autopan Options-&gt;Speed-&gt;Max</li>
<li>Options-&gt;Video Options, DivX, Quality 90%, Configure, Home Theater Profile</li>
<li>Options-&gt;Cursor Options, Show Cursor + Use Actual Cursor, Highlight Cursor + Size Halfsize + Circle + Color Yellow (RGB: 255,255,125)</li>
<li>Options-&gt;Keyboard Shortcuts-&gt;Record/Pause (CTRL+ F12)</li>
</ul>
<p><font color="#008000"><strong>Recording a Video:</strong></font></p>
<ul>
<li>Minimize everything on your desktop and open the application you want to talk about.</li>
<li>Harmonize your Chi and attempt to channel every great speaker you&#8217;ve ever heard.</li>
<li>Press the record button in CamStudio (or CTRL+F12).</li>
<li>A region will appear, you can place this anywhere since it will follow you around automatically, but it&#8217;s best to place it near where you want to start talking (and where the mouse is).</li>
<li>Once you place the region, you&#8217;re LIVE.  Start gesturing wildly and explaining your actions as a running narrative to an empty room.</li>
<li>After you&#8217;ve covered what you wanted to talk about, press CTRL+F12 to pause recording.  Open CamStudio in your systray and stop the video by clicking the huge blue square button in the toolbar.</li>
<li>If all goes well, your video will compress using DivX and pop up a preview that you can play.  By default this .AVI file will be saved in your Program Files\CamStudio directory.</li>
</ul>
<p><font color="#008000"><strong>Uploading and Editing the Video with Jumpcut:</strong></font></p>
<ul>
<li>Log into Jumpcut (<a href="http://www.jumpcut.com/">http://www.jumpcut.com/</a>)</li>
<li>Click &#8220;Upload&#8221; in the top menu.  Click the exorbitant green upload button.  Select your video file from the appropriate directory.</li>
<li>Depending on your upload speed, you may want to get some more coffee or take a polyphasic powernap.</li>
<li>Once the clip is uploaded, click &#8220;Create&#8221; in the top menu.  Choose &#8220;Open the Editor&#8221; at the bottom of the page.  Maximize your browser if you haven&#8217;t already (some options like to hide at the bottom).</li>
<li>On the right, set the dropdown to &#8220;Your Media-&gt;all your clips and photos(1)&#8221;.  Drag your clip to the white frame at the bottom.</li>
<li>Click &#8220;Titles&#8221; from the editing toolbar in the middle of the page.  I prefer &#8220;A Scanner Darky&#8221;, but feel free to shop around.  Enter your title text and click &#8220;Add&#8221;.  Drag the orange title timing bar from the timeline toward the left until it&#8217;s about a half-inch long.  You&#8217;ll want to experiment with this when previewing your video.</li>
<li>Click the rewind button in the video preview area (to the left of the play button).  This resets the video to the beginning.  Click the play button and watch your video.</li>
<li>Unless you have a healthy ego, or you&#8217;re oblivious about your faults, you&#8217;ll probably fall to morose depths of self-deprecation while watching the preview.  Attempt to remember that you&#8217;re going to be harder on yourself than other people will be, unless you had too much caffeine or you&#8217;re just really bad at explaining things off the top of your head.  If you&#8217;ve had 4 cups of coffee and you&#8217;re still falling asleep while listening to yourself, it&#8217;s probably time for &#8220;take two&#8221;.</li>
<li>There are a lot of other fun toys in Jumpcut, but I&#8217;m not going to bother explaining them.  Play around on your own time!</li>
<li>Once you&#8217;re happy with the video, or at least have resigned to the fact your voice really does sound like that, hit the &#8220;Publish&#8221; button at the bottom of the page.</li>
<li>Enter title, tags, visibility and click the &#8220;Publish&#8221; button.</li>
<li>You have a video!  Even if you chose to make this video private, you can still share the URL with people you trust with your fragile ego in the palm of their hands.</li>
<li>You can embed this video on your website by clicking the &#8220;share&#8221; link under the video and copying the &#8220;embed&#8221; HTML.  There are also several other provided options for distributing your video.</li>
</ul>
<p>Feel free to provide a link to your video in the comments here!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=uXhLYs4w"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=ITM8AWR3"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=EEY1JRMj"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=EEY1JRMj" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/02/08/screencasting-with-camstudio-and-jumpcut/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Abstractions: Too Much Of A Good Thing?</title>
		<link>http://www.jeffstanden.com/blog/2008/01/24/abstractions-too-much-of-a-good-thing/</link>
		<comments>http://www.jeffstanden.com/blog/2008/01/24/abstractions-too-much-of-a-good-thing/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 11:24:36 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[delirium]]></category>

		<category><![CDATA[hard knocks]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2008/01/24/abstractions-too-much-of-a-good-thing/</guid>
		<description><![CDATA[I&#8217;m clenching a rough rope tightly between my left thumb and forefinger as I descend down the throat of a bottomless pit. I am not encumbered by the panicky implications of safety equipment. My right arm is gesturing wildly into empty space, acting as the ground-wire for an overstimulated mind.
I tilt my head back and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m clenching a rough rope tightly between my left thumb and forefinger as I descend down the throat of a bottomless pit. I am not encumbered by the panicky implications of safety equipment. My right arm is gesturing wildly into empty space, acting as the ground-wire for an overstimulated mind.</p>
<p>I tilt my head back and let my eyes reassuringly trace the taut lifeline up to the tiny disc of blue sky, the size of a full moon, capping the vertical chamber. The sight sparks an anonymous memory, which flutters to dutifully provoke a faint aftertaste of life in the center of my chest. Never willful to leave anything unanswered, a familiar dream-like reality superimposes itself on my surroundings. It&#8217;s as if I&#8217;m standing in a subway tunnel, directly facing an oncoming car, while being pulled backwards strongly by something&#8217;s insistence that it&#8217;s the proper place for me to be. I twist my head to look over my right shoulder, but everything is dark and shapeless. The illusion melts. I find myself still inching downward, carnally addicted to the growing clarity of my thoughts; paternally insulating them from everything that only knows how to dampen and mute.</p>
<p>I pause to contemplate how I&#8217;m as equally dependent on the rope staying anchored from above as I am on my desire to not let go of it. While the only biofeedback I&#8217;ve received so far has promised that further down is better, I ask myself if I&#8217;m any more objective by now than an alcoholic whose bitter swill has grown sweeter with inebriation. I can&#8217;t help but smirk as I tell myself the outcome of a bitter poison is the same as a sweet one &#8212; that the only difference is the courtesy of a warning.</p>
<p>An electric pain echoes between my left middle finger and elbow. The bloodless knuckles of my left hand wish to inform me that they&#8217;ve noticed they&#8217;re the only members of our mutual congregation who are doing any struggling. My mouth opens in instinctive response to the mental image of my left hand turning the wheel of a giant faucet, which proffers a drop but promises a torrent.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=XoPE4CFC"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=H0GKjBGG"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=6HIu51WT"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=6HIu51WT" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2008/01/24/abstractions-too-much-of-a-good-thing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Remember The Milk: 1 Month Review &amp; Tips</title>
		<link>http://www.jeffstanden.com/blog/2007/12/30/remember-the-milk-1-month-review-tips/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/30/remember-the-milk-1-month-review-tips/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 01:13:52 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[reviews]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/30/remember-the-milk-1-month-review-tips/</guid>
		<description><![CDATA[Remember the Milk is web-based task management app.

It&#8217;s been a month since I made Remember The Milk (RTM) part of my daily life.  At this point, I&#8217;d go through massive withdrawals if I had to “Forget The Milk”.
Tips:

It&#8217;s not very obvious that you can edit multiple tasks at the same time by pressing &#8216;m&#8216;. [...]]]></description>
			<content:encoded><![CDATA[<p>Remember the Milk is web-based task management app.</p>
<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071230_rtm_1mo.jpg" border="0" height="304" width="400" /></p>
<p>It&#8217;s been a month since I made <a href="http://www.rememberthemilk.com/" target="_blank">Remember The Milk</a> (RTM) part of my daily life.  At this point, I&#8217;d go through massive withdrawals if I had to “Forget The Milk”.</p>
<p><strong><font color="#008000">Tips:</font></strong></p>
<ul>
<li>It&#8217;s not very obvious that you can edit multiple tasks at the same time by pressing &#8216;<strong>m</strong>&#8216;.  This is really useful, because I often find myself wanting to tag or schedule several related tasks to reduce repetitive keystrokes and mouse gestures.</li>
<li>There is a huge list of <a href="http://www.rememberthemilk.com/help/answers/search/advanced.rtm" target="_blank">advanced search options</a>.  You can convert any set of search results into a dynamic Smart List.  For example, if you search for <em>“dueBefore:tomorrow”</em> you can create a list which will always show the current and overdue tasks for today.  Just click the <em>“Save” </em>tab to the right of the results.  This gives you a list you can work on until it&#8217;s empty, instead of the default lists which will always have future tasks at the bottom.  It&#8217;s far more motivating to work toward an empty “to do” list!</li>
<li>Make your lists “Getting Things Done” contexts like @Errands, @Home, @Office and @Study.</li>
<li>Your lists sort on priority by default.  If you change the sorting drop-down to due date it will still sort each date by priority.  This makes it easy to spot the occasional high priority task that&#8217;s overdue, which you generally want to handle before today&#8217;s tasks.</li>
<li>If you&#8217;re like me, it&#8217;s a hassle to try to find a specific browser tab when you have 100 tabs open across 15 Firefox windows.  Try firing up RTM in a separate browser (IE, Opera, Safari).  This makes it a lot easier to jump around the desktop taskbar throughout the day while being productive.</li>
</ul>
<p><strong><font color="#008000">Surprises:</font></strong></p>
<ul>
<li>I originally looked at RTM for the Twitter integration, but I find myself adding tasks through their web interface more often than I use the IM-&gt;Twitter-&gt;RTM functionality.</li>
<li>We set up our entire team on RTM so we can share tasks, but with RTM is always reminding me about the next productive thing I should be doing I rarely find myself dwelling on what other people are doing.</li>
</ul>
<p><strong><font color="#008000">Likes:</font></strong></p>
<ul>
<li>Reoccurring tasks are my favorite feature.  These help ensure I&#8217;m making constant progress on our business objectives (“reply to forum posts every weekday”, “reply to blog comments every weekday”, “assign project tasks every Monday”, “audit the backups every Sunday”), as well as the mundane household things I often overlook (“drag trash cans to curb every Thursday”, “make credit card payments every Friday”).</li>
<li>The iPhone interface is very convenient, especially if you have context lists like @Errands.</li>
<li>The flexibility on date entry is fantastic (e.g., “every other Thursday at 5pm”).</li>
<li>Being able to send a single task to multiple contacts (without having to duplicate it) is a big time-saver.</li>
<li>$25/yr for the Pro features is quite the bargain.</li>
</ul>
<p><strong><font color="#008000">Peeves/Wishlist:</font></strong></p>
<ul>
<li>It&#8217;s a little annoying that the current task remains checked after I save an edit.  This forces me to habitually press &#8216;<strong>n</strong>&#8216; <em>(select none)</em> when maintaining my lists.</li>
<li>I wish I could make my to-do &amp; completed lists public so my contacts could see what I&#8217;m working on.</li>
<li>It would be amazing if my contacts could be notified (by e-mail, Twitter) when I finish a particular task that they&#8217;re waiting on.  That would be easy to pitch as the killer Pro feature.</li>
</ul>
<p>If you aren&#8217;t using RTM yet, check it out!</p>
<p>Related reading:</p>
<ul>
<li><a href="http://lifehacker.com/software/geek-to-live/get-organized-with-remember-the-milk-309789.php" target="_blank">Lifehacker readers vote for Remember The Milk</a> as the best web-based task manager.</li>
<li><a href="http://blog.rememberthemilk.com/2007/12/rtm-gmail-task-management-goodness.html" target="_blank">Remember The Milk now integrates with Gmail</a>!</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=7hRnrZto"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=AHmK3YJp"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=VwFBSmcI"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=VwFBSmcI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/30/remember-the-milk-1-month-review-tips/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Atlassian Responds to “JIRA is Annoying”</title>
		<link>http://www.jeffstanden.com/blog/2007/12/13/atlassian-responds-to-jira-is-annoying/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/13/atlassian-responds-to-jira-is-annoying/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 05:41:09 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[mindshare]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/13/atlassian-responds-to-jira-is-annoying/</guid>
		<description><![CDATA[ 
After my post &#8220;JIRA Is More Annoying Than Having to Eat Three Times A Day&#8221; was published yesterday, Jon Silvers from Atlassian (developers of JIRA) stopped by and left a friendly comment. 
I&#8217;m incredibly impressed that my tongue-in-cheek critique came to his attention so quickly. 
Hey Jon,
First, thanks for commenting!  I&#8217;m glad you [...]]]></description>
			<content:encoded><![CDATA[<p> <img src="http://www.jeffstanden.com/post_images/2007_12/20071213_atlassian.jpg" style="border: 2px solid #787878" border="0" height="305" width="450" /></p>
<p><em>After my post &#8220;<a href="http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/" target="_blank">JIRA Is More Annoying Than Having to Eat Three Times A Day</a>&#8221; was published yesterday, Jon Silvers from Atlassian (developers of <a href="http://www.atlassian.com/software/jira/" target="_blank">JIRA</a>) stopped by and left a <a href="http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/#comment-20" target="_blank">friendly comment</a>. </em></p>
<p><em>I&#8217;m incredibly impressed that my tongue-in-cheek critique came to his attention so quickly. </em></p>
<p>Hey Jon,</p>
<p>First, thanks for commenting!  I&#8217;m glad you took my ranting in good spirits and left a gracious comment.   I must not have put my karma into overdraft protection.</p>
<p><font color="#808000"><strong><em>“Hm, there are lot of people who want to eat three times per day, even some that would be happy with one meal.”</em></strong></font></p>
<p>Ouch! At the risk of sounding insensitive, I&#8217;m sure they also find the daily existential requirement of eating &#8212; and the neuroendocrinological punishments for not eating &#8212; profoundly annoying too. At least breathing is automatic, or we&#8217;d get absolutely nothing else done. I certainly can&#8217;t argue against the fact that we&#8217;re incredibly lucky in our selection and availability of food.</p>
<p><em><strong><font color="#808000">“My other first thought after reading this is whether you’re using filters to find only the issues relevant to you? [...] It’s not consumer software, it was never meant to be.”</font></strong></em></p>
<p>Yeah, the customer-facing bit is really the key to our issues. We&#8217;re directing end-users to JIRA to submit their own feature requests and bug reports. For many of the reasons that JIRA is great for developers (e.g., specificity), it&#8217;s conversely daunting for our average end-user.</p>
<p>It would be great if we could really take a democratic community pulse on various feature requests to help us build each release roadmap. The voting feature does exist, but our experience has shown that only the most enthusiastic users will go through the trouble of logging in, reading all the open requests and voting on each task&#8217;s profile. Unfortunately, the demands on most people&#8217;s time necessitates community polling features that are more socially “Digg-like”.</p>
<p>As I mentioned in my post earlier, I did get the impression that a non-developer user community wasn&#8217;t intended to be directly served by JIRA&#8217;s interface; however, I&#8217;m sure we&#8217;re not alone in sending end-users to JIRA anyway. There isn&#8217;t a good alternative, beyond fielding every request personally in real-time, or transcribing requests from piles of e-mail. JIRA at least ensures busy developers won&#8217;t unintentionally ignore feedback.</p>
<p><em><strong><font color="#808000">“We are working interface improvements, with the knowledge that</font></strong></em> <em><font color="#808000"><strong>(A) lots of people really like JIRA as it is today and don’t want many changes and (B) others like you want to see change.”</strong></font></em></p>
<p>We&#8217;re in both camps. As techie developers, we liked JIRA enough to buy it. As community-driven software designers, we feel JIRA needs an additional community-focused interface that streamlines the feedback process and allows user democracy to contribute to project decision-making.</p>
<p>I&#8217;d like to see distributed feedback from the community helping to elevate the great feature requests and showstopping bugs above the overwhelming majority of trivial or self-indulgent requests. That would save us a lot of time as developers, and it would display that we&#8217;re always listening (which encourages more feedback, and the cycle continues).</p>
<p><strong>Here&#8217;s one of the features I&#8217;d headline if I was going to create a JIRA alternative:</strong></p>
<p>Even when we aren&#8217;t expecting users to directly vote on tasks or add themselves as watchers, we need the ability to create a private waiting list per task. That list would allow us to add links to helpdesk tickets, forum posts or attach contact e-mail addresses. Once we&#8217;ve finished a given task, that waiting list tells us exactly who to ping. There are ways to currently hack this together using private comments on tasks, but the feature really should require that we&#8217;re notifying the waiting list before the task disappears.</p>
<p><em><strong><font color="#808000">“You might also want to discuss your pain points on our forums [...] or if you can stomach (pun intended) another JIRA, you can log issues and feature requests&#8230;”</font></strong></em></p>
<p>Haha! I&#8217;ll do that. It&#8217;s certainly more efficient for you guys than implanting tracking devices in rogue bloggers (or, you know, following everyone&#8217;s RSS).</p>
<p>It&#8217;s great to see that you guys are so on top of feedback.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=pcP9Mfr8"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=UKTJABQN"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=ShlUhizC"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=ShlUhizC" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/13/atlassian-responds-to-jira-is-annoying/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JIRA is More Annoying Than Having to Eat Three Times a Day</title>
		<link>http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 09:48:53 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[delirium]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[startup life]]></category>

		<category><![CDATA[jira]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[rewrite]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/</guid>
		<description><![CDATA[
Photo by bocavermelha
Up until I snapped a few minutes ago, I wasn&#8217;t sure anything could be more annoying than having to eat every day. After all, I&#8217;ve been told by close friends that I&#8217;d be a happier entity if I was simply a brain in a jar, left entirely to its own thoughts. I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071212_jira.jpg" border="0" height="301" width="450" /><br />
<a href="http://www.flickr.com/photos/bocavermelha/538522040/" target="_blank" style="color: #787878">Photo by bocavermelha</a></p>
<p>Up until I snapped a few minutes ago, I wasn&#8217;t sure anything could be more annoying than having to eat every day. After all, I&#8217;ve been told by close friends that I&#8217;d be a happier entity if I was simply a brain in a jar, left entirely to its own thoughts. I don&#8217;t disagree.</p>
<p>Tonight started out normally enough:</p>
<ul>
<li>I fired up JIRA for the thousandth time.</li>
<li>I dug through the ever-shifting, free-for-all, trivial-showstopper, dupe-a-thon of a roadmap for the thousandth time.</li>
<li>I wracked my brain trying to sort out the new bugs and wishlist items from &#8216;<em>Unassigned</em>&#8216; purgatory, which contains over a hundred tasks that aren&#8217;t either outright reject-worthy or important enough to schedule.</li>
</ul>
<p>Except tonight, something cried out in my mind and asked <strong><font color="#808000"><em>Why are you reading every single thing AGAIN?</em></font></strong></p>
<p>It&#8217;s pretty embarrassing when you don&#8217;t have a good answer for your own internal teleprompter. It must be something like catching yourself with your pants down. There really is no explanation.</p>
<p><strong><font color="#808000">I don&#8217;t think it&#8217;s entirely JIRA&#8217;s fault</font></strong> &#8212; but I do think I&#8217;ve realized we aren&#8217;t their target audience. We&#8217;d rather just play bouncer at the door of Club Development and decide which tasks are on the guest list, are too damn sexy to turn away, or have a $100 bill cleverly folded into their handshake.  Instead, we have tasks sneaking in the side door, cloning themselves, and all simultaneously proclaiming themselves the most interesting thing in the room.</p>
<p>There&#8217;s no reason that a user of our software, clutching a precious scrap of feedback, should arrive at Fort JIRA and be put through the Mensa screening program before they can share. We should be rolling out the red carpet and carrying them to the suggestion box in a golden litter.</p>
<p><strong><font color="#808000">Perhaps JIRA wasn&#8217;t meant to be customer-facing</font></strong> – and that would explain quite a lot. But if I was going to adopt something for my own neurotic use I&#8217;d just keep writing out my ideas in magic marker on rolls of toilet paper (or as I like to call them, perforated Post-Its).</p>
<p>Simply stated, we need something that:</p>
<ul>
<li>Doesn&#8217;t require a customer login of any kind (but may test for humanness).</li>
<li>Doesn&#8217;t feel the need to ask the customer for more than a block of textual feedback.</li>
<li>Will bother looking for possible duplication when submitting bugs or ideas.</li>
<li>Allows our developers to quickly tag, categorize, assign and prioritize suggestions on acceptance without requiring us to open each task&#8217;s freaking FaceBook profile.</li>
<li>Lets us simply pile accepted tasks into “Doing now”, “Will do later”, “Probably will never do, but we don&#8217;t have the brass pendulums to say so”.</li>
<li>Provides simple RSS for everything (e.g., new submissions, current assignments).</li>
</ul>
<p>Maybe I&#8217;ll write it.  (Then someone can rant about all the things it can&#8217;t do that JIRA can.)</p>
<p><strong><font color="#808000">Can anyone save me from the compulsive desire to write things from scratch?  Let me know in the comments.</font></strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=ohGf97IS"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=VNx7gv2z"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=4VCiZBBJ"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=4VCiZBBJ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/12/jira-is-more-annoying-than-having-to-eat-three-times-a-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>@Scoble How to Make Business Apps Sexy</title>
		<link>http://www.jeffstanden.com/blog/2007/12/09/scoble-how-to-make-business-apps-sexy/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/09/scoble-how-to-make-business-apps-sexy/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 07:42:19 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[mindshare]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/09/scoble-how-to-make-business-apps-sexy/</guid>
		<description><![CDATA[
Photo by Grazie, Davvero
Robert Scoble recently stated why enterprise software isn&#8217;t sexy enough to cover on mainstream technology blogs.
He offers two arguments:

The majority of tech blog readers will never be in the position to buy enterprise software.
Stories about business software, due to a disconnect with their readership, don&#8217;t produce meaningful traffic for the blog&#8217;s advertisers.

He [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071209_bizappsexy.jpg" border="0" height="338" width="450" /><br />
<a href="http://www.flickr.com/photos/goljadkin/23893171/" target="_blank" style="color: #787878">Photo by Grazie, Davvero</a></p>
<p>Robert Scoble recently stated <a href="http://scobleizer.com/2007/12/09/why-enterprise-software-isnt-sexy/" target="_blank">why enterprise software isn&#8217;t sexy</a> enough to cover on mainstream technology blogs.</p>
<p>He offers two arguments:</p>
<ul>
<li>The majority of tech blog readers will never be in the position to buy enterprise software.</li>
<li>Stories about business software, due to a disconnect with their readership, don&#8217;t produce meaningful traffic for the blog&#8217;s advertisers.</li>
</ul>
<p>He then asks what can be done to make business software sexy enough to talk about.</p>
<p>Here&#8217;s my take contribution to <a href="http://www.techmeme.com/071209/p19#a071209p19" target="_blank">the discussion</a>:</p>
<p><strong>For the bloggers:</strong></p>
<p>If a large software company is giving day-to-day end-users the cold shoulder to schmooze with the market&#8217;s decision makers, then they aren&#8217;t owed any organic word-of-mouth.</p>
<p>As Scoble points out, anecdotally (but my experience agrees), most workers on a company&#8217;s front lines will probably trend toward hating their current business software when asked.  In fairness, I also doubt the majority of those workers are offering management a request for any specific alternatives.</p>
<p>This is one area where technology bloggers could be doing a valuable public service, by informing technology workers about the <em>good</em> ideas coming out of the business software market.  Make people say “That is <em>much </em>better than the <em>crap</em> I have to use every day!”.</p>
<p>Even if these tech workers are disempowered, and feel their petitions to management are futile, the situation will never improve if the only discussion going on is paid for with multi-million dollar advertising budgets.</p>
<p><strong>For the enterprise software developers:</strong></p>
<p>Assuming for the moment that you want more organic word-of-mouth (and who doesn&#8217;t):</p>
<ul>
<li><font color="#008000"><strong>Hire and empower enthusiastic developers</strong></font> who bring fresh perspectives to your problem domain.  Look for developers who have first-hand experience as users of software like yours.  These people are going to put more thought into the problem you&#8217;re trying to solve for people.  If time is money, then efficiency is time.  <font color="#0000ff"><em>Time and money are sexy.  12 keystrokes for common functionality is not.
<p></em></font></li>
<li><font color="#008000"><strong>Listen to your end-users.</strong></font>  These are the people who have to use your application every day.  You might think it&#8217;s more important to appease the people making the current buying decisions, but today&#8217;s helpdesk worker may very well be tomorrow&#8217;s influential startup founder.  Technology enthusiasts like this attract a large following and they love to talk about what they&#8217;re discovering or using.  Don&#8217;t outsource your suggestion box – let your actual developers connect with the end-users through online communities and feedback portals.  <font color="#0000ff"><em>Two-way communication is sexy.  Megaphones, press releases and moats are not.
<p></em></font></li>
<li><font color="#008000"><strong>Make an effort to adopt current technology.</strong></font>  A lot of technology bloggers, developers and consumers would love to talk about a behemoth like you using some of the same tools that they are (maybe even some tools they wrote!).  This doesn&#8217;t mean you have to offer an iPhone interface or rewrite everything in Ruby.  There are plenty of opportunities for a big tech player like you to contribute to communal libraries which meet 90% of your needs already.  <em><font color="#0000ff">Open source libraries and tools are sexy.  Golf course nepotism is not.
<p></font></em></li>
<li><font color="#008000"><strong>Be approachable for technology enthusiasts.</strong></font>  Look at Sun Microsystems&#8217; <a href="http://www.sun.com/emrkt/startupessentials/" target="_blank">Startup Essentials</a> and Amazon&#8217;s EC2/S3 web services.  Those strategies build a relationship with non-captive users and let them figure out what you&#8217;re all about.  Those people broadcast over blog, IM, text or a good old-fashioned chat over drinks.  I trust what my peers tell me about you a lot more than I trust an advertising testimonial from the CEO of Megacorporation, Inc.  <font color="#0000ff"><em>Reaching out with downloadable demos and startup friendly options is sexy.  Hiding your entry-level pricing and product demos is not.</em></font></li>
</ul>
<p>You might want to hurry,  <a href="http://www.cerberusweb.com/clients" target="_blank">business software users are trying new things too</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=VIxAIZRl"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=Im5344u6"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=JvmaMhL9"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=JvmaMhL9" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/09/scoble-how-to-make-business-apps-sexy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I Learned My Most Important Software Lessons in BASIC</title>
		<link>http://www.jeffstanden.com/blog/2007/12/09/i-learned-my-most-important-software-lessons-in-basic/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/09/i-learned-my-most-important-software-lessons-in-basic/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 02:13:02 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[startup life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/09/i-learned-my-most-important-software-lessons-in-basic/</guid>
		<description><![CDATA[
Photo by Balakov
I&#8217;ve been programming for about 16 years now.
I almost called this my &#8220;Most Important Programming Lessons&#8221;, but I consider writing software to involve far more than a mastery over programming arcana.
When I first discovered source code, I didn&#8217;t pick up a manual and start reading about data structures and flow control.  That [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071209_qbasic.jpg" border="0" height="291" width="450" /><br />
<a href="http://www.flickr.com/photos/balakov/1544234007/" target="_blank" style="color: #787878">Photo by Balakov</a></p>
<p>I&#8217;ve been programming for about 16 years now.</p>
<p>I almost called this my &#8220;Most Important Programming Lessons&#8221;, but I consider writing software to involve far more than a mastery over programming arcana.</p>
<p>When I first discovered source code, I didn&#8217;t pick up a manual and start reading about data structures and flow control.  That was a lucky decision for the current me, because the former me would probably have been overwhelmed and lost interest.</p>
<p>Instead, I kept myself entertained by making little changes to programs that I already knew worked.  I&#8217;d do fun things, like surprising the gorilla in the QBasic game &#8216;<a href="http://en.wikipedia.org/wiki/Gorillas_%28computer_game%29" target="_blank">Gorillas</a>&#8216; by modifying his thrown bananas to explode like atomic weapons.  The poor guy never saw it coming.</p>
<p><font color="#808000"><em>I was writing code for me.</em></font></p>
<p>Anytime I showed my latest tweaks to somebody they would laugh in appreciation &#8212; but then they would always come up with another idea to push things further.  What if the bananas fragmented on their descent like a MIRV missile?  What if the bananas became the hero and they threw gorillas?  Ha!  I was hooked.</p>
<p><font color="#808000"><em>I was dealing with feedback from people who became truly inspired only after seeing something working already.</em></font></p>
<p>Eventually, I figured out enough through my tinkering that I could face a blank screen and enter my first instructions to make the computer do something.  Paint the screen red.  Draw a box.  Beep!</p>
<p>I would only make a couple small improvements before compulsively running the program again.  Did I predict how things would behave, or was I about to be rewarded with something completely unexpected (and often hilarious)?</p>
<p><font color="#808000"><em>I was practicing iterative development.</em></font></p>
<p>As the years of experience piled on, and I worked through various programming gigs, I started to get overly-confident in my ability to think like the computer.  I wrote code for longer stretches, at times making changes so vast that it was impossible to actually run the program for several days.  I also started to preemptively add new features, and I delayed for longer periods between demonstrating the new changes to actual users.  &#8220;It will be finished when my task list is finished!&#8221; I thought, naively.</p>
<p><font color="#808000"><em>My growing confidence in programming was undermining my ability to collaborate with non-programmers.  I was also looking at projects as a checklist of disparate tasks, instead of a cohesive experience for the user.</em></font></p>
<p>One day, probably after completing yet another soulless project &#8212; with my team breathing a collective sigh of relief, as if being spared from an execution at 30 seconds before midnight &#8212; it finally dawned on me that things shouldn&#8217;t be this way. Things didn&#8217;t used to be this way.</p>
<p>I made a short list of things that detracted from the fun I had when starting out:</p>
<ul>
<li> We were writing projects that we didn&#8217;t need, and wouldn&#8217;t use, ourselves.</li>
<li>Management, alone, was deciding the tools we used to solved our problems, usually because of executives who bought into vendor marketing at face value.</li>
<li>Our project managers weren&#8217;t programmers, and they weren&#8217;t end-users, so they couldn&#8217;t effectively communicate with either side. Their project plans revolved around the least important party &#8212; the middleman.</li>
<li>Our talents were being rented out at five times our compensation.</li>
<li> We had no stake, or risk, in the success or failure of our work.</li>
</ul>
<p>Shortly after this epiphany I quit my job as a complacent programmer.  I co-founded a new software company where we established an ethos of:</p>
<ul>
<li> Writing software that we would use as much as our end-users.</li>
<li> Talking directly with our end-users instead of using middlemen.</li>
<li> Sharing ideas and changes as early as possible.</li>
<li>Emphasizing that sales were votes of confidence in what we&#8217;re doing going forward, opposed to a payment that merely offset our past work.</li>
</ul>
<p><font color="#808000"><em>Dozens of projects, half a dozen programming languages, and tens of thousands of hours of experience later, and I it turns out I learned my most important software writing lessons in those first tinkering days with QBasic.</em></font></p>
<p>Did you practice any of your favorite software development lessons well before you realized what you were doing?  I&#8217;d love to hear about it in the comments!</p>
<p>Related reading:<br />
<a href="http://www.extremeprogramming.org/" target="_blank"> http://www.extremeprogramming.org/</a><br />
<a href="http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast" target="_blank"> http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=ZzN6DSXh"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=Ic1lfZvK"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=l6HiR3UL"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=l6HiR3UL" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/09/i-learned-my-most-important-software-lessons-in-basic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Abstractions: On Burnout</title>
		<link>http://www.jeffstanden.com/blog/2007/12/05/abstractions-on-burnout/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/05/abstractions-on-burnout/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 19:57:41 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[hard knocks]]></category>

		<category><![CDATA[startup life]]></category>

		<category><![CDATA[abstractions]]></category>

		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/05/abstractions-on-burnout/</guid>
		<description><![CDATA[
photo by Jeremy Johnstone
Burnout.
It starts with the feeling you can overcome anything.
It&#8217;s reinforced when you overcome a swell of adversity.
It languishes when you thirst for more mountains to climb.
It roars into revival when your enthusiasm brings you to the truly insurmountable.
It laughs when you try.
It grows when you struggle.
It lays roots when you capitulate.
It wins [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071205_burnout.jpg" alt="Going out in flames!" border="0" height="300" width="450" /><br />
<a href="http://www.flickr.com/photos/jeremyjohnstone/434701593/" target="_blank" style="color: #787878;">photo by Jeremy Johnstone</a></p>
<p>Burnout.</p>
<p>It starts with the feeling you can overcome anything.<br />
It&#8217;s reinforced when you overcome a swell of adversity.<br />
It languishes when you thirst for more mountains to climb.<br />
It roars into revival when your enthusiasm brings you to the truly insurmountable.<br />
It laughs when you try.<br />
It grows when you struggle.<br />
It lays roots when you capitulate.<br />
It wins when you&#8217;re left with want for nothing.</p>
<p>So what&#8217;s the trick to surviving the curse of having great potential and the stubborn perseverance to succeed at all costs?</p>
<p>Having an anchor.<br />
Having a necessary distraction.<br />
Having something that lends purpose to your tireless effort.<br />
Having a goal that means more to you than a dream you plucked out of a hat.</p>
<p>Not leaving yourself enough rope to make a noose with.</p>
<p>The last card in the deck of virtues that you want to be left holding at the end of the game is the ability to dig in and tough out anything.  Because you will use it.  Repeatedly.  Just because you can.</p>
<p>Boundless enthusiasm is best exercised in small passionate bursts.<br />
It&#8217;s best if you embrace the spirit of &#8220;boundless&#8221; without looking for boundaries.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=ZBPn5AVV"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=08R4y0WV"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=JHcu2haf"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=JHcu2haf" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/05/abstractions-on-burnout/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Share Tasks in a Dependable Way That Your Team Will Actually Use</title>
		<link>http://www.jeffstanden.com/blog/2007/12/04/how-to-share-tasks-in-a-dependable-way-that-your-team-will-actually-use/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/04/how-to-share-tasks-in-a-dependable-way-that-your-team-will-actually-use/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 01:36:15 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[startup life]]></category>

		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/04/how-to-share-tasks-in-a-dependable-way-that-your-team-will-actually-use/</guid>
		<description><![CDATA[
Photo by jazzmasterson
If we&#8217;re anything alike, you also use a wild tangle of web applications to manage your life or job. We all love web applications &#8212; they&#8217;re often inexpensive (if not free) and they allow us access our data from almost anywhere. If you have a modern cellphone then you&#8217;ve probably also felt the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071204_tasks.jpg" alt="Productive!" border="0" height="271" width="450" /><br />
<a href="http://www.flickr.com/photos/jazzmasterson/1895638/" target="_blank" style="color:rgb(120,120,120);">Photo by jazzmasterson</a></p>
<p>If we&#8217;re anything alike, you also use a wild tangle of web applications to manage your life or job. We all love web applications &#8212; they&#8217;re often inexpensive (if not free) and they allow us access our data from almost anywhere. If you have a modern cellphone then you&#8217;ve probably also felt the special magic of being able to access all your personal miscellanea from a tiny device that&#8217;s always with you.</p>
<p>The best part about having an endless sea of web applications is the ability to find something that fits your one specific need really well. You don&#8217;t need a monster application that tries to do everything and ends up doing nothing exceptionally well. However, without a single point of focus you become inundated in bookmarks to all your tools.</p>
<p>Luckily, a new breed of applications is being born from this ingenious epiphany: when you&#8217;re at your PC, your instant messenger (IM) is like your cellphone. It&#8217;s always with you. Suddenly, you can chat with your various web applications as if they were simply people on your buddy list. You no longer have to visit each site and log in. Your credentials become your instant messaging account.</p>
<p>One project that really understands this mentality is Twitter. If you&#8217;re not familiar with it, Twitter allows you to post quick updates about what you&#8217;re doing from a social website &#8212; but it really makes sense when you send updates from your IM or cellphone. These updates can be forwarded to your friends automatically in a way that&#8217;s almost telepathic.</p>
<p>Among many other things, two really interesting things have evolved from the simple idea that spawned Twitter:</p>
<p>First, ordinary people started following celebrities and quasi-celebrities in addition to their friends. While one&#8217;s first impulse is often how this is just an extension of reality shows, or a marketing scheme by these public figures, it&#8217;s actually something much more interesting in practice. You find yourself feeling like you&#8217;re intercepting the thought processes of people you admire. A lot of people already use Twitter: Authors of your favorite books, representative political figures, developers of your favorite applications, major news organizations, creators of your favorite television shows and so on. There&#8217;s obviously another long list of benefits for each celebrity.</p>
<p>Secondly, developers started to realize that their popular applications could also interact directly with their fans. Twitter already provides a communications platform that has a ton of existing users. This avoids the pitfall we come across in development where we&#8217;re asking users to adopt yet another discontinuous tool or process. Most people don&#8217;t want another tool. Anybody with an instant messenger account can communicate with Twitter and, by extension, communicate with some of their favorite applications.</p>
<p>I&#8217;ve found myself switching my digital life over to applications that understand this new &#8220;mashup&#8221; mindset. My current favorite example is &#8220;Remember the Milk&#8221;.</p>
<p>Remember the Milk (RTM) is a simple online task list. It has a clean interface and uses Ajax tastefully for its user interaction. Otherwise you&#8217;ve seen this kind of thing before: tasks, due dates, lists, yada, yada. What&#8217;s really special about RTM is the ability to remote control it through IM. Not only can you update and receive notifications about your own tasks, but you can also quickly send tasks to friends and co-workers who have an account with RTM and Twitter.</p>
<p>For my part, my usual suspects are my friends and co-workers at my software company. We often pass tasks back and forth through IM, e-mail and post-its. After several years, we&#8217;ve come to the conclusion that none of those options are very dependable. We&#8217;ve tried all kinds of task management software, but our busy workplace has the habit of refining out superfluous tools or steps. People simply stop using them. The one constant fixture in our business chatter is our instant messenger (namely, Google Talk).</p>
<p>Blending the useful combination of Twitter and Remember the Milk into our commonplace IM communication seems like the way to make this shared task tracking finally stick. Instead of telling each person something the moment it pops into my head, regardless of what either of us is doing, I can simply IM it off to RTM to be added to their task list. They then receive reminders by IM of their current tasks from the RTM contact. Nothing gets buried in the chat log or inbox. They don&#8217;t need to log into RTM daily to be reminded of tasks we&#8217;ve given each other.</p>
<p>My hope in writing this article is giving you something to forward to your usual suspects, who will then rush onward to make your mutual existences more painless and dependable.</p>
<p>If anyone has other mashups like this I&#8217;d love to hear about them.</p>
<p>Here&#8217;s the 5 minute rundown:</p>
<p><strong>Sign up with Twitter</strong></p>
<p>Visit <a href="https://twitter.com/signup" target="_blank">https://twitter.com/signup</a></p>
<p>Feel free to follow my updates for future tips: <a href="http://twitter.com/jstanden" target="_blank">http://twitter.com/jstanden</a></p>
<p><strong>Integrate Twitter with IM</strong></p>
<p>In Twitter: Settings-&gt;Phone &amp; IM</p>
<p>Register your IM account and verify it as instructed.</p>
<p><strong>Sign up with Remember the Milk</strong></p>
<p>Visit <a href="http://www.rememberthemilk.com/signup/" target="_blank">http://www.rememberthemilk.com/signup/</a></p>
<p>Add your IM account to: Settings-&gt;Reminders-&gt;&#8221;I want to be reminded by&#8221;</p>
<p><strong>Integrate R.T.M. with Twitter</strong></p>
<p>Follow &#8216;rtm&#8217; on Twitter: <a href="http://twitter.com/rtm" target="_blank">http://twitter.com/rtm</a></p>
<p>Visit: <a href="http://www.rememberthemilk.com/services/twitter/" target="_blank">http://www.rememberthemilk.com/services/twitter/</a></p>
<p>Enter your Twitter username and follow the simple verification step. This page also contains a very neat list of commands for remote controlling your RTM account through through your IM account.</p>
<p><strong>Done!</strong></p>
<p>That&#8217;s it! If you have any questions or run into any trouble, I&#8217;d be happy to help in the comments.</p>
<p><strong>Update:</strong> Lifehack has an excellent summary of <a href="http://www.lifehack.org/articles/lifehack/twitter-use-it-productively.html" target="_blank">using Twitter productively</a> with a great list of examples.</p>
<p><strong>Update #2:</strong> I found another <a href="http://www.jakebouma.com/2007/12/04/tweet-better-9-unconventional-and-slightly-badass-ways-to-use-twitter/" target="_blank">great list of Twitter mashups</a> on Digg from Jake Bouma, and this <a href="http://www.caroline-middlebrook.com/blog/guide-to-twitter/" target="_blank">Big Juicy Guide to Twitter</a> from Caroline Middlebrook.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=7l0xOm0k"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=W7lU92GF"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=UMHo1tCM"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=UMHo1tCM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/04/how-to-share-tasks-in-a-dependable-way-that-your-team-will-actually-use/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running Ads with Federated Media and FeedBurner: Consolidation is Good</title>
		<link>http://www.jeffstanden.com/blog/2007/12/03/federated_media_and_feedburner/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/03/federated_media_and_feedburner/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 18:30:00 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[mindshare]]></category>

		<category><![CDATA[startup life]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[cashflow]]></category>

		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/03/federated_media_and_feedburner/</guid>
		<description><![CDATA[
Photo by Scott Beale / Laughing Squid
&#160;
Scanning through the November 2007 analytics for www.cerberusweb.com shows 34% of our traffic comes from Google search results.  We&#8217;ve always had a strong “word of mouth” factor in our marketing, but sometimes we get a bit too proud of that and overlook the benefits of fresh traffic from [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in"><img src="http://www.jeffstanden.com/post_images/2007_12/20071203_federatedmedia.jpg" alt="Federated Media" border="0" height="297" width="450" /><br />
<a href="http://www.laughingsquid.com/" target="_blank" style="color: #787878">Photo by Scott Beale / Laughing Squid</a></p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">Scanning through the November 2007 analytics for <a href="http://www.cerberusweb.com/">www.cerberusweb.com</a> shows 34% of our traffic comes from Google search results.  We&#8217;ve always had a strong “word of mouth” factor in our marketing, but sometimes we get a bit too proud of that and overlook the benefits of fresh traffic from paid advertising campaigns.  To a proud software developer, paying for ads almost feels like prostitution.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">In the past we&#8217;ve advertised with iNET Interactive (on Hotscripts.com and WebHostingTalk.com) and used Google&#8217;s AdWords.  Both of those options brought in fresh clicks, but both also delivered a majority of their traffic with an incredibly high bounce rate (people leaving after a single page) and a very short time spent looking through our site (usually mere seconds).  With our natural search results doing so well on Google we eventually abandoned AdWords.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">Since we&#8217;ve just finished up a 9 month development marathon of getting our new 4.0 release into people&#8217;s hands, we&#8217;ve been taking a survey of our new media advertising options.  Things have changed quite a bit in the past couple years.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">I took a quick glance through the sites for Slashdot and Freshmeat since they tend to send us a lot of traffic.  It looks like OSTG also removed the self-service advertising portal, though they joined up with the FeedBurner Ad Network.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">I also took a look at how Merlin Mann served ads over at <a href="http://www.43folders.com/" target="_blank">43Folders</a>, since his “Inbox Zero” philosophy has a lot of common themes with our web-based helpdesk software.  He&#8217;s using Federated Media.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">There seems to be a consolidation trend by blogs toward <a href="http://www.federatedmedia.net/" target="_blank">Federated Media</a> and <a href="http://www.feedburner.com/" target="_blank">FeedBurner</a>, along with a few niche and exclusive networks like <a href="http://www.coudal.com/deck/">The Deck</a>.  We definitely wanted to advertise to these blog readers who were already interested in productivity and group e-mail management.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">Both Federated Media and FeedBurner offer self-serve, web-based advertising portals.  You can log in, select your audience, upload your creatives, schedule the campaigns and pay through PayPal in a matter of minutes.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">On Federated Media&#8217;s network we selected an initial audience of: 43Folders, TechCruch, Mashable and VentureBeat readers.  Mashable was a long-shot, since it&#8217;s practically an anti-productivity site, but we felt a kinship with the spirit of mashing web applications.  We mixed textual and leaderboard (728&#215;90) graphical banners.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in"><img src="http://www.jeffstanden.com/post_images/2007_12/20071203_feedburner.jpg" alt="Feedburner" border="0" height="310" width="450" /><br />
<a href="http://www.flickr.com/photos/somewhatfrank/273920092/" target="_blank" style="color: #787878">Photo by Somewhat Frank</a></p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">FeedBurner offers you a choice of Networks and Channels, which group together subscribers and feeds, respectively, into simple packages like “Venture Capital” and “Digital Culture”.  We chose to advertise to the Venture Capital and Entrepreneur networks.  This gave us coverage on about 230 blogs, which was also useful for wide-scale brand exposure.  We only ran textual ads with FeedBurner.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">Our initial batch of ads went live the following morning.  The campaign had a simple message to try out: “The biggest obstacle in replying to your daily e-mail shouldn&#8217;t be your inbox”.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">We use Google Analytics to monitor traffic on our websites.  Federated Media and FeedBurner also offer simple “click” statistics for your campaigns.  It was easier to just follow along using their interfaces, since our primary mission was to figure out which audiences responded the best to our message and then throw our money behind those campaigns.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">After two weeks, the top result with Federated Media was rather surprising.  43Folders did very well, as expected.  Mashable and VentureBeat did abysmal, which wasn&#8217;t a big shock.  But it was <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a> that was the undisputed champion in delivering high-quality eyeballs to our project website.  It brought in more clicks than all the others combined and doubled, at a cost of about $2.66 per click.  One sale buys us around 188 more clicks (in theory, since you can also buy run-of-site text ads for a week that don&#8217;t count impressions).</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">On the FeedBurner side, the Entrepreneur network had a decent click-through rate but very few impressions – reasonable, since it only counted for 15 blogs in the total coverage.  The Venture Capital network, however, brought in far more clicks than all of our ads at Federated Media.  The average cost-per-click was $3.52.  One sale buys us around 142 more clicks – 75% of what TechCrunch delivers, but to a much bigger audience (230 blogs vs 1).  That wide-scale branding is worth a small trade-off, and there is room in our future campaigns for both.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">In the end, we decided to make TechCrunch, 43Folders and the Venture Capital network at FeedBurner the backbone of our new paid advertising campaigns.  We&#8217;re anxious to continue exploring the various sites and channels provided by both networks.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">I don&#8217;t really have anything bad to say about our experience with either.  I found myself wishing FeedBurner would summarize clicks by the individual sites in each channel (it&#8217;s pretty obvious why they don&#8217;t).  You can still infer the sources through Google Analytics.  My only trivial complaint with Federated Media was their ad inventory has sold out on popular sites between our campaigns.  I doubt people want to see even more ads on blogs, so the real answer is for both networks to continue growing and encompassing more blogs with topics we feel an affinity with.</p>
<p style="margin-bottom: 0in">&nbsp;</p>
<p style="margin-bottom: 0in">It&#8217;s probably not the smartest business move to disclose where we&#8217;re finding success with our advertising &#8212; but it&#8217;s healthy for the blogging community as a whole to promote funding for those who are freely sharing knowledge and not holding back.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=ouoK4BUG"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=w38vHQxS"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=hNwBP07p"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=hNwBP07p" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/03/federated_media_and_feedburner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Split Early Profits in a Bootstrapped Software Startup</title>
		<link>http://www.jeffstanden.com/blog/2007/12/03/how-to-split-early-profits-in-a-bootstrapped-software-startup/</link>
		<comments>http://www.jeffstanden.com/blog/2007/12/03/how-to-split-early-profits-in-a-bootstrapped-software-startup/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 08:00:34 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[startup life]]></category>

		<category><![CDATA[cashflow]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/blog/2007/12/03/how-to-split-early-profits-in-a-bootstrapped-software-startup/</guid>
		<description><![CDATA[
Photo by Jeff Standen
Naturally, not all businesses have a choice of whether or not they&#8217;re going to be funded or bootstrapped. Some business plans will always require major equipment, inventory, real-estate, licensing or other initial costs that simply cannot be paid for by actual customers voting with their wallets. A software company, on the other [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071203_bootstrapping.jpg" alt="Story day at the office" border="0" /><br />
<a href="http://www.flickr.com/photos/jstanden/489219431/" target="_blank" style="color:rgb(120,120,120);">Photo by Jeff Standen</a></p>
<p>Naturally, not all businesses have a choice of whether or not they&#8217;re going to be funded or bootstrapped. Some business plans will always require major equipment, inventory, real-estate, licensing or other initial costs that simply cannot be paid for by actual customers voting with their wallets. A software company, on the other hand, simply requires a computer, a desire to constantly learn new things, a great idea, and the ability to spend most of your day (or night) staring into the embracing glow of a computer screen.</p>
<p>When you aren&#8217;t bootstrapping a software startup you usually have the funds available to pay people a competitive salary, grant stock options, or give them an environment that&#8217;s so engaging they&#8217;re willing to trade a bit of their paycheck to work on &#8220;the next big thing&#8221;. Everybody can still pay rent. There likely isn&#8217;t a founder sitting there thinking about how many sales it takes to keep the lights on (just how many sales it takes to bank a million). The downside is you can spend too much time having fun in &#8220;abstract business plan land&#8221; and burn through your funding without setting up the infrastructure required to generate a sustainable money train.</p>
<p>When you are bootstrapping a software startup you usually can&#8217;t avoid setting up the infrastructure for creating the money train, because you likely wouldn&#8217;t survive more than a few weeks without something in place early on. This organic growth is incredibly dependable as things mature because you always know people are willing to pay for your expertise or service. There is nothing hypothetical about the plan. You can feel the pulse of your business, and the merit of your ideas, by the flow of cash from customers into your business. However, many homegrown businesses don&#8217;t get off the ground (or out of the spare bedroom) because of the glaring catch-22 prescribed by &#8220;it takes money to make money&#8221;.</p>
<p>(I think I&#8217;ve pumped the maximum amount of sunshine into the bootstrapping side of the equation.)</p>
<p>My current software company was born in the second camp, initially funded by credit cards and a lot of founder-donated, unpaid overtime. We had no lack of late nights spent clicking away on keyboards, appeasing compilers and cursing out Internet Explorer. Yet, 6 years ago, we sold our first copy of our first product within 2 months of picking a name and writing the first line of code. (yes, it was a time of many &#8220;firsts&#8221;).</p>
<p>Ever since that first early sale, we&#8217;ve adopted a policy of rapid development and letting sales be the barometer of how well we were spending our time. If we weren&#8217;t responding to community feedback, or we ignored glaring problems to work on more glamorous ones, money would stop flowing in and we&#8217;d go bust &#8212; or at the least we&#8217;d be playing a game of &#8220;rent, ads, electricity, health insurance, DSL. Pick any two.&#8221; We&#8217;ve designed the company to maximize that constructive pressure, and it persists even six years later.</p>
<p>This seems like a rather common-sense revelation at a glance: &#8220;people pay you more when you&#8217;re doing your job better, and less when you aren&#8217;t&#8221;. But it&#8217;s not that simple, because it&#8217;s so easy to separate sales and development into two isolated groups that only work together when, and because, they have to.</p>
<p>It&#8217;s much more difficult to tie every single founder and partner to the cashflow of the business, so that development knows how to help sales to its job and vice-versa. We can dig into that collaboration in future blog posts. For now, let&#8217;s skip ahead to what to do when money starts trickling in.</p>
<p>Obviously, if you have $8,000/month in early sales you can&#8217;t mandate that Dwight the lead programmer makes $75,000/year and Jim in sales has a base salary of $40,000/year plus commission. (If you haven&#8217;t had your coffee yet, the explanation is that those numbers add up to at least $9,584/month and don&#8217;t even include business expenses or other payroll &#8212; the money just isn&#8217;t there).</p>
<p>You certainly don&#8217;t want to start keeping an I.O.U. from the company to the partners, to be paid back &#8220;when you make money&#8221;. That is important, and it warrants repeating: Do not set up I.O.U. salaries.</p>
<p>All that is going to happen with an I.O.U. salary is complacency, and inevitably a founder will leave and expect to cash out their accrued &#8220;overtime&#8221; balance. If the company isn&#8217;t producing money, nobody deserves anything at the current point. You can&#8217;t avoid that if someone is leaving and divesting stock/options, but don&#8217;t fall into that trap with salaries.</p>
<p>However, it&#8217;s certainly a good idea to know roughly what each person is contributing and how that should translate to a realistic target salary. The process of determining that should be transparent and candid, and involve all the partners. In our previous example, if sales balanced perfectly with payroll, Dwight would take a 65.2% split and Jim would take a 34.8% split. Those splits are distributions of profits, as you always have to pay business expenses first.</p>
<p>What I would advise for Dwight and Jim is this:</p>
<blockquote><p><strong>1.</strong> Set up a simple spreadsheet with three columns. The middle column would hold the target salaries, the column to the left would hold a scenario of &#8220;less than ideal&#8221; income, and the right column would be &#8220;bonus&#8221; income.</p>
<p><strong>2.</strong> The top of the spreadsheet, above the salaries, would contain all the immutable expenses of the business, such as: rent, DSL, health insurance, ads and utilities. There should also be a miscellaneous category of historically-averaged discretionary spending (for books and snacks), and a &#8220;slack&#8221; category to ensure some profits are returning to the company every split.  The slack can be used as a buffer during bad weeks, or as a war chest for investing (e.g., hiring new people, expanding, unexpected expenses or repairs, or literally investing in some asset).</p>
<p>By my plan, the amount distributed to the buffer is completely arbitrary and might change often or cease entirely after a specific amount is saved. It really depends on everyone&#8217;s comfort level, but you should strive to split as much of your early profits as possible.</p>
<p>If you chase the pot of gold at the end of the rainbow too long, you&#8217;re going to get there alone, in poor health, with less friends than you started with &#8212; if you get there at all.</p>
<p><strong>3.</strong> Every Friday the gross income should plug into the top of the spreadsheet. It should then percolate through the expenses and buffer (which are represented by their weekly costs). The resulting remainder is the net profit. This is the amount you actually have available to pay everyone.</p>
<p>Set up the spreadsheet to use the middle column (salary targets) as percentages. These establish the proportions for the columns on either side.  For example, the ideal salaries from the example above required $9,600 per month, which is about $2,240 per week.</p>
<p>If $1,500 of net profit comes in the door this week, Dwight gets $978 (65.2%) and Jim gets $522 (34.8%).</p>
<p>If $3,000 of net profit comes in the door this week, Dwight gets $1,956 (65.2%) and Jim gets $1,044 (34.8%).</p>
<p>The reason you set up 3 columns is so you can play &#8220;what if&#8221; with your income during the week (better or worse than the goal).  Usually I have the current income in the left column  until it passes the goal, and the right column is always set to an attainable bonus goal to give us something to constantly strive toward.</p>
<p><strong>4.</strong> At some point, it&#8217;s no longer going to be realistic to split 100% of the profit between the partners. At our company we currently set this cap at 120% of our target salaries, as long as we have a good business use planned for the remainder (buying more ads, hiring more people, investing in more assets). We won&#8217;t cap splits if the only thing we can think of doing is creating a big pile of &#8220;buffer&#8221; money and then swimming around in it.</p>
<p><strong>5.</strong> Re-balance the target salaries when you&#8217;re constantly passing them or when you add new partners.</p></blockquote>
<p>As you can imagine, it takes a lot of trust and candor to set up a system like this, where everyone can plainly see how much the business values their input against everyone else. Target salaries should be established by the group and voted on. If you&#8217;re running a proper meritocracy (this is the software industry, after all!) it&#8217;s probably pretty clear to everyone already what is brought to the table in terms of time, experience and talent.</p>
<p>If you don&#8217;t think your group can handle individualized valuations, then just establish salaries per role. But leave yourself the option to reward all-stars. You can quickly rationalize to the naysayers that this person will make slightly more, but so will everyone else though their efforts at boosting the overall income. You don&#8217;t want to burn out an all-star any more than you want to constantly cater to a naysayer.</p>
<p>Having the burden of expenses clearly shouldered by (and apportioned to) the entire group also helps trim needless spending from the startup&#8217;s budget.</p>
<p>We&#8217;ve carried this system into our 6th year of business and adjusted it as new partners came on-board or our expenses grew. We&#8217;ve added payroll employees as expenses at the top of the spreadsheet. We&#8217;ve regularly gone through the expense categories as a group and looked for waste. This transparent system has focused everyone&#8217;s eyes on the bottom line &#8212; and we&#8217;re a leaner and more efficient company because of it.</p>
<p>If you&#8217;ve bootstrapped a startup with full-time partners, how did you decide to distribute cash before there was enough to go around?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=oWMIVvBZ"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=PfTEqcXj"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=L0MxqPIV"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=L0MxqPIV" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/12/03/how-to-split-early-profits-in-a-bootstrapped-software-startup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How I Learned to Stop Worrying and Love the Tax Day Stock Bomb</title>
		<link>http://www.jeffstanden.com/blog/2007/11/30/how-i-learned-to-stop-worrying-and-love-the-tax-day-stock-bomb/</link>
		<comments>http://www.jeffstanden.com/blog/2007/11/30/how-i-learned-to-stop-worrying-and-love-the-tax-day-stock-bomb/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 00:16:22 +0000</pubDate>
		<dc:creator>Jeff Standen</dc:creator>
		
		<category><![CDATA[smart money]]></category>

		<category><![CDATA[startup life]]></category>

		<category><![CDATA[cashflow]]></category>

		<category><![CDATA[investing]]></category>

		<guid isPermaLink="false">http://www.jeffstanden.com/wordpress/2007/11/30/how-i-learned-to-stop-worrying-and-love-the-tax-day-stock-bomb/</guid>
		<description><![CDATA[
Photo by rednuht
First, the necessary disclaimer: I like risk &#8212; a lot. And chances are I don&#8217;t know you or your financial situation. My thoughts on investing should be considered entirely anecdotal. Nothing I say should be construed as financial advice that has you, or your best interests, in mind. I have no problem risking [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jeffstanden.com/post_images/2007_12/20071130_stocks.jpg" alt="Stock market" border="0" height="239" width="450" /><br />
<a href="http://www.flickr.com/photos/rednuht/479370088/" target="_blank" style="color:rgb(120,120,120);">Photo by rednuht</a></p>
<p><strong>First, the necessary disclaimer:</strong> <em>I like risk &#8212; a lot. And chances are I don&#8217;t know you or your financial situation. My thoughts on investing should be considered entirely anecdotal. Nothing I say should be construed as financial advice that has you, or your best interests, in mind. I have no problem risking all my own money, but don&#8217;t weigh down my conscience by vicariously investing yours based solely on something you read online.</em></p>
<p>As a partner in an American LLC I&#8217;m responsible for my own tax planning. Tax, social security or Medicare are not withheld from my paycheck. Partners pay estimated taxes and self-employment taxes to cover what&#8217;s usually withheld by employee payroll.</p>
<p>Since I learned a lot of my business acumen from survival situations, I&#8217;ve developed a love for Opportunity Cost, and a hatred for not maximizing funds (like, say, paying for a year of car insurance in advance instead of investing the excess).</p>
<p>For the past couple years I&#8217;ve been lumping my personal tax savings in with my regular weekly investments. That means, while I&#8217;m responsibly setting aside enough money for taxes, I&#8217;m riskily throwing that money into the stock market to be potentially consumed by mass paranoia or emotional stock picking. It also establishes a terrible thing in investing &#8212; a deadline. I pay my full lump sum of taxes in April along with a penalty for not prepaying using estimates. That penalty is around 7%, but it&#8217;s capped at 7% of my total taxable income for the previous year. It&#8217;s a calculated risk.</p>
<p>Supposedly, capping the penalty to your previous year&#8217;s income is forgiveness for your inability to plan for unexpected raises or windfalls during the current year. According to the IRS, you should always estimate by paying at least as much as your taxes from the past year. That&#8217;s reasonable. If you don&#8217;t estimate enough, they tack on a penalty because you didn&#8217;t allow them to squander any of your hard-earned money before April 15th.</p>
<p>As a partner with a major material impact on my company, and a direct share of profits, I&#8217;ve been safe in assuming I&#8217;ll take home over 7% more for each year I spend building the business. So far things have been good and it&#8217;s been well over that.</p>
<p>So my entire game with investing taxes throughout the year is trying to beat a 7% return with enough extra profit to make the risk-taking worthwhile. In reality, since I make and invest more each year, the target is a bit less than the full 7% penalty. If I play it too safe, I&#8217;m not going to beat the market and I would have saved money by just paying my estimated taxes. If I play it too loose, I&#8217;ll lose some of my principal on top of still paying full taxes and penalties.</p>
<p>Just before the recent market dip this November I was running about 35% ROI for my entire portfolio (including gains on recent deposits). At the moment it&#8217;s about 25%, but that&#8217;s still plenty to make this risk worthwhile.</p>
<p>To take on this reasonable risk I&#8217;ve found myself coming back to a couple habits. I&#8217;m sure fragments of these habits were picked up from learning and reading over the years, and a lot of them are common sense. However, sometimes there&#8217;s a longer road to a common sense answer and a shorter road to a convoluted one (due to the convolution often being more fun/interesting/challenging). I don&#8217;t claim these tenets form some proven system, that it&#8217;s reproducible, or that it&#8217;s even unique. It&#8217;s just what I&#8217;ve found works for me.</p>
<ol>
<li><strong>I forget that the numbers in my portfolio represent cash-money dollars that I can buy things with.</strong><br />
If I was constantly measuring gains or losses in HDTVs, Macbook Pros or new cars then I&#8217;d drive myself crazy and I&#8217;d start to get apprehensive. I remind myself that the swings, up and down, don&#8217;t matter until I actually pull my cash back out of the market. In long-term investing you can generally wait as long as it takes to get paid &#8212; or at least until you see a much better deal that can offset your losses. I still have to respect my Tax Day deadline.</li>
<li><strong>I stay blissful when the market is panicking.</strong><br />
I always know what I want to be buying. All my watch lists show the current price between the 52 week low and 52 week high, with the P/E ratio, growth rate, EPS estimates and volume following immediately. I get really familiar with my watch list stocks so I know the range they like to run around in, how they react to good/bad news, and if they&#8217;re commonly manipulated by big money before noteworthy events (*cough*, AAPL). I&#8217;m not trying to &#8220;time&#8221; my buys in the trading vs. investing sense &#8212; it&#8217;s just all about perspective when everyone else is emotional. I love to &#8220;stock up&#8221; from my wishlist during a good cathartic market dip. I plan to go long on all the things I buy. I&#8217;m holding many of those buys well beyond Tax Day.</li>
<li><strong>I limit my lovin&#8217; to 10 stocks at a time.</strong><br />
One of my early mistakes in buying stocks was having so many &#8220;good&#8221; ideas that I was essentially running my own mutual fund. Any great picks I had were averaged out by the overwhelmingly mediocre ones. I had a really hard time staying ahead of the market while doing that. Today I limit myself to no more than 10 individual stocks at a time, which forces me to focus and properly capitalize those picks. I never have to worry about not having enough &#8220;oomph&#8221; behind a well-researched pick that pops, and if a stock really takes a beating I&#8217;m familiar enough with it to know whether to kick it to the curb or buy more at a discount. (Since it&#8217;s one of my privileged 10 I&#8217;m usually buying more when something temporarily drops.)</li>
<li><strong>I focus on my overall market value (balance) more than my gains.</strong><br />
Since my goal is accumulating money, for taxes and the freedom to do what I want in life, I try to stop myself from hyper-focusing on the gains of a specific stock or my portfolio as a whole. Because I deposit money into my brokerage account weekly I&#8217;m constantly pulling my total gain down slightly, but my balance (with gains and deposits) is constantly going up. That doesn&#8217;t mean I ignore stocks that are going down, or that I don&#8217;t cull stocks with bloated gains, it just means I stop pretending my game is trying to hit 200% on AAPL or 50% on the whole portfolio. I&#8217;d have to start employing counterproductive tricks to keep overall gains that high. By watching the balance I don&#8217;t lose perspective of the big picture during a dip.</li>
<li><strong>I compete with and against friends.</strong><br />
I find it much easier to adhere to my rules when I&#8217;m constructively competing against friends who have their own investing methodologies. Some of my excessive love affair with risk is tempered by looking at what more moderate (or even risk-adverse) friends are doing, and how well it&#8217;s working out for them. It&#8217;s also really encouraging when my strategy hits higher highs without having lower lows. Despite the benefits of camaraderie, it wouldn&#8217;t be nearly as much fun if we all tried to do the same thing &#8212; but a little overlap on a stock pick where two of our strategies meet is a lot of fun.</li>
<li><strong>I &#8220;double down&#8221; when the market forces irrational losses.</strong><br />
If a stock I&#8217;ve done my homework on starts dropping, rather than trying to sell my positions for a better entry point later, I find myself just buying more. This is often referred to as pyramid buying, because you start with a smaller position to test the waters and you buy increasingly more as you&#8217;re more confident the bottom of a crashing stock is near. This is a really risky tactic, and it&#8217;s something I only do when I&#8217;m completely convinced the market is being irrational and applying market or industry paranoia to a specific stock that doesn&#8217;t deserve it. Some people appropriately call this strategy &#8220;trying to catch a falling pencil&#8221; (a lesson I only had to learn once in elementary school). I try to keep in mind that the perceived stock price and the value of a company are often two completely different things &#8212; but over enough time they generally come back into harmonization and complement each other.</li>
<li><strong>I enjoy myself.</strong><br />
Managing my stocks this closely would probably feel like a part-time job I had to do each morning if it wasn&#8217;t such a fun game. &#8220;Down days&#8221; require a completely different strategy than &#8220;up days&#8221;. Each of my 10 stocks in this portfolio feel like a chess piece that is benefiting from, or defending against, specific events. The picks work together, and often I&#8217;ll watch as one or two pick up the slack while the others are getting beat up. Some days everybody except one or two is having a party, and they tell the down stocks &#8220;Don&#8217;t worry, we&#8217;ve got ya covered! You saved our ass last time.&#8221;</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeffstanden?a=csThI3Nl"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=KbnI0BXz"><img src="http://feeds.feedburner.com/~f/jeffstanden?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffstanden?a=kG16uBwa"><img src="http://feeds.feedburner.com/~f/jeffstanden?i=kG16uBwa" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.jeffstanden.com/blog/2007/11/30/how-i-learned-to-stop-worrying-and-love-the-tax-day-stock-bomb/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
