<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ecommerce trends, online retail news and opinion, user experience design : Our Blog : Alexander Interactive</title>
	<atom:link href="http://www.alexanderinteractive.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alexanderinteractive.com/blog</link>
	<description>The pulse of Alexander Interactive</description>
	<lastBuildDate>Fri, 03 May 2013 15:10:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>wEbVOLUTION Timeline</title>
		<link>http://www.alexanderinteractive.com/blog/2013/04/webvolution-timeline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webvolution-timeline</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/04/webvolution-timeline/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 19:27:36 +0000</pubDate>
		<dc:creator>Elyse Tanzillo</dc:creator>
				<category><![CDATA[Ai]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Alexander Interactive]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6929</guid>
		<description><![CDATA[A history lesson and evolution timeline brought to you by Ai&#8230; 1993 The World Wide Web debuted to the public, for free, 20 years ago today. Yup, only 20 years ago. Here was the first website, which has been re-released by CERN for this occasion: 1996 Our founder, Alex Schmelkin, made his first website for... <a href="http://www.alexanderinteractive.com/blog/2013/04/webvolution-timeline/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p>A history lesson and evolution timeline brought to you by Ai&#8230;</p>
<h2>1993</h2>
<p>The <a href="http://www.huffingtonpost.com/2013/04/30/world-wide-web-birthday-2012_n_3184531.html?utm_hp_ref=technology">World Wide Web debuted to the public, for free, 20 years ago today</a>. Yup, only 20 years ago. Here was the first website, which has been re-released by CERN for this occasion:</p>
<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-1993.png"><img alt="First WWW web site" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-1993.png" /></a></p>
<h2>1996</h2>
<p>Our founder, <a href="http://www.alexanderinteractive.com/company/alex">Alex Schmelkin</a>, made his first website for <a href="http://www.hofstra.edu">Hofstra University</a> 17 years ago. Check it out:</p>
<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-1996.png"><img alt="Alex's first web site" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-1996.png" /></a></p>
<h2>2002</h2>
<p>The year Ai’s created its VERY FIRST WEBSITE. The lucky client?<a href="http://www.donorschoose.org/"> DonorsChoose.org</a></p>
<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2002.png"><img alt="Ai's very first web site" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2002.png" /></a></p>
<h2>2003</h2>
<p>We developed our first ecommerce website for <a href="http://www.fragrancenet.com">FragranceNet.com</a>. FragranceNet.com is ranked 153 on the Internet Retailer Top 500.</p>
<p style="margin-bottom: 25px"><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2003.png"><img alt="FragranceNet.com" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2003.png" /></a></p>
<h2>2013</h2>
<p>That’s now! This month we launched <a href="http://www.myringpop.com">MyRingPop.com</a>, with e-commerce and custom product configuration. Voila!</p>
<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2013.png"><img alt="MyRingPop.com" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/webvolution-2013.png" /></a></p>
<p>Any guesses what websites will look like and what technologies will be important in another 20 years?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/04/webvolution-timeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ladies and lords of Ai take a trip to Medieval Times</title>
		<link>http://www.alexanderinteractive.com/blog/2013/04/ladies-and-lords-of-ai-take-a-trip-to-medieval-times/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ladies-and-lords-of-ai-take-a-trip-to-medieval-times</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/04/ladies-and-lords-of-ai-take-a-trip-to-medieval-times/#comments</comments>
		<pubDate>Sun, 21 Apr 2013 13:48:04 +0000</pubDate>
		<dc:creator>Josh Levine</dc:creator>
				<category><![CDATA[Ai]]></category>
		<category><![CDATA[Funny Stuff]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[morgan freeman]]></category>
		<category><![CDATA[road trip]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6888</guid>
		<description><![CDATA[Noble. Magical. Enchanting. New Jersey. Well played team. Well played.]]></description>
				<content:encoded><![CDATA[<p>Noble. Magical. Enchanting. New Jersey. Well played team. Well played.</p>
<div id="attachment_6910" class="wp-caption alignleft" style="width: 550px"><a href="https://www.facebook.com/media/set/?set=a.10152699623075632.1073741826.214680950631&amp;type=1"><img class="size-full wp-image-6910" alt="The lines were been drawn. The Houses were declared. Onward" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/house-of-ai.jpg" width="540" height="739" /></a><p class="wp-caption-text">The lines were drawn. The Houses were declared. Onward</p></div>
<div id="attachment_6896" class="wp-caption alignleft" style="width: 550px"><a href="https://www.facebook.com/media/set/?set=a.10152699623075632.1073741826.214680950631&amp;type=1"><img class="size-full wp-image-6896" alt="A joyous feast of texas toast, chicken and meat water soup." src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/539575_10152699836100632_1306707134_n2.jpg" width="540" height="687" /></a><p class="wp-caption-text">A joyous feast of texas toast, chicken and meat water soup.</p></div>
<div id="attachment_6898" class="wp-caption alignleft" style="width: 550px"><a href="https://www.facebook.com/media/set/?set=a.10152699623075632.1073741826.214680950631&amp;type=1"><img class="size-full wp-image-6898" alt="House of Ai prepares for battle" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/882894_10152699623460632_989792665_o2.jpg" width="540" height="444" /></a><p class="wp-caption-text">House of Ai prepares for battle</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/04/ladies-and-lords-of-ai-take-a-trip-to-medieval-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ai Candy Shop</title>
		<link>http://www.alexanderinteractive.com/blog/2013/04/ai-candy-shop/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ai-candy-shop</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/04/ai-candy-shop/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 22:36:04 +0000</pubDate>
		<dc:creator>Alex Schmelkin</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Bazooka]]></category>
		<category><![CDATA[client launch]]></category>
		<category><![CDATA[Ring Pop]]></category>
		<category><![CDATA[sweet]]></category>
		<category><![CDATA[Topps]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6885</guid>
		<description><![CDATA[Thank you Topps and Bazooka Joe for the (absurdly generous) gift of AN ENTIRE CANDY STORE DISPLAY of Ring Pops. Will take some time to make our way through these. Jealous? Buy your own Custom Ring Pops at MyRingPop.com.]]></description>
				<content:encoded><![CDATA[<p>Thank you Topps and Bazooka Joe for the (absurdly generous) gift of <strong>AN ENTIRE CANDY STORE DISPLAY</strong> of Ring Pops. Will take some time to make our way through these.</p>
<p>Jealous? Buy your own <a href="http://www.myringpop.com">Custom Ring Pops</a> at <a href="http://www.myringpop.com">MyRingPop.com</a>.</p>
<div id="attachment_6915" class="wp-caption alignleft" style="width: 550px"><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/ringpop-freight.jpg"><img class="size-full wp-image-6915" alt="A lifetime supply fo RIng pops - courtesy of our client Topps" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/ringpop-freight.jpg" width="540" height="462" /></a><p class="wp-caption-text">A lifetime supply of Ring Pops – courtesy of the fine folks at Topps.</p></div>
<div id="attachment_6914" class="wp-caption alignleft" style="width: 550px"><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/04/ring-pop-launch-party.jpg"><img class="size-full wp-image-6914" alt="Setting up for the MyRingPop.com launch party" src="http://cdn.at.ai/blog/wp-content/uploads/2013/04/ring-pop-launch-party.jpg" width="540" height="403" /></a><p class="wp-caption-text">Setting up for the MyRingPop.com launch party</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/04/ai-candy-shop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digital Directors</title>
		<link>http://www.alexanderinteractive.com/blog/2013/03/digital-directors/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=digital-directors</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/03/digital-directors/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 17:08:42 +0000</pubDate>
		<dc:creator>Alex Schmelkin</dc:creator>
				<category><![CDATA[Strategy]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6861</guid>
		<description><![CDATA[I recently shared some thoughts with Directors &#38; Boards Magazine on the critical importance for corporate boards to recruit Directors with backgrounds in technology and digital media. On the topic of recognizing the importance of digital in today&#8217;s business model: Corporate boards that lack leaders who are fluent in digital media are doing their shareholders ￼a disservice. Every... <a href="http://www.alexanderinteractive.com/blog/2013/03/digital-directors/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.directorsandboards.com/index.html"><img class="alignleft size-full wp-image-6865" alt="Recruit Digital Directors to Corporate Boards" src="http://cdn.at.ai/blog/wp-content/uploads/2013/03/Directors-Boards-Recruit-Technology-Schmelkin.png" width="550" height="95" /></a></p>
<p>I recently shared some thoughts with <a title="Recruiting technology directors to public boards" href="http://www.directorsandboards.com/html/curissue.html">Directors &amp; Boards Magazine</a> on the critical importance for <a href="http://cdn.at.ai/blog/wp-content/uploads/2013/03/hud.jpg">corporate boards</a> to recruit Directors with backgrounds in technology and digital media.</p>
<p>On the topic of recognizing the importance of digital in today&#8217;s business model:</p>
<blockquote><p>Corporate boards that lack leaders who are fluent in digital media are doing their shareholders ￼a disservice. Every industry, every corporation is being disrupted by the ever-shortening distance between brands and their consumers. It’s not enough for a board to expect management and their reports to understand the latest developments in social media, mobile innovations, and marketing. Instead, such strategies should be discussed at the highest levels, directly between the board and management, and incorporated into a company’s long-term plans.</p></blockquote>
<p>Read the entire article on <a href="http://cdn.at.ai/blog/wp-content/uploads/2013/03/Recruiting-Technology-Directors-Alex-Schmelkin.pdf">recruiting Directors with technology experience to corporate boards</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/03/digital-directors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GetTaxi Brings Israeli Startups to Ai Offices</title>
		<link>http://www.alexanderinteractive.com/blog/2013/03/gettaxi-brings-isreali-startups-to-ai-offices/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gettaxi-brings-isreali-startups-to-ai-offices</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/03/gettaxi-brings-isreali-startups-to-ai-offices/#comments</comments>
		<pubDate>Fri, 08 Mar 2013 23:28:51 +0000</pubDate>
		<dc:creator>John Childers</dc:creator>
				<category><![CDATA[Ai]]></category>
		<category><![CDATA[GetTaxi]]></category>
		<category><![CDATA[Tel Aviv]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6842</guid>
		<description><![CDATA[Ai&#8217;s office was proud to play host to GetTaxi&#8217;s Israeli tech startup gathering and Ron Huldai, the Mayor of Tel Aviv, this afternoon. A wide array of Isael-based tech companies met in our uber-comfy Sofaplex to discuss technologies ranging from mobile payment systems to personalized video advertisements their firms have developed. Host GetTaxi is an Israel-based smartphone app... <a href="http://www.alexanderinteractive.com/blog/2013/03/gettaxi-brings-isreali-startups-to-ai-offices/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/03/GetTaxiConference.png"><img class="alignright size-full wp-image-6848" alt="GetTaxiConference" src="http://cdn.at.ai/blog/wp-content/uploads/2013/03/GetTaxiConference.png" width="540" height="362" /></a></p>
<p>Ai&#8217;s office was proud to play host to <a title="GetTaxi" href="http://www.gettaxi.com/" target="_blank">GetTaxi&#8217;s </a>Israeli tech startup gathering and Ron Huldai, the Mayor of Tel Aviv, this afternoon. A wide array of Isael-based tech companies met in our uber-comfy Sofaplex to discuss technologies ranging from mobile payment systems to personalized video advertisements their firms have developed.</p>
<p>Host GetTaxi is an Israel-based smartphone app whose New York location is managed out of Ai&#8217;s NYC office. Their app, which is currently live in Tel Aviv, London, Moscow and St. Petersburg, digitally hails taxis for 10,000 rides per day. GetTaxi is planning on launching its New York City service this year.</p>
<p>Other companies that displayed their wares at today&#8217;s meeting included: Wix, Pango, BillGuard, ADagoo, Mobil, LoyalBlocks, and Eyeview.</p>
<p>&#8220;Tel Aviv is home to 700 startups,&#8221; said Huldai ,&#8221;and we are excited by those that spread their branches to include the Big Apple.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/03/gettaxi-brings-isreali-startups-to-ai-offices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability &amp; Design: When Does One Trump the Other?</title>
		<link>http://www.alexanderinteractive.com/blog/2013/02/this-just-in-from-the-internet-retailer-web-design-and-usability-conference-irwd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=this-just-in-from-the-internet-retailer-web-design-and-usability-conference-irwd</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/02/this-just-in-from-the-internet-retailer-web-design-and-usability-conference-irwd/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 20:39:09 +0000</pubDate>
		<dc:creator>Carolyn Freeman</dc:creator>
				<category><![CDATA[Ai]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6822</guid>
		<description><![CDATA[Josh Levine, Ai’s Chief Experience Officer, presented his session: “UX &#38; Design: When Does One Trump the Other?” with Jordan Lustig, Director of Product Management for Saks Fifth Avenue. The presentation explored the delicate balance and interplay between User Experience and Design in e-commerce website production from both a designer and retailer’s point of view.... <a href="http://www.alexanderinteractive.com/blog/2013/02/this-just-in-from-the-internet-retailer-web-design-and-usability-conference-irwd/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/02/BF4C4125-5B39-4F70-97BA-9850699A0437.png"><img class="alignnone size-full wp-image-6823" alt="Josh Levine, Ai’s Chief Experience Officer, presented his session: “UX &amp; Design: When Does One Trump the Other?” with Jordan Lustig, Director of Product Management for Saks Fifth Avenue. " src="http://cdn.at.ai/blog/wp-content/uploads/2013/02/BF4C4125-5B39-4F70-97BA-9850699A0437.png" width="540" height="396" /></a></p>
<p>Josh Levine, Ai’s Chief Experience Officer, presented his session: “UX &amp; Design: When Does One Trump the Other?” with Jordan Lustig, Director of Product Management for Saks Fifth Avenue.</p>
<p>The presentation explored the delicate balance and interplay between User Experience and Design in e-commerce website production from both a designer and retailer’s point of view.</p>
<p>Download the presentation <a title="Usability &amp; Design: When Does One Trump The Other?" href="http://www.slideshare.net/joshpacelevine/irwd-saksdeck0213final" target="_blank">here</a>.<a title="here" href="http://www.slideshare.net/joshpacelevine/irwd-saksdeck0213final"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/02/this-just-in-from-the-internet-retailer-web-design-and-usability-conference-irwd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technical Debt and The Planning Fallacy</title>
		<link>http://www.alexanderinteractive.com/blog/2013/02/technical-debt-planning-fallacy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=technical-debt-planning-fallacy</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/02/technical-debt-planning-fallacy/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 18:00:27 +0000</pubDate>
		<dc:creator>Matt Holford</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[estimating]]></category>
		<category><![CDATA[planning fallacy]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[technical debt]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6800</guid>
		<description><![CDATA[If you ask me how long it will take to do a familiar but substantial task, chances are I&#8217;ll give you a wrong answer. I will tell you, &#8220;That will take me two days,&#8221; when in fact it has never taken me two days. Perhaps it has always taken at least three, and usually four.... <a href="http://www.alexanderinteractive.com/blog/2013/02/technical-debt-planning-fallacy/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/field_museum_library/3607612855/"><img src="http://farm3.staticflickr.com/2434/3607612855_e0abe86f51.jpg" width="500" height="409" class /></a><p class="wp-caption-text">Construction of the Gatun lock, Panama Canal, 1912.</p></div>
<p>If you ask me how long it will take to do a familiar but substantial task, chances are I&#8217;ll give you a wrong answer. I will tell you, &#8220;That will take me two days,&#8221; when in fact it has never taken me two days. Perhaps it has always taken at least three, and usually four. But I’m unable to think accurately enough about the past to reach this conclusion, especially if you ask me directly. This is a rough explanation of the <a href="https://dl.dropbox.com/u/104177/ExploringThePlanningFallacy.pdf" rel="external"><strong>Planning Fallacy</strong></a>, one of the most fascinating and pervasive cognitive biases. We all suffer from it when we make estimates, and it is especially acute with off-the-cuff estimates intended for an audience. We feel the pressure of judgment on our estimates, and unconsciously seek approval by providing optimistic and incorrect numbers.</p>
<p><a href="http://en.wikipedia.org/wiki/Hofstadter%27s_law" rel="external"><strong>Hofstadter&#8217;s Law</strong></a> formulates the cognitive puzzle embedded in this fallacy:</p>
<blockquote><p><em>It always takes longer than you expect, even when you take into account Hofstadter&#8217;s Law.</em></p></blockquote>
<p>Knowing about the Planning Fallacy isn’t enough to escape its influence.</p>
<p>Multiply this estimation inaccuracy by a large number&mdash;a factor determined by the complexity of the project&mdash;and this accounts for the primary reason that most projects fail to deliver on time. The &#8220;padding&#8221; that individuals, their managers, and their managers&#8217; managers regularly add to work estimates is often whittled away during the piecemeal negotiation that falls between the estimation and commitment phases, leaving the original, overly optimistic estimates.</p>
<p>The bottom line is, and always has been, that estimates we make at the beginning of a project, because they are made in ignorance of the future, and because the Planning Fallacy distorts our thinking, all too often range from Pollyannaish to tragically mistaken. See Jim Benson’s <a href="http://www.personalkanban.com/pk/uncategorized/just-released-why-plans-fail-cognitive-bias-decision-making-and-your-business/" rel="external">Why Plans Fail</a> for a concise and revelatory spelunking into the depths of the planning mind.</p>
<p>When we allow a project to be bound by our initial estimates, whether they were constructed with the best of intentions but subject to the Planning Fallacy, hampered by a misunderstanding of the requirements, distorted to meet the demands of the client, or simply doomed to irrelevance by the inevitable array of exigencies that befall every project, we force reality into an inappropriate container.</p>
<p>But we still need to execute on the project plan, whatever its condition. Content strategy, UX, information architecture, conceptual design, applied design, rounds of approval and review: these initial phases may expand as they attempt to capture the entirety of emerging requirements, and subsequent phases become necessarily further compressed.</p>
<p>The technology team deals with this compressed time frame by (a) being galactic geniuses (I am not biased) and (b) making compromises. Compromises can be deliberative and explicit, panicked and hidden, or half-heartedly considered and partially documented by inline code comments.</p>
<p>Some compromises are driven by a clear-eyed assessment of the border between Minimally Sufficient and Fancy. Although programmers are <a href="http://threevirtues.com/" rel="external">famously lazy</a>, they are just as often driven (by Larry Wall’s #3, Hubris) to engineer the perfect solution where an adequate one is the optimal path. Choosing adequate over perfect means that we can reserve precious engineering time for the hairier tasks, or the unexpected but inevitable road bumps that put further pressure on development schedules: bugs in the platform or a crucial module, foibles of the programming language, unexpected complexity in meeting a functional requirement, iterations between UI design and software implementation, and so on.</p>
<p>We can <em>expect</em> road bumps, but we can’t <em>plan for</em> them. If we start a development cycle with an unrealistic schedule estimate, then we can just expect to be late from the start. In an atmosphere like this, ill-considered compromises are almost inevitable. These compromises constitute the primary source of technical debt introduced to a new code base. We can only hope that the developers at least take the time to add TODO-style comments to mark the code they’d like to refactor in the future.</p>
<p>You can find these later:</p>
<pre><code>$ find . -type f -exec grep -i todo {} \;</code></pre>
<p>(Try that in Magento Enterprise 1.12’s app/code directory: 171 of them. It happens to the best of us.)</p>
<p>There are basically two strategies here:</p>
<ol>
<li>Minimize bad technical debt<a href="#footnote1"><strong>*</strong></a> and stress by renegotiating the release schedule</li>
<li>Plan to address bad debt in a subsequent release</li>
</ol>
<p>#1 is vastly preferable. #2 is only possible if you can <a href="http://www.alexanderinteractive.com/blog/2013/01/technical-debt-in-your-bug-tracker/">isolate and track the debt</a>, and push off developing new features in favor of addressing old problems. This often requires a heightened level of transparency between the technical and business teams. Otherwise, building new features on top of crufty, debt-ladened code will hinder progress on the features, slow your development velocity, increase the overall error rate, and reduce your ROI by alarming numbers.</p>
<p>How to minimize contact with this Planning-to-Debt problem: <em>Plan to revise your estimates.</em> Regardless of your project methodology and how it incorporates estimates, educate all project stakeholders as to the reality of estimation, if it’s not already abundantly clear. Help the team to understand that the process of estimation is more valuable than the estimates it produces.</p>
<p><a name="footnote1"><strong>*</strong></a> “Bad technical debt”: <a href="http://blog.mischel.com/2012/01/07/in-praise-of-technical-debt/" rel="external">Not all technical debt is bad</a>. Another useful distinction is <a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx" rel="external">short-term versus long-term debt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/02/technical-debt-planning-fallacy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come See Ai at IRWD</title>
		<link>http://www.alexanderinteractive.com/blog/2013/02/come-see-ai-at-irwd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=come-see-ai-at-irwd</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/02/come-see-ai-at-irwd/#comments</comments>
		<pubDate>Tue, 12 Feb 2013 23:21:38 +0000</pubDate>
		<dc:creator>John Childers</dc:creator>
				<category><![CDATA[Ai]]></category>
		<category><![CDATA[IRWD]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6790</guid>
		<description><![CDATA[Ai is back in Orlando, Florida, and we want to see you! We are at the Internet Retailer Web Design and Usability Conference at the Omni Orlando Resort at ChampionsGate. Our booth is #400 in the Conference Exhibit Hall, and we are discussing the latest and greatest in web design through tomorrow, Wednesday, February 13.... <a href="http://www.alexanderinteractive.com/blog/2013/02/come-see-ai-at-irwd/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/02/Josh_Presentation.png"><img class="alignright size-full wp-image-6792" alt="Design vs. Usability" src="http://cdn.at.ai/blog/wp-content/uploads/2013/02/Josh_Presentation.png" width="540" height="403" /></a></p>
<p>Ai is back in Orlando, Florida, and we want to see you!</p>
<p>We are at the Internet Retailer Web Design and Usability Conference at the Omni Orlando Resort at ChampionsGate. Our booth is #400 in the Conference Exhibit Hall, and we are discussing the latest and greatest in web design through tomorrow, Wednesday, February 13.</p>
<p>IRWD focuses on the latest strategies to communicate product quality, brand identity and increase conversion rates on the web.</p>
<p>Josh Levine, Ai&#8217;s Chief Experience Officer, will be presenting a session titled &#8220;UX &amp; Design: When Does One Trump the Other?&#8221; tomorrow at 1:30pm with Jordan Lustig, Director of Product Management for Saks Fifth Avenue. We would love to see you there. The presentation will discuss how to balance the best of user experience and design from both a designer and retailer&#8217;s point of view.</p>
<p><img class="alignright size-full wp-image-6794" alt="IRWD Booth 400" src="http://cdn.at.ai/blog/wp-content/uploads/2013/02/IRWDBooth400.jpg" width="541" height="403" /></p>
<p style="padding-left: 30px;">
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/02/come-see-ai-at-irwd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento core bug: Unable to save config changes</title>
		<link>http://www.alexanderinteractive.com/blog/2013/01/magento-core-bug-unable-to-save-config-changes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=magento-core-bug-unable-to-save-config-changes</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/01/magento-core-bug-unable-to-save-config-changes/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 16:16:41 +0000</pubDate>
		<dc:creator>Matt Holford</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6778</guid>
		<description><![CDATA[In the latest releases of Magento Community and Enterprise Editions (1.7.0.2 and 1.12.0.2), there&#8217;s a core bug that throws a PHP Notice when you try to save certain configuration screens. For instance, when saving from the Advanced tab: The code in question is this: The bug report on Magento is here (registration required). It&#8217;s curious... <a href="http://www.alexanderinteractive.com/blog/2013/01/magento-core-bug-unable-to-save-config-changes/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p>In the latest releases of Magento Community and Enterprise Editions (1.7.0.2 and 1.12.0.2), there&#8217;s a core bug that throws a PHP Notice when you try to save certain configuration screens. For instance, when saving from the Advanced tab:</p>
<p><a href="http://cdn.at.ai/blog/wp-content/uploads/2013/01/magento-admin-save-bug.png"><img class="aligncenter size-large wp-image-6780" src="http://cdn.at.ai/blog/wp-content/uploads/2013/01/magento-admin-save-bug-1024x536.png" alt="" width="450" height="235" /></a></p>
<p>The code in question is this:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php

/**
 * Get field backend model
 */
$backendClass = $fieldConfig-&gt;backend_model;
if (!$backendClass) {
    $backendClass = 'core/config_data';
}

?&gt;</pre>
<p>The bug report on Magento is <a href="http://www.magentocommerce.com/bug-tracking/issue?issue=14217" title="Magento core bug report">here (registration required)</a>.</p>
<p>It&#8217;s curious that both the bug report and <a href="http://www.magentocommerce.com/boards/viewthread/286198/#t416869" title="Discussion of Magento core bug">this discussion</a> suggest you add</p>
<pre class="brush: php; title: ; notranslate">&lt;?php

unset($backendClass);

?&gt;</pre>
<p>before this code block. Strange, since this code block explicitly assigns new values to <code>$backendClass</code> one way or the other.</p>
<p>This solution has worked for us &#8212; just some additional value-checking:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php

/**
 * Get field backend model
 */
if (!is_object($fieldConfig) || empty($fieldConfig-&gt;backend_model)) {
    $backendClass = 'core/config_data';
}
else {
    $backendClass = $fieldConfig-&gt;backend_model;
}

?&gt;</pre>
<p>I&#8217;d be curious to hear any arguments about what memory-management magic the explicit <code>unset()</code> call would invoke here.</p>
<p>Gist file here: <a href="https://gist.github.com/4664829">https://gist.github.com/4664829</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/01/magento-core-bug-unable-to-save-config-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technical debt in your bug tracker</title>
		<link>http://www.alexanderinteractive.com/blog/2013/01/technical-debt-in-your-bug-tracker/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=technical-debt-in-your-bug-tracker</link>
		<comments>http://www.alexanderinteractive.com/blog/2013/01/technical-debt-in-your-bug-tracker/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 03:46:18 +0000</pubDate>
		<dc:creator>Matt Holford</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bug tracker]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[technical debt]]></category>

		<guid isPermaLink="false">http://www.alexanderinteractive.com/blog/?p=6766</guid>
		<description><![CDATA[Special thanks to Dan Pasette for his insights into how an engineering team like 10gen’s manages technical debt in their issue tracker. If you work on software, you most likely use a bug tracker to track defects, manage development tasks, and plan releases. The collection of tickets, open and closed, is a data set that... <a href="http://www.alexanderinteractive.com/blog/2013/01/technical-debt-in-your-bug-tracker/">Read Full Post</a>]]></description>
				<content:encoded><![CDATA[<p><em>Special thanks to Dan Pasette for his insights into how an engineering team like 10gen’s manages technical debt in their issue tracker.</em></p>
<p>If you work on software, you most likely use a bug tracker to track defects, manage development tasks, and plan releases. The collection of tickets, open and closed, is a data set that doubles as a repository of institutional memory about your software: what components have been the most complex (i.e., have spawned the most bugs)? Who worked on what, when? What issues did the developers grapple with over the course of delivering on a requirement or resolving a defect? What compromises did the team decide to make (or, worse, what were they forced to make) to hit a deadline? What&#8217;s never been fixed, left to fester in a dark corner?</p>
<p>You may have other documentation sources for your software: end-user docs, developer handoff docs, long and tortuous email chains, wiki pages, and inline documentation in the code base itself. But, if consistently used, a bug tracker can show the underbelly of the development process in remarkable detail. It is here where teams can probe their work history to uncover decisions and issues that we can categorize as technical debt. (Example: Open the longest-active project in your issue tracker, and find the oldest unresolved bug. Behold.)</p>
<p>And once we have classified bugs as technical debt, that can be its own component—a component we should consider as first-class, along with mission-critical and user-facing components. Unlike other components, which must be maintained and improved, technical debt must be managed. It is an emergent component that we should assume <a href="http://www.ontechnicaldebt.com/blog/ted-theodoropoulos-on-managing-technical-debt-successfully/">will always be present in a system</a>.</p>
<p>This kind of emergent debt is what happens when we gain insight into the longstanding problems in a system, when we start to trace one problem back to a past decision, well-considered or otherwise. We can find the areas where we have built workarounds over the compromise and complexity we originally injected into the system.</p>
<p>And the status of these issues as bugs means that we have already filtered out most non-harmful technical debt (I am squarely in the <a href="http://blog.mischel.com/2012/01/07/in-praise-of-technical-debt/">“not all technical debt is bad”</a> camp): if the team implemented a shortcut that never caused or registered as a problem, it’s not in the bug tracker to begin with.</p>
<p>Just as importantly, in some situations we can choose to split these bugs into actionable sub-tickets, and cast off the rest. If, for instance, an old bug has to do with a component that has architectural flaws, but which is used more and more rarely, we can choose just to address the surface problems, knowing that the underlying debt in this instance will get zeroed out when we finally sunset this component completely (this must be a real plan, of course, such as a replatforming project in the not-too-distant future). So we break out the surface problems into discrete bugs, and then we can close the hairy old bug and pat ourselves on the back.</p>
<p>For example: an e-commerce system has a year-old bug on the books concerning user feedback in the checkout flow. The underlying problem has to do with the poor integration of the payment gateway. You, the tech lead, are fresh from a meeting where the business owners agreed to a payment processor with a much cleaner integration. The transition is a few months away still, but all the bug-spawning cruft of the old integration is now scheduled to disappear. You can now split this bug into some constituent sub-bugs that make cosmetic changes sufficient to address the symptoms of the original bug report. You can also close out the year-old bug with references to the cosmetic bugs and the impending payment system change. Were a new payment system not in the works, this band-aid approach might seem an irresponsible way to manage the technical debt underlying the original bug; in the new reality, though, you&#8217;ve decided to acquire short-term debt that has a definite lifespan.</p>
<p>(Side note: this example highlights the breakdown in the strict financial debt analogy. Technical debt can, in some cases, just magically disappear. Don&#8217;t try this with your credit card.)</p>
<p>We can also use the bug tracker explicitly to expose and track technical debt as we take it on or discover it in a system. This is especially useful when a developer needs to surface and memorialize decisions, shortcuts, quandaries, and TODOs in order to implement a feature. Being able to enter bugs related to the development process, and to categorize them as debt and not feature bugs, allows the developer to stay focused on the implementation, while making the process more transparent and contributing to institutional memory.</p>
<p>I’ll explain by example. Let’s posit a developer: Cold cup of coffee perched dangerously on the edge of the desk, sitting back in an office chair, wearing overpriced headphones, perhaps sweating a bit, wrestling with the latest in a series of hairy performance problems near the end of a development cycle. The task at hand is to deal with a slow page load. In the process of tracing the execution chain, the developer runs into a run-on sentence of a method that cries out for refactoring. It’s also probable that some of this logic will be useful elsewhere, once it’s extracted from the monolithic method. It’s also clear, however, that this method is not impacting load time—for the purposes of the task at hand, it’s more of an itch to scratch.</p>
<p>Thanks to the <a href="http://en.wikipedia.org/wiki/Getting_Things_Done">GTD methodology</a>, we know how to deal with these itches. The answer is not to lose focus on the task at hand, but rather to record the unrelated task and file it in a place where we can address it later. To do this, we need a simple filing method that allows us to categorize the new task efficiently, so that task creation is not itself a distracting activity.</p>
<p>Clearly, our developer needs to get this into the bug tracker. It takes thirty seconds to create a task called &#8220;Refactor <code>Ai_Checkout_Helper::doThings()</code>.&#8221; The tech lead should provide a single, simple tag (or label, depending on your issue tracker’s terminology) for these debt-repaying tasks: <code>shouldfix</code>, <code>refactor</code>, or <code>technicaldebt</code> will work. The goal is to create a two-step method for recording technical debt-related bugs that developers find in the course of doing other work:</p>
<p>1. Enter minimal notes, including file and line reference.</p>
<p>2. Label as technical debt.</p>
<p>It would be fun to monitor activity logged against this label in the heat of a project (e.g., an RSS feed attached to the label), as you’d have an equivalent of the fantastic <a href="http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877707a45970c-pi">“WTFs per minute”</a> quantification of technical debt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexanderinteractive.com/blog/2013/01/technical-debt-in-your-bug-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc
Database Caching using apc
Object Caching 936/1083 objects using apc
Content Delivery Network via cdn.at.ai

 Served from: www.alexanderinteractive.com @ 2013-05-25 15:01:54 by W3 Total Cache -->