<?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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Standing on the Brink</title>
	
	<link>http://www.standingonthebrink.com</link>
	<description>The tales and adventures of Cory von Wallenstein, an engineer turned executive dedicated to bringing together the best teams, technology and ideas to chase dreams.</description>
	<lastBuildDate>Sun, 14 Aug 2011 21:11:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/StandingOnTheBrink" /><feedburner:info uri="standingonthebrink" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Best Wireless Scanning Experience to Date: Epson WorkForce 840</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/aGP8X-Nd37c/</link>
		<comments>http://www.standingonthebrink.com/2011/08/best-wireless-scanning-experience-to-date-epson-workforce-840/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 21:07:11 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=539</guid>
		<description><![CDATA[I hate paper. Yet I have piles of it. Many of my Dyn Inc. documents do get digitized thanks to a kick-ass HP scanner at the office that emails you a PDF of whatever you insert. At home, however, it&#8217;s been a pain. Until now. Finally fed up with tons and tons of paper lying [...]]]></description>
			<content:encoded><![CDATA[<p>I hate paper. Yet I have piles of it.</p>
<p>Many of my Dyn Inc. documents do get digitized thanks to a kick-ass HP scanner at the office that emails you a PDF of whatever you insert. At home, however, it&#8217;s been a pain.</p>
<p>Until now.</p>
<p>Finally fed up with tons and tons of paper lying around, I made an (impulsive) purchase of an Epson WorkForce 840.</p>
<p><a href="http://www.amazon.com/gp/product/B004H3XKR6/ref=as_li_ss_tl?ie=UTF8&amp;tag=thgolionabu-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B004H3XKR6"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/EpsonWorkforce840.jpg" alt="" title="EpsonWorkforce840" width="300" height="300" class="aligncenter size-full wp-image-540" /></a></p>
<p>I could not be happier with this thing. Here&#8217;s my workflow:</p>
<ol>
<li>Toss in a pile of papers.</li>
<li>Press Scan, then Scan to Memory Card.</li>
<li>Get a full color duplex scan as a PDF over the network via the scanner&#8217;s file sharing. No fuss.</li>
</ol>
<p>All for $180. Plus it prints and all that jazz (but who cares&#8230; wasn&#8217;t it printing that got us into this mess to begin with?).</p>
<p>In detail, here it is. Start off with a bunch of two-sided pages (tray holds up to 30):</p>
<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/wpid-IMG_20110814_164807.jpg" /></p>
<p>Make sure I have a USB flash drive installed. This stays here all the time and is mounted over the wireless, just a spare 1GB USB flash drive. Nothing fancy.</p>
<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/wpid-IMG_20110814_165014.jpg" /></p>
<p>On the touchscreen, select Scan, then Scan to Memory Card.</p>
<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/wpid-IMG_20110814_165045.jpg" /></p>
<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/wpid-IMG_20110814_165055.jpg" /></p>
<p>When it&#8217;s done, the PDF is accessible from the Samba share that has the USB flash drive mounted. Just make sure you turn on network file sharing in the Epson&#8217;s setup menu.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/08/Epson-840-Share.jpg" rel="lightbox[539]" title="Epson 840 Share"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/08/Epson-840-Share-280x300.jpg" alt="" title="Epson 840 Share" width="280" height="300" class="aligncenter size-medium wp-image-547" /></a></p>
<p>Go <a href="http://www.amazon.com/gp/product/B004H3XKR6/ref=as_li_ss_tl?ie=UTF8&amp;tag=thgolionabu-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B004H3XKR6">buy an Epson WorkForce 840</a> and clean out your home office.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/08/best-wireless-scanning-experience-to-date-epson-workforce-840/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/08/best-wireless-scanning-experience-to-date-epson-workforce-840/</feedburner:origLink></item>
		<item>
		<title>Thunderbolt External Hard Drive</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/OOA3DQIF6FY/</link>
		<comments>http://www.standingonthebrink.com/2011/07/thunderbolt-external-hard-drive/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 13:39:08 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[hard drive]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[thunderbolt]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=535</guid>
		<description><![CDATA[Looks like you can finally buy a Thunderbolt external hard drive for using those snazzy new Thunderbolt I/O ports on the MacBook Pro/Air line. Base model of the Promise Pegasus PR401US NAS Hard Drive Array comes with 4 x HDD Installed for a total 4 TB Installed HDD capacity. All for a cool $1025.]]></description>
			<content:encoded><![CDATA[<p>Looks like you can finally buy a Thunderbolt external hard drive for using those snazzy new Thunderbolt I/O ports on the MacBook Pro/Air line.</p>
<p>Base model of the Promise Pegasus PR401US NAS Hard Drive Array comes with 4 x HDD Installed for a total 4 TB Installed HDD capacity. All for a cool $1025.</p>
<p><a href="http://www.amazon.com/gp/product/B0055SE076/ref=as_li_ss_tl?ie=UTF8&#038;tag=thgolionabu-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=B0055SE076"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/07/31oHvW5JsqL._SL500_AA300_.jpg" alt="" title="31oHvW5JsqL._SL500_AA300_" width="300" height="300" class="aligncenter size-full wp-image-536" /></a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/07/thunderbolt-external-hard-drive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/07/thunderbolt-external-hard-drive/</feedburner:origLink></item>
		<item>
		<title>Stop Churn. Grow Faster. Introducing Apptegic.</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/79UXFJB6Boo/</link>
		<comments>http://www.standingonthebrink.com/2011/06/stop-churn-grow-faster-introducing-apptegic/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 18:15:14 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[apptegic]]></category>
		<category><![CDATA[churn]]></category>
		<category><![CDATA[customer retention]]></category>
		<category><![CDATA[velocityconf]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=473</guid>
		<description><![CDATA[For the better part of 2010, my number one goal at @DynInc was to get a handle on our growth&#8230; or lack thereof on our eCommerce platform. While our Enterprise offering Dynect was growing by leaps and bounds, our self-service offering at DynDNS.com was starting to stagnate. We went from having exciting mid-double-digit net growth [...]]]></description>
			<content:encoded><![CDATA[<p>For the better part of 2010, my number one goal at <a href="http://twitter.com/DynInc" class="tweet-username">@DynInc</a> was to get a handle on our growth&#8230; or lack thereof on our eCommerce platform. While our Enterprise offering Dynect was growing by leaps and bounds, our self-service offering at DynDNS.com was starting to stagnate. We went from having exciting mid-double-digit net growth on DynDNS.com into yawn inducing single-digit net growth. What was going on?</p>
<p>Digging under the hood, we were victims of attrition. We were actually seeing healthy customer acquisition, but horrendous retention. And for the most part, we were to blame. It wasn&#8217;t that the products or services weren&#8217;t good (People LOVE <a href="http://twitter.com/DynInc" class="tweet-username">@DynInc</a> &#8211; Just check out <a href="http://search.twitter.com/search?q=%23DNSISSEXY" class="tweet-hashtag">#DNSISSEXY</a> ), but it was more how difficult we were making it for users to actually stay with us! Service renewal was a hassle, and fell victim to all sorts of pitfalls, many of which I outlined in a talk in December 2010 at the Massachusetts Technology Leadership Council on Managing SaaS Revenues.</p>
<div style="width:425px; margin: auto;" id="__ss_6262174"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/MassTLC/dyn-cory-von-wallastein" title="Dyn, Cory von Wallenstein">Dyn, Cory von Wallenstein</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/6262174" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<h2>Retention on DynDNS.com</h2>
<p>The first step was recognition that many users were having services &#8220;expire&#8221;, only to come back and create services that were &#8220;new&#8221;, artificially affecting our attrition rates vs new customer acquisition rates. We were simply not doing a good job at enabling our users to renew. Keep in mind: This is a fundamentally different problem from &#8220;customers are not renewing because the product itself truly sucks.&#8221; If your SaaS product fundamentally sucks, STOP READING AND GO FIX IT. If your SaaS offering fundamentally kicks ass, and you&#8217;re looking to grow faster, keep reading.</p>
<p>Quick summary of our tactics that enabled us to shift from around 60% annual retention to around 80% annual retention, covered in the slides below:</p>
<ul>
<li><strong>Align our schedule with the schedule of our users.</strong> Specifically:
<ul>
<li>Users were far more likely to take action on renewing a service if their reminder email notifications (sent 60, 30, 14, 7, 3, and 1 days in advance of expiration) were delivered on a &#8220;workweek&#8221; day (Monday, Tuesday, Wednesday or Thursday) versus a &#8220;weekend&#8221; day (Friday, Saturday or Sunday).</li>
<li>Correlated to email deliveries of notifications, the &#8220;final reminder&#8221; emails delivered the day before expiration of an annual service had very different success rates for the &#8220;workweek&#8221; days vs the &#8220;weekend&#8221; days. Accordingly, we stopped deleting services on the weekend, and we pushed all service expirations that would fall on a &#8220;weekend&#8221; day to the following Tuesday (thereby allowing the final &#8220;day before&#8221; reminder email to be sent on a Monday, when you were likely to see it!).</li>
</ul>
</li>
<li><strong>Make it easy to renew</strong>. Specifically:
<ul>
<li>Made it easier for users to turn on automated renewals on initial purchase, so no manual action is required next year for renewal.</li>
<li>Created highly visible renewal calls to action within the applications themselves. You may have missed the &#8220;renewal&#8221; email, so the application serves as a reminder as well.</li>
</ul>
</li>
<li><strong>Prevent stupid problems from getting in the way</strong>. Specifically:
<ul>
<li>Created highly visible &#8220;update your credit card that&#8217;s going to expire soon&#8221; calls to action in the applications, as well as separate reminder emails for updating credit cards that were going to expire soon. This significantly increased the success of automatic renewals.</li>
</ul>
</li>
</ul>
<p>The net result was absolutely worthwhile: by combating attrition, we were back into exciting double digit net growth. Seems too good to be true? A quick hypothetical showcases this impact of combatting churn and attrition well.</p>
<h2>Put Your Hypothetical Hats On!</h2>
<p>Let&#8217;s say you have 1000 current customers. If no one leaves your SaaS application, and no one new joins, here&#8217;s your userbase. We&#8217;ll call this the baseline.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_baseline.png" rel="lightbox[473]" title="churn_model_a_baseline"><img class="aligncenter size-large wp-image-510" title="churn_model_a_baseline" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_baseline-1024x614.png" alt="" width="632" height="378" /></a></p>
<p>Let&#8217;s say you can add 40 new customers every month. At the end of the year, you have 44% net growth. Not too shabby!</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_growth.png" rel="lightbox[473]" title="churn_model_a_growth"><img class="aligncenter size-large wp-image-511" title="churn_model_a_growth" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_growth-1024x615.png" alt="" width="632" height="379" /></a></p>
<p>Of course, this implies no one ever leaves, which of course we know isn&#8217;t true. On a userbase of 1000 users, it&#8217;s not unreasonable to find 30 members of the userbase (just 3% of the initial baseline) leaving each month for a variety of reasons&#8230;</p>
<p>Maybe they left for reasons outside of your control, such as &#8220;going out of business.&#8221; More likely, they left for reasons WITHIN your control, such as:</p>
<ul>
<li>Finding it too difficult to renew, so they give up and move on.</li>
<li>Not seeing the value in the service, and canceling</li>
<li>Finding a better service at a competitor</li>
<li>Having a poor relationship with your brand (Ever have a bad customer support experience, and decide to take your business elsewhere?)</li>
<li>Frustrated with speed, availability or reliability of your service.</li>
</ul>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_churn.png" rel="lightbox[473]" title="churn_model_a_churn"><img class="aligncenter size-large wp-image-512" title="churn_model_a_churn" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_churn-1024x614.png" alt="" width="632" height="378" /></a></p>
<p>Putting the whole picture together, our net growth for the year is not 44%, but a paltry 11%! After all, it&#8217;s the net growth that you will be judged on. Your bottom line doesn&#8217;t care that you can acquire new customers at annual growth rate of 44%… it&#8217;s governed by the fact that you&#8217;re really only adding 11% net each year.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_net.png" rel="lightbox[473]" title="churn_model_a_net"><img class="aligncenter size-large wp-image-513" title="churn_model_a_net" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_a_net-1024x614.png" alt="" width="632" height="378" /></a></p>
<p>How can we get back to more exciting growth? How can we grow at say, around 30% a year instead of around 10%? Let&#8217;s look at two paths:</p>
<h3>The Customer Acquisition Path</h3>
<p>What if we can increase the number of new customers we acquire by 50%. We&#8217;ll spend more on marketing, we&#8217;ll hire more salespeople, we&#8217;ll work overtime and hustle and get the word out and drive new signups, and we&#8217;ll go from 40 new customers a month to 60. And if we can pull it off, we&#8217;ll be nicely growing each year at a 33% clip.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_b_net.png" rel="lightbox[473]" title="churn_model_b_net"><img class="aligncenter size-large wp-image-515" title="churn_model_b_net" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_b_net-1024x615.png" alt="" width="632" height="379" /></a></p>
<p>But what&#8217;s the cost of this kind of net growth? Sure, our hypothetical SaaS business is pulling in 60 new customers every month that have voted with their wallets on the confidence in our ability to impact THEIR bottom lines, but we&#8217;re also spitting out 30 customers every month that are champions of dissatisfaction. They&#8217;re not happy. And undoubtedly, some of them are telling their friends they&#8217;re not happy. And that only makes it harder (read: more expensive) to acquire those 60 new customers each and every month.</p>
<h3>The Customer Retention Path</h3>
<p>Let&#8217;s step back, and look at this problem a little differently. Rather than try to brute force our growth in the market with new customer acquisition, let&#8217;s see what the impact would be if we focused on keeping the customers we already have. Rather than pour our resources into sales, marketing, and business development, let&#8217;s pour our resources into the customer experience itself (not just the product, but the experience the customer has using the product, the interaction the customer has with the people behind the product, the ease of use in getting the product to work, etc.).</p>
<p>What would be the impact if we could get that monthly churn down from 30 users to 10? What&#8217;s the impact there?</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_c_net.png" rel="lightbox[473]" title="churn_model_c_net"><img class="aligncenter size-large wp-image-516" title="churn_model_c_net" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_c_net-1024x614.png" alt="" width="632" height="378" /></a></p>
<p>You guessed it. We get to the same spot as if we had increased customer acquisition by 50%. We get to 33% net growth!</p>
<h2>This World is Not Binary</h2>
<p>Of course, hypothetical thought exercises on &#8220;all of our resources focused on customer acquisition&#8221; versus &#8220;all of our resources focused on customer retention&#8221; are just that… hypothetical thought exercises. Success here is found in the form of a balancing act, and the trick to finding the best &#8220;balance&#8221; is identifying which lowest hanging fruit exist on each path, and committing to those: the lowest hanging fruit on customer acquisition, and the lowest hanging fruit on customer retention combine to affect your bottom line.</p>
<p>Plenty of folks have spent plenty of time attempting to quantify the impact of &#8220;customer retention&#8221; versus &#8220;customer acquisition&#8221;. To quote several commonly cited figures from <a href="http://scoremichigansgreatsouthwest.org/high_cost_of_losing_a_customer.html">SCORE</a>:</p>
<ul>
<li>It costs <strong>5 times more </strong>to attract a new customer than to keep a current one. Are you attributing resources effectively?</li>
<li>The average un-happy customer tells <strong>8 to 16 people </strong>about their experience with you. What do you think they will say?</li>
</ul>
<p>There is light at the end of this tunnel however. If you make an effort to remedy a customer&#8217;s complaints, <strong>82 to 95 percent of them will stay with you!</strong></p>
<p>So how do we find the lowest hanging fruit for customer retention? Where are customers unhappy? Is the product too hard? Do they get lost during setup? Do they not use the service enough to actual receive value from it?</p>
<p>As described earlier, some of our lowest hanging fruit for DynDNS.com was not &#8220;the DNS service&#8221; but rather &#8220;how easy is it to renew my DNS service&#8221;. While the challenges we faced and the steps we took are arguably obvious in hindsight, finding these patterns in an application that has millions of users and many more millions of unique &#8220;interactions&#8221; with our site was anything but trivial. Hundreds of person hours went into the investigations and evaluations (a manual, arduous process).</p>
<p>In 2010, the tools in our toolbox to do this evaluation and find the lowest hanging fruit to combat attrition were:</p>
<ul>
<li>The unix command line, looking at Apache logs with grep and uniq and wc -l and more.</li>
<li>Google Analytics, with dozens of custom configured &#8220;events&#8221; and &#8220;segments&#8221;</li>
<li>Plenty of SQL hammering, and the resultant middleware to make sense of it all in Python and Perl</li>
<li>A homegrown tool for graphing a moving average of key metrics hacked together using Django and amCharts.com</li>
<li>LOTS of Excel and PivotTables</li>
</ul>
<p>In short, this was not easy. It took a lot of research, a lot of conference attending to find best practices, a lot of &#8220;let me pick your brain&#8221; phone calls, and a lot of MacGuyver-style duct taping of tools together to make sense of all of our data to find the lowest hanging fruit.</p>
<h2>Stop Churn. Grow Faster. Introducing Apptegic.</h2>
<p>Fast forward a year, and it&#8217;s awesome to see that I was not alone in thinking about the impact of retention on the bottom line. Others were out there assembling tools and dashboards that can do most of the heavy lifting for you and give you the insights you need to Stop Churn and Grow Faster. The one I&#8217;m most excited about captured my interest so heavily that I joined their Board of Advisors earlier this year to help guide their path forward. They are Apptegic, and they rock.</p>
<p>It&#8217;s exactly the type of tool I wish we had in 2010 before we set out to brute force our own insights. It&#8217;s ridiculously simple to get up and running, and ridiculously powerful for understanding where you should focus your attention to combat attrition.</p>
<h3>The Input: What You Send to Apptegic</h3>
<p>Whenever an interesting event happens in your product or workflow, make a quick HTTPS call to Apptegic with simple key-value pairs of relevant data.</p>
<p>Stuff like &#8220;step=renewal-start&#8221; or &#8220;step=enter-credit-card&#8221; to tag the event, or maybe &#8220;app-revision=2.0.3&#8243; or &#8220;order-total=$73.33&#8243; to describe the details of the events. It doesn&#8217;t matter if you run a web application, or a downloadable piece of desktop software, or a mobile application, or your user workflow spans a series of mediums (click a link in an email and go to a site and complete a purchase and download an app and install it). A lot happens behind the scenes in real-time on the implicit data as well, such as determining the user&#8217;s location in the world using GeoIP, and you have full control over what data is relevant to your workflow.</p>
<h3>The Output: What You Get From Apptegic</h3>
<p>Two-fold: The first (and most impactful) being the dashboards that give you the insights you need to combat attrition; the second is an incredibly powerful set of pivot tables to dive into your data and gain insight into how customers were using your products and services, and the relationships between their usage and your bottom line.</p>
<p>Note: These are interface mockups. You&#8217;ll want to reach out to the team below to get a real demo of the beta.</p>
<p><strong>Apptegic Dashboard &#8211; Focus your retention efforts</strong></p>
<p>Should you focus on the <strong>vocal minority</strong> (your premium customers that command your attention) or the <strong>silent majority</strong> (your high-volume customer base that rarely gets in touch)? Apptegic shows you customers (and revenue) at risk of churn so you can focus your retention efforts on the bottom line.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_unique_users_by_plan.png" rel="lightbox[473]" title="churn_model_unique_users_by_plan"><img class="aligncenter size-large wp-image-517" title="churn_model_unique_users_by_plan" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_unique_users_by_plan-1024x269.png" alt="" width="632" height="166" /></a></p>
<p><strong>Apptegic Dashboard &#8211; Ensure customer success</strong></p>
<p>Are your customers actually <strong>making use</strong> of your product or service? Use Apptegic to identify the heavy-user evangelists, the satisfied mainstream, and the lost folks that simply are not receiving value.</p>
<p style="text-align: center;"><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_customer_usage.png" rel="lightbox[473]" title="churn_model_customer_usage"><img class="aligncenter size-full wp-image-518" title="churn_model_customer_usage" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_customer_usage.png" alt="" width="556" height="305" /></a></p>
<p><strong>Apptegic Dashboard &#8211; Fix your workflows</strong></p>
<p>Are customers <strong>getting stuck</strong> in setup or installation? Who aborts what workflows in your products and services, and <strong>where do they get lost</strong>? Use Apptegic to visualize where conversion is failing, and pivot against any number of segments to identify who is having trouble.</p>
<p style="text-align: center;"><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_install_funnel.png" rel="lightbox[473]" title="churn_model_install_funnel"><img class="aligncenter size-full wp-image-519" title="churn_model_install_funnel" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/churn_model_install_funnel.png" alt="" width="636" height="224" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p><strong>Dive In With Pivot Tables</strong></p>
<p>See an interesting pattern on the dashboard you want to dive into? Answer questions like:</p>
<ul>
<li>Do users in Europe achieve the same successes in our workflows as users in the United States?</li>
<li>What&#8217;s the correlation between &#8220;happy, long term customer&#8221; and various usage patterns within the application?</li>
</ul>
<p>Quickly jump from the dashboard view into a pivot table that let&#8217;s you slice and dice in realtime to gain further, more deeply evidenced insight.</p>
<h3>Sign Up For Beta</h3>
<p>The Apptegic team is in the middle of a private, invite-only beta of their platform. Along with a handful of the largest SaaS providers in the world, we at <a href="http://twitter.com/DynInc" class="tweet-username">@DynInc</a> are busy putting the platform through its paces, and if you have a compelling case to stop churn and grow faster, apply below for an invitation to the private beta.</p>
<form action="http://lfov.net/webrecorder/f" method="post">
<input name="formid" type="hidden" value="796df80f-f99d-4acc-8ecc-7ac6cef10b9f" />
<input name="cid" type="hidden" value="LF_6facfba4" />&nbsp;</p>
<table cellspacing="5" align="center" bgcolor="F1FFF1" style="margin: auto;">
<tbody>
<tr>
<td>First Name:</td>
<td>
<input id="first_name" name="first_name" type="text" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td>
<input id="last_name" name="last_name" type="text" /></td>
</tr>
<tr>
<td>Company:</td>
<td>
<input id="company" name="company" type="text" /></td>
</tr>
<tr>
<td>Email:</td>
<td>
<input id="email" name="email" type="text" /></td>
</tr>
<tr>
<td>Phone:</td>
<td>
<input id="phone_work" name="phone_work" type="text" /></td>
</tr>
<tr>
<td></td>
<td align="right">
<input class="buttonblue" style="width: 75px;" name="Submit" src="http://www.apptegic.com/storage/signup.png" type="image" value="SignUp" /></td>
</tr>
</tbody>
</table>
</form>
<p>Some quick links and facts on Apptegic:</p>
<ul>
<li>Follow <a href="http://twitter.com/Apptegic" class="tweet-username">@Apptegic</a> on Twitter</li>
<li>Apptegic has attracted about $250,000 in angel funding from Netezza founder Jit Saxena; his publicly-held data warehousing company was <a href="http://www.reuters.com/article/2010/09/20/us-netezza-ibm-idUSTRE68J26220100920">acquired by IBM</a> last year for $1.7 billion.</li>
<li>Check out the <a href="http://www.apptegic.com">apptegic.com web site</a></li>
<li>Recent coverage of the <a href="http://www.boston.com/business/technology/innoeco/2011/06/apptegic_deciphering_how_custo.html">Apptegic beta on Boston.com</a></li>
<li>Meet (and join!) the <a href="http://www.apptegic.com/company/">Apptegic team</a></li>
</ul>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/stop-churn-grow-faster-introducing-apptegic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/stop-churn-grow-faster-introducing-apptegic/</feedburner:origLink></item>
		<item>
		<title>Takeaways from John Allspaw Talk at Velocity 2011</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/43JZ8v7jJbY/</link>
		<comments>http://www.standingonthebrink.com/2011/06/takeaways-from-john-allspaw-talk-at-velocity-2011/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 00:04:43 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[allspaw]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[etsy]]></category>
		<category><![CDATA[velocityconf]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=476</guid>
		<description><![CDATA[While the title of this talk by John Allspaw (@allspaw) was intriguing (Advanced Postmortem Fu and Human Error 101), it didn&#8217;t really do it justice. John&#8217;s talk broke through all of the BS of &#8220;which tools do what&#8221;, and got to the core of the challenge we all in the #DevOps community face: we&#8217;re all [...]]]></description>
			<content:encoded><![CDATA[<p>While the title of this talk by John Allspaw (<a href="http://twitter.com/allspaw" class="tweet-username">@allspaw</a>) was intriguing (Advanced Postmortem Fu and Human Error 101), it didn&#8217;t really do it justice.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_front.jpg" rel="lightbox[476]" title="allspaw_front"><img class="aligncenter size-large wp-image-478" title="allspaw_front" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_front-1024x768.jpg" alt="" width="632" height="474" /></a></p>
<p>John&#8217;s talk broke through all of the BS of &#8220;which tools do what&#8221;, and got to the core of the challenge we all in the <a href="http://search.twitter.com/search?q=%23DevOps" class="tweet-hashtag">#DevOps</a> community face: we&#8217;re all human, we&#8217;re going to make mistakes, and our success or failure will largely be governed by the strength of the culture we&#8217;ve assembled around ourselves.</p>
<p>How popular are these get togethers? Standing room only at <a href="http://search.twitter.com/search?q=%23velocityconf" class="tweet-hashtag">#velocityconf</a>. So please excuse my &#8220;side angle&#8221; slide photos&#8230; it&#8217;s the only spot I managed to claim as my own!</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_back.jpg" rel="lightbox[476]" title="allspaw_back"><img class="aligncenter size-large wp-image-479" title="allspaw_back" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_back-1024x768.jpg" alt="" width="632" height="474" /></a></p>
<p>So, without further ado, my big takeaways from @allspaw&#8217;s talk.</p>
<h2>Crisis Patterns</h2>
<p>There is a flow of events that can be found when looking back at a problem. It looks something like this, all leading up to the final event: the post-mortem.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_crisis_patterns_normal.jpg" rel="lightbox[476]" title="allspaw_crisis_patterns_normal"><img class="aligncenter size-large wp-image-480" title="allspaw_crisis_patterns_normal" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_crisis_patterns_normal-1024x775.jpg" alt="" width="632" height="478" /></a></p>
<p>The problem starts, and from there, the states that unfold are:</p>
<ol>
<li>Detection</li>
<li>Evaluation</li>
<li>Response</li>
<li>Stable</li>
<li>Confirmation</li>
<li>All Clear, followed by a Post Mortem</li>
</ol>
<p>And on top of these states over time, you know where your stress levels fall:</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_normal.jpg" rel="lightbox[476]" title="allspaw_stress_normal"><img class="aligncenter size-large wp-image-482" title="allspaw_stress_normal" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_normal-1024x768.jpg" alt="" width="632" height="474" /></a></p>
<p>If you&#8217;re monitoring sucks, and for some period of time the problem goes undetected, your stress curve gets compressed quite a bit, but the flow of events is still the same.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_delayed_detection.jpg" rel="lightbox[476]" title="allspaw_stress_delayed_detection"><img class="aligncenter size-large wp-image-483" title="allspaw_stress_delayed_detection" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_delayed_detection-1024x768.jpg" alt="" width="632" height="474" /></a></p>
<p>Where your systems, tools, teams, culture, and ultimately, your entire organization will get put to the test, will be when you&#8217;ve detected a problem, evaluated it, and are in the process of responding&#8230; and it takes a long time to fix the problem. These are the most stressful of all scenarios, and it&#8217;s a scenario we all strive to avoid.<a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_delayed_response.jpg" rel="lightbox[476]" title="allspaw_stress_delayed_response"><img class="aligncenter size-large wp-image-484" title="allspaw_stress_delayed_response" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_stress_delayed_response-1024x795.jpg" alt="" width="632" height="490" /></a></p>
<p>So, what can be done during Post Mortem to better prepare ourselves for the future?</p>
<h2>Post Mortem</h2>
<p>Folks have written at length on techniques of root cause analysis for identifying &#8220;what went wrong?&#8221;</p>
<p><strong>Five Why&#8217;s:</strong> For each answer to &#8220;Why?&#8221;, ask another &#8220;Why?&#8221;</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_five_why.jpg" rel="lightbox[476]" title="allspaw_five_why"><img class="aligncenter size-large wp-image-485" title="allspaw_five_why" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_five_why-1024x759.jpg" alt="" width="632" height="468" /></a><strong>Swiss Cheese: </strong>What I can only describe as &#8220;Allspaw&#8217;s Swiss Cheese&#8221;, building a mental model around layers of protection against failure (the cheese) and the complex interactions that can lead to failure (the holes in the cheese).</p>
<p>What, you don&#8217;t believe me?</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_swiss_cheese.jpg" rel="lightbox[476]" title="allspaw_swiss_cheese"><img class="aligncenter size-large wp-image-486" title="allspaw_swiss_cheese" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_swiss_cheese-1024x736.jpg" alt="" width="632" height="454" /></a></p>
<p>Many more efforts (both commercial and academic) have spent significant time looking into techniques and categorizations, but deliver limited real-world value. So, what is valuable?</p>
<h2>There Is No Root Cause</h2>
<p>What is valuable is stepping back and understanding that there is no single root cause!</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_root_cause.jpg" rel="lightbox[476]" title="allspaw_root_cause"><img class="aligncenter size-large wp-image-487" title="allspaw_root_cause" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_root_cause-1024x752.jpg" alt="" width="632" height="464" /></a></p>
<p>These are complex systems. They have many, many interacting components. Not the least of which are the human beings that have created and are responsible for these systems. The most challenging problems are almost always systemic in origin.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_systemic.jpg" rel="lightbox[476]" title="allspaw_systemic"><img class="aligncenter size-large wp-image-488" title="allspaw_systemic" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_systemic-1024x755.jpg" alt="" width="632" height="465" /></a>It&#8217;s not just a &#8220;web server&#8221; that failed&#8230; it&#8217;s that a feature on the roadmap that was supposed to go out yesterday actually went out today (due to miscommunication from a poor dashboard design and the fact that the DBA&#8217;s car broke down yesterday so folks made a decision to delay) and news of the feature was picked up by TechCrunch sending HUGE amounts of traffic to the site and putting HUGE strain on the servers which were underprovisioned (running low on that last round of funding&#8230;) and no one was watching for this because&#8230; my favorite part&#8230; <strong>the entire ops team was at Velocity</strong>.</p>
<p>The problems of systemic origin do not benefit from a traditional root cause analysis. Even when applied, most folks conclude the problem was &#8220;Human Error&#8221;, but what value is that conclusion? It&#8217;s not like people come into work today <strong>planning on taking down the web site</strong>! Nobody comes into work with the intention of doing a bad job. The only real solution to these systemic problems is as complex as the cause: it comes down to the people, and the culture those people have built. So, if you end your root cause analysis with &#8220;human error&#8221;, you have to dig further. You have to look at your culture that led to that failure.</p>
<h2>What Can We Do To Improve Our Culture?</h2>
<p>A lot. A couple of ideas from John:</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong></p>
<ul>
<li><span style="font-weight: normal;"><strong>A Failure Gone Wrong is a Success: </strong>Rather than evaluating your failures and trying to figure out what went wrong, evaluated your successes and evaluate what went right. Maybe you did 100 code pushes, and 6 caused problems. If you only focus on the failures, you have 6 sets of data to evaluate. But if you switch the question around, and try to figure out what in those 94 code pushes went right, you&#8217;ll open yourself up to many more opportunities for insight.</span></li>
<li><span style="font-weight: normal;"><strong>A Just Culture:</strong> A just culture balances accountability with learning. No room for malice</span></li>
<li><span style="font-weight: normal;"><strong>Near Misses: </strong>Post mortem discussions are extremely important, and most people realize that. What&#8217;s often missed are those &#8220;near disaster&#8221; moments. Many lessons can be learned by investigating what almost went horribly wrong, and we need to have a culture that values honesty and humility to send out an email like this:</span></li>
</ul>
<p><span style="font-weight: normal;"><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_near_misses.jpg" rel="lightbox[476]" title="allspaw_near_misses"><img class="aligncenter size-large wp-image-490" title="allspaw_near_misses" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/allspaw_near_misses-1024x781.jpg" alt="" width="632" height="482" /></a></span></p>
<p></strong></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-weight: normal;"><strong>Pre Mortem:</strong> What&#8217;s better than a post-mortem is a pre-mortem! Discussing what COULD go wrong before it does. Communication is key.</span></li>
<li><strong>Effective Organizational Structure:</strong><span style="font-weight: normal;"> People can only be held accountable for the things that they&#8217;ve been given both the responsibility AND the authority for.</span></li>
</ul>
<p>Another fantastic talk by <a href="http://twitter.com/allspaw" class="tweet-username">@allspaw</a>! </p>
<div style="width:425px; margin: auto;" id="__ss_8322957"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/jallspaw/advanced-postmortem-fu-and-human-error-101-velocity-2011" title="Advanced PostMortem Fu and Human Error 101 (Velocity 2011)">Advanced PostMortem Fu and Human Error 101 (Velocity 2011)</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8322957" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/takeaways-from-john-allspaw-talk-at-velocity-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/takeaways-from-john-allspaw-talk-at-velocity-2011/</feedburner:origLink></item>
		<item>
		<title>Takeaways from Netflix in the Cloud at Velocity 2011</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/5mEWJHFotbQ/</link>
		<comments>http://www.standingonthebrink.com/2011/06/takeaways-from-netflix-in-the-cloud-at-velocity-2011/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 18:03:54 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[In The Field]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[gslb]]></category>
		<category><![CDATA[velocityconf]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=466</guid>
		<description><![CDATA[Adrian Cockcroft (@adrianco) from @Netflix just gave a killer presentation at #velocityconf on their usage of the cloud in powering unprecedented growth in their business and the demands of their global infrastructure. To start off, you should know that Netflix is ~100% in the cloud. A couple key takeaways: Can You Build Datacenters Fast Enough? [...]]]></description>
			<content:encoded><![CDATA[<p>Adrian Cockcroft (<a href="http://twitter.com/adrianco" class="tweet-username">@adrianco</a>) from <a href="http://twitter.com/Netflix" class="tweet-username">@Netflix</a> just gave a killer presentation at <a href="http://search.twitter.com/search?q=%23velocityconf" class="tweet-hashtag">#velocityconf</a> on their usage of the cloud in powering unprecedented growth in their business and the demands of their global infrastructure.</p>
<p>To start off, you should know that Netflix is ~100% in the cloud.</p>
<p>A couple key takeaways:</p>
<h2>Can You Build Datacenters Fast Enough?</h2>
<p><a href="http://twitter.com/adrianco" class="tweet-username">@adrianco</a> led with a pretty interesting problem they faced: they could not build datacenters fast enough for their growth. Hence the &#8220;fire burning down the datacenter&#8221; slide:</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_datacenters.jpg" rel="lightbox[466]" title="netflix_datacenters"><img class="aligncenter size-large wp-image-467" title="netflix_datacenters" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_datacenters-1024x706.jpg" alt="" width="632" height="435" /></a></p>
<p>Their growth was 69% year over year, and was showing no signs of stopping. They simply could not build facilities fast enough. Not just for the serving of content (which is admittedly static&#8230; they&#8217;re just giant video files retrieved via HTTP GET), but for the re-encoding of the entire Netflix library every time a new device or platform joined the family.</p>
<p>Remember when Netflix came to the Wii? The entire Netflix collection of video had to be re-encoded. Same thing for the iPad, and every other platform that now offers Netflix streaming for. They scaled out thousands of servers on-demand to meet this need.</p>
<h2>A Global Infrastructure Footprint</h2>
<p>New growth for Netflix is largely international, and they have an ambitious plan in place to capture that global demand for streaming video. Accordingly, they&#8217;re leveraging Amazon&#8217;s global footprint to put their infrastructure close to where their users are in the world. It&#8217;s a smart architectural play that increase performance for end-users and decreases the risk of downtime.</p>
<p>Most of their new infrastructure will be deployed internationally, and they&#8217;re prepared and ready. When Amazon launched EC2 services in Japan, they had support in their tools for the new location and ready for production duty the next day. What was the longest delay? According to Adrian, &#8220;we had to find an icon to represent Japan in the tools!&#8221;.</p>
<h2>The Goals of Netflix in the Cloud</h2>
<p>Faster, Scalable, Available, Productive. Now those are goals we can all get on board with.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_cloud_goals.jpg" rel="lightbox[466]" title="netflix_cloud_goals"><img class="aligncenter size-large wp-image-468" title="netflix_cloud_goals" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_cloud_goals-1024x723.jpg" alt="" width="632" height="446" /></a></p>
<h2>What&#8217;s Next for Netflix in the Cloud?</h2>
<p>More international expansion, a larger global footprint, and pushing toward global cloud standards and commoditization of cloud computing.<br />
<a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_next_few_years.jpg" rel="lightbox[466]" title="netflix_next_few_years"><img class="aligncenter size-large wp-image-469" title="netflix_next_few_years" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/netflix_next_few_years-1024x704.jpg" alt="" width="632" height="434" /></a></p>
<p>Here are the full slides:</p>
<div style="width:425px; margin: auto;" id="__ss_8307969;"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/adrianco/netflix-velocity-conference-2011" title="Netflix Velocity Conference 2011">Netflix Velocity Conference 2011</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8307969" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/adrianco">Adrian Cockcroft</a> </div>
</p></div>
<p>Overall, an outstanding kicked to <a href="http://search.twitter.com/search?q=%23velocityconf" class="tweet-hashtag">#velocityconf</a>. Well done @adrianco!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/takeaways-from-netflix-in-the-cloud-at-velocity-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/takeaways-from-netflix-in-the-cloud-at-velocity-2011/</feedburner:origLink></item>
		<item>
		<title>Atlassian Summit 2011: Product Management 2.0 with Confluence</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/2WIhokOCyFU/</link>
		<comments>http://www.standingonthebrink.com/2011/06/atlassian-summit-2011-product-management-2-0-with-confluence/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 14:36:21 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[gantt]]></category>
		<category><![CDATA[kanban]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=372</guid>
		<description><![CDATA[We&#8217;ve seen a lot of growth at Dyn Inc. recently. In the past six months alone, we&#8217;ve doubled headcount to now 80 employees. We&#8217;ve brought on board some of the biggest and most respected brands on the Internet to our Infrastructure-as-a-Service (IaaS) DNS and Email platforms. And we&#8217;ve done it without taking on outside funding. [...]]]></description>
			<content:encoded><![CDATA[<p><!-- notweet --></p>
<p>We&#8217;ve seen a lot of growth at Dyn Inc. recently. In the past six months alone, we&#8217;ve doubled headcount to now 80 employees. We&#8217;ve brought on board some of the biggest and most respected brands on the Internet to our Infrastructure-as-a-Service (IaaS) DNS and Email platforms. And we&#8217;ve done it without taking on outside funding.</p>
<p>So what&#8217;s the secret? Well, there has been no shortage of hustle around here for starters. Just scroll through our <a href="http://twitter.com/dyninc">@DynInc</a> Twitter feed for a glimpse at the many events, product launches, performance improvements, and other kick-IaaS activities we have underway. But how can you prevent hustle from devolving into chaos at scale? How do you keep so many groups aligned in a common direction while still giving individuals the freedom they crave to have their own ideas?</p>
<p>That&#8217;s where the Product Roadmap Dashboard came in. Using <a href="http://www.atlassian.com/software/confluence/">Confluence (the Enterprise Wiki from Atlassian)</a> with a couple of handy open-source plugins, some good user experience design, and some ingenuity, we&#8217;ve been able to piece together something that works for us.</p>
<p>I&#8217;ll be presenting the Product Roadmap Dashboard (as well as our story behind it in managing our growth and success) at <a href="http://summit.atlassian.com/">Atlassian Summit 2011</a>:</p>
<ul>
<li><a href="http://summit.atlassian.com/agenda">Product Management 2.0: Using Confluence to drive company-wide alignment and product success</a></li>
<li>4:15pm &#8211; 5:00pm, Tuesday June 7th, 2011</li>
<li>InterContinental Hotel and Spa, 888 Howard Street, San Francisco, California</li>
</ul>
<h2>What is the Product Roadmap Dashboard?</h2>
<p>The presentation is a good story on our growth pains, how Confluence helped, and how we extended Confluence to be EXACTLY what we needed. The point of this post is really for those attendees who saw the presentation and are ready to &#8220;get started&#8221;. Here I will be sharing the nitty gritty details on how it was created.</p>
<p>For those unable to attend the conference, my slides are below, and I&#8217;ll post the video of the presentation as soon as it is made available (typically in a week or so).</p>
<div id="__ss_8234366" style="width: 425px; margin: auto;"><strong style="display: block; margin: 12px 0 4px;"><a title="Product Management 2.0 - Atlassian Summit 2011" href="http://www.slideshare.net/dyninc/product-management-20-atlassian-summit-2011">Product Management 2.0 &#8211; Atlassian Summit 2011</a></strong></div>
<p>The Product Roadmap Dashboard is simple metadata surrounding what you likely already use Confluence for: collaboration. In addition to functional specifications, wishlists, checklists, user stories, mockups, and discussion thereof, we&#8217;re really focused on adding a few key pieces of metadata that automatically generate a &#8220;top down&#8221; view of a world that is built &#8220;bottom up.&#8221;</p>
<p>All of our discussion, ideas, and thoughts ultimately get assembled into two views.</p>
<p><strong>The Kanban Chart &#8211; Visualize &#8220;flow&#8221; and &#8220;state&#8221;</strong></p>
<p>Here, we have projects color coded by platform team, that flow from left to right in the visualization through the following states:</p>
<ol>
<li><strong>Staging</strong> &#8211; The idea bin. All the things we may want to someday do. Not shown on the dashboard, since it&#8217;s not getting active attention. It&#8217;s &#8220;pre-dashboard.&#8221;</li>
<li><strong>Next</strong> &#8211; We know we want to do it. Now we&#8217;re figuring out what it is, and how to do it. Writing functional and technical specifications.</li>
<li><strong>Active</strong> &#8211; We know what it is, we know how to do it, and now we&#8217;re executing on that plan.</li>
<li><strong>Finished</strong> &#8211; It&#8217;s technically complete, but we&#8217;re not &#8220;done.&#8221; We&#8217;re still wrapping up documentation (even though whatever we built is likely in production, or at least beta), we&#8217;re carefully watching logs and observing trends, we&#8217;re asking initial users for feedback, and attention is generally still being paid to this effort.</li>
<li><strong>Archive</strong> &#8211; We are fully complete. No additional attention is being spent on the project. Not shown on the dashboard, since it&#8217;s not getting active attention. It&#8217;s &#8220;post-dashboard.&#8221;</li>
</ol>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard-Kanban.png" rel="lightbox[372]" title="Product Roadmap Dashboard - Kanban"><img class="aligncenter size-large wp-image-380" title="Product Roadmap Dashboard - Kanban" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard-Kanban-1024x576.png" alt="" width="632" height="355" /></a></p>
<p><strong>The Gantt Chart &#8211; Visualize &#8220;duration&#8221; and &#8220;sequence&#8221;</strong></p>
<p>Here, we sort projects by expected due date (most recent to least recent), and show a month-level simplified Gantt chart to help folks understand at a glance the duration of projects.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard-Gantt.png" rel="lightbox[372]" title="Product Roadmap Dashboard - Gantt"><img class="aligncenter size-large wp-image-385" title="Product Roadmap Dashboard - Gantt" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard-Gantt-1024x575.png" alt="" width="632" height="354" /></a></p>
<p><strong>The Whole Dashboard</strong></p>
<p>If you combine these two views together, you can see in a simple dashboard where we&#8217;re going, where we currently stand, how long it will take to get to where we want to go, and in what order will we arrive at each destination.<br />
<a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard.png" rel="lightbox[372]" title="Product Roadmap Dashboard"><img class="aligncenter size-large wp-image-388" title="Product Roadmap Dashboard" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Product-Roadmap-Dashboard-1024x591.png" alt="" width="632" height="364" /></a></p>
<h2>Getting Started: Prerequisites</h2>
<p>Ready to make your own Product Roadmap Dashboard in Confluence? Great! Let&#8217;s get started. You&#8217;ll need to get the following prerequisites in order first:</p>
<ul>
<li>Running instance of <a href="http://www.atlassian.com/software/confluence/">Confluence</a>. We currently use 3.1.</li>
<li>Plugins installed:
<ul>
<li>From <a href="http://www.customware.net/repository/display/CustomWare/Home">CustomWare</a>:
<ul>
<li><a href="http://www.customware.net/repository/display/AtlassianPlugins/Linking+Plugin">Linking Plugin</a> &#8211; Enables the &#8220;Add New Project&#8221; links that pre-populate live templates and labels</li>
<li><a href="http://www.customware.net/repository/display/AtlassianPlugins/Scaffolding+Plugin">Scaffolding Plugin</a> &#8211; Enables the templates and forms for project metadata</li>
<li><a href="http://www.customware.net/repository/display/AtlassianPlugins/Reporting+Plugin">Reporting Plugin</a> &#8211; Enables aggregation of the project metadata into the dashboard views</li>
<li><a href="http://www.customware.net/repository/display/AtlassianPlugins/Composition+Plugin">Composition Plugin</a> &#8211; Enables the deck/card layout</li>
</ul>
</li>
<li>From <a href="https://plugins.atlassian.com/profile/details/1196">Bob Swift</a>:
<ul>
<li><a href="https://plugins.atlassian.com/plugin/details/197">Table Plugin</a> &#8211; Enables dynamically sortable tables</li>
<li><a href="https://plugins.atlassian.com/plugin/details/152">Cache Plugin</a> &#8211; Enables server side caching of heavy pages</li>
</ul>
</li>
<li>From <a href="http://simonbartlett.co.uk/">Simon Bartlett</a>:
<ul>
<li><a href="http://confluence.atlassian.com/display/DISC/jQuery+User+Macro">jQuery User Macro</a> &#8211; Enables custom jQuery for interface tweaks</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>You&#8217;ll want all of those plugins. Yes. All of them. They&#8217;re really useful!</p>
<h2>Projects, Platforms, and States &#8211; Using Labels as Metadata</h2>
<p>The dashboard makes extensive use of labels as metadata. There are three main categories of labels we use:</p>
<ul>
<li>&#8220;project&#8221; &#8211; By having the label &#8220;project&#8221; on all pages that are relevant to be tracked in the Product Roadmap Dashboard, we have a simple way to filter out irrelevant pages later on. No variance or other values here. Just &#8220;project&#8221; as the label value.</li>
<li>Platform Team &#8211; For us, values are: &#8220;dynect&#8221; (<a href="http://dyn.com/why-dyn/dns-solutions">Dynect Platform</a>), &#8220;dyndns&#8221; (<a href="http://www.dyndns.com">DynDNS.com</a>), &#8220;ig&#8221; (<a href="http://www.dyndns.com/services/dynguide/">Internet Guide</a>), &#8220;sendlabs&#8221; (<a href="http://dyn.com/enterprise-email/sendlabs-smartmta">SendLabs Email Delivery</a>), &#8220;product&#8221; (Dyn Product Team),  and &#8220;operations&#8221; (Dyn Network Operations Team)</li>
<li>Project State &#8211; As mentioned in the Kanban chart above, these are the project states: &#8220;staging&#8221;, &#8220;next&#8221;, &#8220;active&#8221;, &#8220;finished&#8221;, &#8220;archive&#8221;.</li>
</ul>
<p>You&#8217;ll see how this assists with our assembly of the dashboard view momentarily.</p>
<h2>Adding New Projects &#8211; Linking Plugin and Scaffolding Plugin</h2>
<p>To create a new project, there are handy links included at the top of each dashboard (look for the green plus at top-left below).</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/add_new_project_screenshot.jpg" rel="lightbox[372]" title="Add New Project"><img class="aligncenter size-large wp-image-440" title="Add New Project" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/add_new_project_screenshot-1024x280.jpg" alt="" width="632" height="172" /></a></p>
<p>These are rendered using the add-page macro from the Linking Plugin:</p>
<pre class="brush: plain; title: ; notranslate">
(+) {add-page:template=Project|labels=dynect,project|title=New Project|live=true|parent=Projects}Add a new Dynect Platform project{add-page}
</pre>
<p>When we click on the add project link, a new page gets created based on our &#8220;Project&#8221; template. The actual content of the page will have only have the &#8220;{live-template:Project}&#8221; macro. The real work gets done by the Scaffolding Plugin using the template, discussed in the next section.</p>
<h2>Project Page Templates &#8211; Scaffolding Plugin</h2>
<p>The project template below is divided into the following sections:</p>
<ol>
<li>Quick links to important sections within the page (Details, Schedule), as well as links to all of the individual dashboards (not only the main company-wide dashboard, but focused dashboards for each platform team as well).</li>
<li>Metadata on the two-sentence description (Overview), the team (Implementation Lead and Team Members), as well as the drop-down for the state label (Staging, Next, Active, Finished, Archived) and the expected finish date (by default, Christmas!).</li>
<li>Wiki content with a default boilerplate for linking to children pages, attachments, as well as a table showing customers requesting the feature and the functional specifications. These are the project details. No metadata here.</li>
<li>The Gantt chart controls. The individual radio buttons are used to set whether or not a given month shows the green dot in the Gantt style chart.</li>
<li>Magic jQuery snippet that ensures when we change the project state using the drop-down, the previous state (remember, applied as a page label) gets removed.</li>
</ol>
<p>In order to set templates up in your instance of Confluence, go to the relevant space in confluence, and go to Browse -&gt; Advanced -&gt; Templates (you won&#8217;t see it until you have the Scaffolding Plugin installed). Create a new template called &#8220;Projects&#8221;, and paste in the below content.</p>
<pre class="brush: plain; title: ; notranslate">
{anchor:Top}

||Quick Links|[#Project Details]|[#Project Schedule]|

|| Dashboards | [Dyn|Dyn Dashboard] | [Dynect|Dynect Dashboard] | [DynDNS|DynDNS Dashboard] | [IG|Internet Guide Dashboard] | [SendLabs|SendLabs Dashboard] | [Product|Product Management Dashboard] | [Operations|Operations Dashboard]

|| Overview | {excerpt-data:Overview|type=area|width=400px|height=100px|max-length=1000|required=true}{excerpt-data} |
||Implementation Lead|{list-data:Implementation Lead|required=true}{user-options:groups=engops,product}{text-sort:user:full name}{user-options}{list-data}|
|| Team Members: | {list-data:Team Members|type=check|multiple=true|required=true}{user-options:groups=engops,product,bizdev}{text-sort:user:full name}{user-options}{list-data} |
|| Current Status: | {list-data:Status}{label-options:staging,next,active,finished,archive}{list-data} |
|| Expected Finish Date: | {date-data:Finish Date|format=yyyy-MMM-dd|required=true}2011-Dec-25{date-data} ||

h1. Project Details

{text-data:Details|type=area|content=wiki|width=100%|height=500px|}
h3. Quick Links

{children:all=true}
{attachments}

h3. What is the feature being requested?

h3. Who is requesting it?
||Date||Requester||Contract Size||Account Manager||Link to Request||Additional Notes||
| | | | | | |

h3. Functional specifications
{text-data}

h1. Project Schedule

{metadata-list:orientation=horizontal}
|| Jan 2011 | {list-data:Jan 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data} ||
|| Feb 2011 | {list-data:Feb 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data} ||
|| Mar 2011 | {list-data:Mar 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data} ||
|| Apr 2011 | {list-data:Apr 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| May 2011 | {list-data:May 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Jun 2011 | {list-data:Jun 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Jul 2011 | {list-data:Jul 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Aug 2011 | {list-data:Aug 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Sep 2011 | {list-data:Sep 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Oct 2011 | {list-data:Oct 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Nov 2011 | {list-data:Nov 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
|| Dec 2011 | {list-data:Dec 2011|type=check}{list-option:Y}!Icons^green-bullet.png|align=center!{list-option}{list-option:N} {list-option}{list-data}||
{metadata-list}

[!Icons^jump-top.jpg!|#Top]

{jquery}
jQuery(&quot;select[name='scaffold.Status']&quot;).change(function() {
  var labels = jQuery(&quot;input#labelsString&quot;).val();
  labels = labels.replace(&quot;staging&quot;,&quot;&quot;).replace(&quot;next&quot;,&quot;&quot;).replace(&quot;active&quot;,&quot;&quot;).replace(&quot;finished&quot;,&quot;&quot;).replace(&quot;archive&quot;,&quot;&quot;);
  jQuery(&quot;input#labelsString&quot;).val(labels);
});
{jquery}
</pre>
<h2>The Company Wide Dashboard</h2>
<p>The company wide dashboard aggregates the metadata stored using the templates and the Scaffolding Plugin into the view seen in the screenshots earlier. The page is divided into the following sections:</p>
<ol>
<li>Caching on the server side. Borderline requirements. The Reporting Plugin does not quickly aggregate all of this data.</li>
<li>Links to the individual platform team dashboards</li>
<li>The Kanban style chart, created using three columns with {section} and {column} macros, each column containing a {contentbylabel} macro that aggregates data based on page labels.</li>
<li>Add new project links for each platform team. Done in the same manner as shown earlier using the Linking Plugin.</li>
<li>The Gantt style chart. Created using the Reporting Plugin. Basically renders the green buttons based on whether or not that associated project page had the radio button asserted or deasserted. The {deck} and {card} macros are used to show different variants of the Gantt chart.</li>
<li>The &#8220;Project Color Codes&#8221; template is rendered. This basically includes jQuery code that changes colors, updates icons, and makes the views shown in the above screenshots possible.</li>
</ol>
<pre class="brush: plain; title: ; notranslate">
{cache:refresh=1d|showRefresh=true|showDate=true}

{anchor:top}

----

{center}

h1. [Projects]

|| Dashboards | [Dynect|Dynect Dashboard] | [DynDNS|DynDNS Dashboard] | [IG|Internet Guide Dashboard] | [SendLabs|SendLabs Dashboard] | [Product|Product Management Dashboard] | [Operations|Operations Dashboard]

{composition-setup}

h2. Current Dyn Inc. Projects and Efforts

(Columns are sorted by page modification time, most recent to least recent)

{section:border=true}
{column} !Icons^dashboard_whats_next.png|align=center!
{contentbylabel:label=+project,+next|showLabels=true|showSpace=false|maxResults=99|space=@self|sort=modified|reverse=true}
{column}
{column} !Icons^dashboard_whats_active.png|align=center!
{contentbylabel:label=+project,+active|showLabels=true|showSpace=false|maxResults=99|space=@self|sort=modified|reverse=true}
{column}
{column} !Icons^dashboard_what_just_finished.png|align=center!
{contentbylabel:label=+project,+finished|showLabels=true|showSpace=false|maxResults=99|space=@self|sort=modified|reverse=true}
{column}
{section}

|(+) {add-page:template=Project|labels=dynect,project|title=New Project|live=true|parent=Projects}Add a new Dynect project{add-page} | (+) {add-page:template=Project|labels=dyndns,project|title=New Project|live=true|parent=Projects}Add a new DynDNS project{add-page} |(+) {add-page:template=Project|labels=ig,project|title=New Project|live=true|parent=Projects}Add a new Internet Guide project{add-page} | (+) {add-page:template=Project|labels=sendlabs,project|title=New Project|live=true|parent=Projects}Add a new SendLabs project{add-page} | (+) {add-page:template=Project|labels=product,project|title=New Project|live=true|parent=Projects}Add a new Product project{add-page} | (+) {add-page:template=Project|labels=operations,project|title=New Project|live=true|parent=Projects}Add a new Operations project{add-page} |

_(On the next screen, enter in a name for the project, click Save, then provide the project details. Click Save again.)_

h2. Roadmaps

(Rows are sorted by expected finish date, although you can click on a column name to sort dynamically)

{deck:id=projects}
{card:label=Active Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=+active,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-column:title=May 2011}{report-info:metadata:May 2011|render=wiki}{report-column}
{report-column:title=Jun 2011}{report-info:metadata:Jun 2011|render=wiki}{report-column}
{report-column:title=Jul 2011}{report-info:metadata:Jul 2011|render=wiki}{report-column}
{report-column:title=Aug 2011}{report-info:metadata:Aug 2011|render=wiki}{report-column}
{report-column:title=Sep 2011}{report-info:metadata:Sep 2011|render=wiki}{report-column}
{report-table}
{table-plus}
{card}

{card:label=What's Next Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=+next,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-column:title=May 2011}{report-info:metadata:May 2011|render=wiki}{report-column}
{report-column:title=Jun 2011}{report-info:metadata:Jun 2011|render=wiki}{report-column}
{report-column:title=Jul 2011}{report-info:metadata:Jul 2011|render=wiki}{report-column}
{report-column:title=Aug 2011}{report-info:metadata:Aug 2011|render=wiki}{report-column}
{report-column:title=Sep 2011}{report-info:metadata:Sep 2011|render=wiki}{report-column}
{report-column:title=Oct 2011}{report-info:metadata:Oct 2011|render=wiki}{report-column}
{report-column:title=Nov 2011}{report-info:metadata:Nov 2011|render=wiki}{report-column}
{report-column:title=Dec 2011}{report-info:metadata:Dec 2011|render=wiki}{report-column}
{report-table}

{table-plus}
{card}

{card:label=Previous Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=-staging,-next,-active,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Nov 2010}{report-info:metadata:Nov 2010|render=wiki}{report-column}
{report-column:title=Dec 2010}{report-info:metadata:Dec 2010|render=wiki}{report-column}
{report-column:title=Jan 2011}{report-info:metadata:Jan 2011|render=wiki}{report-column}
{report-column:title=Feb 2011}{report-info:metadata:Feb 2011|render=wiki}{report-column}
{report-column:title=Mar 2011}{report-info:metadata:Mar 2011|render=wiki}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-table}

{table-plus}
{card}
{deck}

{center}

----

{live-template:Project Color Codes}

{anchor:bottom}

{cache}
</pre>
<h2>The Individual Platform Team Dashboards</h2>
<p>The individual platform team dashboards are nearly identical to the company wide dashboard. The only real differences is the additional filtering based on the platform label.</p>
<p>For example, if the &#8220;active&#8221; column in the  Kanban style chart in the company wide dashboard was rendered by looking at pages that have the &#8220;project&#8221; and &#8220;active&#8221; labels, then the &#8220;active&#8221; column in the Kanban style chart in the Dynect Platform specific dashboard is rendered by looking at pages that have the &#8220;project&#8221;, &#8220;active&#8221;, and &#8220;dynect&#8221; labels. Pretty simple.</p>
<pre class="brush: plain; title: ; notranslate">
{cache:refresh=1d|showRefresh=true|showDate=true}

(+) {add-page:template=Project|labels=dynect,project|title=New Project|live=true|parent=Projects}Add a new Dynect Platform project{add-page} _(On the next screen, enter in a name for the project, click Save, then provide the project details. Click Save again.)_

{composition-setup}

{center}

h2. Current Dynect Platform Projects and Efforts

{section:border=true}
{column} !Icons^dashboard_whats_next.png|align=center!
{contentbylabel:label=+project,+dynect,+next|showLabels=true|showSpace=false|maxResults=99|space=@self}
{column}
{column} !Icons^dashboard_whats_active.png|align=center!
{contentbylabel:label=+project,+dynect,+active|showLabels=true|showSpace=false|maxResults=99|space=@self}
{column}
{column} !Icons^dashboard_what_just_finished.png|align=center!
{contentbylabel:label=+project,+dynect,+finished|showLabels=true|showSpace=false|maxResults=99|space=@self}
{column}
{section}

| {toggle-cloak:id=Change Project Status} {color:blue}_Change project status._{color} | {toggle-cloak:id=Dynect Staging} {color:blue}_View Dynect staging area for projects._{color} | {toggle-cloak:id=Dynect Archive} {color:blue}_View archived Dynect projects._{color} |
{cloak:id=Change Project Status}
{checklist:name=Project Status|label=dynect|parent=Projects|checklabels=staging,next,active,finished,archive}
{cloak}
{cloak:id=Dynect Staging}
{report-table}
{content-reporter:space=PDM|type=page|label=+project,+dynect,+staging}
{text-sort:data:Priority}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true}{report-column}
{report-column:title=Priority}{report-info:data:Priority}{report-column}
{report-column:title=Lead}{report-info:data:Implementation Lead|link=true}{report-column}
{report-column:title=Team Members}{report-info:data:Team Members|link=true}{report-column}
{report-empty}Nothing to report.{report-empty}
{report-table}
{cloak}
{cloak:id=Dynect Archive}
{report-table}
{content-reporter:space=PDM|type=page|label=+project,+dynect,+archive}
{text-sort:data:Priority}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true}{report-column}
{report-column:title=Priority}{report-info:data:Priority}{report-column}
{report-column:title=Lead}{report-info:data:Implementation Lead|link=true}{report-column}
{report-column:title=Team Members}{report-info:data:Team Members|link=true}{report-column}
{report-empty}Nothing to report.{report-empty}
{report-table}
{cloak}

h2. Roadmaps

{deck:id=projects}
{card:label=Active Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=+active,+dynect,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-column:title=May 2011}{report-info:metadata:May 2011|render=wiki}{report-column}
{report-column:title=Jun 2011}{report-info:metadata:Jun 2011|render=wiki}{report-column}
{report-column:title=Jul 2011}{report-info:metadata:Jul 2011|render=wiki}{report-column}
{report-column:title=Aug 2011}{report-info:metadata:Aug 2011|render=wiki}{report-column}
{report-column:title=Sep 2011}{report-info:metadata:Sep 2011|render=wiki}{report-column}
{report-table}
{table-plus}
{card}

{card:label=What's Next Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=+next,+dynect,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-column:title=May 2011}{report-info:metadata:May 2011|render=wiki}{report-column}
{report-column:title=Jun 2011}{report-info:metadata:Jun 2011|render=wiki}{report-column}
{report-column:title=Jul 2011}{report-info:metadata:Jul 2011|render=wiki}{report-column}
{report-column:title=Aug 2011}{report-info:metadata:Aug 2011|render=wiki}{report-column}
{report-column:title=Sep 2011}{report-info:metadata:Sep 2011|render=wiki}{report-column}
{report-column:title=Oct 2011}{report-info:metadata:Oct 2011|render=wiki}{report-column}
{report-column:title=Nov 2011}{report-info:metadata:Nov 2011|render=wiki}{report-column}
{report-column:title=Dec 2011}{report-info:metadata:Dec 2011|render=wiki}{report-column}
{report-table}

{table-plus}
{card}

{card:label=Previous Roadmap}
{table-plus:columnTypes=S}

{report-table}
{content-reporter:types=page|labels=-staging,-next,-active,+dynect,+project}
{date-sort:data:Finish Date|order=ascending}
{content-reporter}
{report-column:title=Page}{report-info:title|link=true} {html}&lt;span class=&quot;smalltext&quot;&gt;{html}{report-info:page:labels|separator=comma|link=true}{html}&lt;/span&gt;{html}{report-column}
{report-column:title=Finish Date}{get-data:name=Finish Date|format=yyyy-MM-dd}{report-column}
{report-column:title=Nov 2010}{report-info:metadata:Nov 2010|render=wiki}{report-column}
{report-column:title=Dec 2010}{report-info:metadata:Dec 2010|render=wiki}{report-column}
{report-column:title=Jan 2011}{report-info:metadata:Jan 2011|render=wiki}{report-column}
{report-column:title=Feb 2011}{report-info:metadata:Feb 2011|render=wiki}{report-column}
{report-column:title=Mar 2011}{report-info:metadata:Mar 2011|render=wiki}{report-column}
{report-column:title=Apr 2011}{report-info:metadata:Apr 2011|render=wiki}{report-column}
{report-table}

{table-plus}
{card}
{deck}

{live-template:Project Color Codes}

{center}

{cache}
</pre>
<h2>Tweaking Icons, Colors, and Display &#8211; jQuery User Macro</h2>
<p>Remember our fancy color coding and platform team icons? Those are accomplished with a little jQuery magic. I&#8217;ll admit, this is a dirty, nasty hack, but the visual impact makes it worth tolerating.</p>
<p>To add this in, go to the relevant space in Confluence (minor limitation: I haven&#8217;t figured out how to share templates across spaces&#8230; all of the work done here was in a single &#8220;Product Management&#8221; space), and go to Browse -&gt; Advanced -&gt; Templates. Add a template called &#8220;Project Color Codes&#8221;, and paste in the following content:</p>
<pre class="brush: plain; title: ; notranslate">
{jquery}
jQuery(&quot;.smalltext&quot;).hide();

jQuery(&quot;a:contains('ig')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;ig&quot;;}).parent().parent().css('background-color', '#E4F7FF');
jQuery(&quot;a:contains('ig')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;ig&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/IGIcon.gif&quot;);

jQuery(&quot;a:contains('product')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;product&quot;;}).parent().parent().css('background-color', '#CCFFCC');
jQuery(&quot;a:contains('product')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;product&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/ProductIcon.gif&quot;);

jQuery(&quot;a:contains('dyndns')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;dyndns&quot;;}).parent().parent().css('background-color', '#FFFFCC');
jQuery(&quot;a:contains('dyndns')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;dyndns&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/DynDNSIcon.gif&quot;);

jQuery(&quot;a:contains('dynect')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;dynect&quot;;}).parent().parent().css('background-color', '#FFCC99');
jQuery(&quot;a:contains('dynect')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;dynect&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/DynectIcon.gif&quot;);

jQuery(&quot;a:contains('sendlabs')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;sendlabs&quot;;}).parent().parent().css('background-color', '#ECECEC');
jQuery(&quot;a:contains('sendlabs')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;sendlabs&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/SendLabsIcon.gif&quot;);

jQuery(&quot;a:contains('operations')&quot;).filter(function() {return this.firstChild.nodeValue === &quot;operations&quot;;}).parent().parent().find('img').attr(&quot;src&quot;, &quot;/download/attachments/10684251/OperationsIcon.gif&quot;);
{jquery}
</pre>
<p>You&#8217;ll need to do some tweaking of the above to make it work for you. Specifically, you&#8217;ll need icons that you can use for your platforms, and include the links as appropriate. If you have trouble with this portion, try downloading the <a href="http://getfirebug.com/">Firebug plugin for Firefox</a>, and play with the &#8220;Inspect&#8221; tool while viewing your instance of Confluence. It&#8217;s very useful for writing the jQuery selectors on what elements to alter and how to alter them.</p>
<p>We keep all of the graphics for the dashboard under a single page called &#8220;Icons&#8221;. Here are the graphics, if you&#8217;d like to use them as a starting point:</p>
<p style="text-align: center;"><strong>Kanban Headers</strong><br />
<img class="aligncenter size-full wp-image-458" title="dashboard_whats_next" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/dashboard_whats_next.png" alt="" width="313" height="57" /><br />
<img class="aligncenter size-full wp-image-459" title="dashboard_whats_active" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/dashboard_whats_active.png" alt="" width="313" height="57" /><br />
<img class="aligncenter size-full wp-image-460" title="dashboard_what_just_finished" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/dashboard_what_just_finished.png" alt="" width="313" height="57" /></p>
<p style="text-align: center;"><strong>Platform Icons</strong></p>
<p><img class="aligncenter size-full wp-image-457" title="DynDNSIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/DynDNSIcon.gif" alt="" width="16" height="16" /><img class="aligncenter size-full wp-image-456" title="DynectIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/DynectIcon.gif" alt="" width="16" height="16" /><img class="aligncenter size-full wp-image-454" title="IGIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/IGIcon.gif" alt="" width="16" height="16" /><img class="aligncenter size-full wp-image-449" title="SendLabsIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/SendLabsIcon.gif" alt="" width="16" height="16" /><img class="aligncenter size-full wp-image-451" title="OperationsIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/OperationsIcon.gif" alt="" width="16" height="16" /><img class="aligncenter size-full wp-image-450" title="ProductIcon" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/ProductIcon.gif" alt="" width="16" height="16" /></p>
<p style="text-align: center;"><strong>Misc. Icons</strong><br />
<img class="aligncenter size-full wp-image-455" title="green-bullet" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/green-bullet.png" alt="" width="12" height="12" /><img class="aligncenter size-full wp-image-453" title="jump-bottom" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/jump-bottom.jpg" alt="" width="12" height="12" /><img class="aligncenter size-full wp-image-452" title="jump-top" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/jump-top.jpg" alt="" width="12" height="12" /></p>
<h2>Server Side Caching</h2>
<p>You&#8217;ll notice a number of mentions of the {cache} macro in the previous examples. When you&#8217;re just getting going, I&#8217;d recommend removing this so you can iterate quickly on changes without having to clear the cache each time by clicking the refresh icon on each dashboard. However, once you&#8217;re happy with your dashboard pages, templates, and other information, re-enable it to speed up page renders. It makes a big difference.</p>
<h2>Need Help?</h2>
<p>If you need help, I can try and point you in the right direction. Leave a comment below with your questions.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/atlassian-summit-2011-product-management-2-0-with-confluence/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/atlassian-summit-2011-product-management-2-0-with-confluence/</feedburner:origLink></item>
		<item>
		<title>CloudCamp Boston – Cloud in the Enterprise</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/0ypdh81gQT0/</link>
		<comments>http://www.standingonthebrink.com/2011/06/cloudcamp-boston-cloud-in-the-enterprise/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 20:44:44 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[cloudcamp]]></category>
		<category><![CDATA[cloudexpo]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=424</guid>
		<description><![CDATA[Slides from last night&#8217;s @CloudCamp #Boston lightning talk in Waltham, MA. A good crowd with a great enterprise focus. Now @tuftsmoose is gearing up for his own @CloudCamp lightning talk at @CloudExpo #NY next week! CloudCamp Boston &#8211; June 2, 2011 View more presentations from Dyn Register for @CloudCamp #NY here: http://www.cloudcamp.org/ny/2011-06-07]]></description>
			<content:encoded><![CDATA[<p>Slides from last night&#8217;s <a href="http://twitter.com/CloudCamp" class="tweet-username">@CloudCamp</a> <a href="http://search.twitter.com/search?q=%23Boston" class="tweet-hashtag">#Boston</a> lightning talk in Waltham, MA. A good crowd with a great enterprise focus. Now <a href="http://twitter.com/tuftsmoose" class="tweet-username">@tuftsmoose</a> is gearing up for his own <a href="http://twitter.com/CloudCamp" class="tweet-username">@CloudCamp</a> lightning talk at <a href="http://twitter.com/CloudExpo" class="tweet-username">@CloudExpo</a> <a href="http://search.twitter.com/search?q=%23NY" class="tweet-hashtag">#NY</a> next week!</p>
<div style="width:425px; margin: auto;" id="__ss_8200616"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/dyninc/cloudcamp-boston-june-2-2011" title="CloudCamp Boston - June 2, 2011">CloudCamp Boston &#8211; June 2, 2011</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8200616" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/dyninc">Dyn</a> </div>
</p></div>
</div>
<p>Register for <a href="http://twitter.com/CloudCamp" class="tweet-username">@CloudCamp</a> <a href="http://search.twitter.com/search?q=%23NY" class="tweet-hashtag">#NY</a> here: <a href="http://www.cloudcamp.org/ny/2011-06-07" rel="nofollow">http://www.cloudcamp.org/ny/2011-06-07</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/cloudcamp-boston-cloud-in-the-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/cloudcamp-boston-cloud-in-the-enterprise/</feedburner:origLink></item>
		<item>
		<title>Best Backpack for 13″ MacBook Pro</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/yKzc-FrfReA/</link>
		<comments>http://www.standingonthebrink.com/2011/06/best-backpack-for-13-macbook-pro/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 02:35:29 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[In The Field]]></category>
		<category><![CDATA[backpack]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[macbook]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=395</guid>
		<description><![CDATA[I&#8217;m very picky when it comes to backpacks. Perhaps to a fault. I need the right balance of size, weight, number of pockets, and easy of access. For several years now, I&#8217;ve been perfectly happy with an Outdoor Products brand bag that has held up well. Even chose to sew a few pieces back together [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very picky when it comes to backpacks. Perhaps to a fault. I need the right balance of size, weight, number of pockets, and easy of access.</p>
<p>For several years now, I&#8217;ve been perfectly happy with an Outdoor Products brand bag that has held up well. Even chose to sew a few pieces back together when they got damaged rather than buy a new bag.</p>
<p>But this past week, a strap gave way, sending my precious 13&#8243; MacBook Pro on a 4 ft&#8217; freefall from my shoulder to the concrete floor of the garage. Even in failure, the bag held up; no damage to the laptop.</p>
<p>When it came time for a new bag, I searched and searched and searched, and decided to go with my gut. Another Outdoor Products bag. The <a href="http://www.amazon.com/gp/product/B001S2EKYG/ref=as_li_ss_tl?ie=UTF8&amp;tag=thgolionabu-20&amp;linkCode=as2&amp;camp=217153&amp;creative=399701&amp;creativeASIN=B001S2EKYG">best backpack for a 13&#8243; MacBook Pro</a>.</p>
<p><a href="http://www.amazon.com/gp/product/B001S2EKYG/ref=as_li_ss_tl?ie=UTF8&amp;tag=thgolionabu-20&amp;linkCode=as2&amp;camp=217153&amp;creative=399701&amp;creativeASIN=B001S2EKYG"><img class="aligncenter size-full wp-image-396" title="Best Backpack for 13&quot; MacBook Pro" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack.png" alt="" width="305" height="347" /></a></p>
<p>What&#8217;s shocking is how little information is available online about this bag. It comes with a wonderful feature pamphlet, but you would have to see the bag in a store to read it.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Cover.jpg" rel="lightbox[395]" title="Backpack - Cover"><img class="aligncenter size-medium wp-image-398" title="Backpack - Cover" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Cover-205x300.jpg" alt="" width="205" height="300" /></a><br />
<a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Feature-1.jpg" rel="lightbox[395]" title="Backpack - Feature 1"><img class="aligncenter size-medium wp-image-402" title="Backpack - Feature 1" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Feature-1-300x295.jpg" alt="" width="300" height="295" /></a><br />
<a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Feature-2.jpg" rel="lightbox[395]" title="Backpack - Feature 2"><img class="aligncenter size-medium wp-image-405" title="Backpack - Feature 2" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Feature-2-296x300.jpg" alt="" width="296" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Digital-1.jpg" rel="lightbox[395]" title="Backpack - Digital 1"><img class="aligncenter size-medium wp-image-406" title="Backpack - Digital 1" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Digital-1-279x300.jpg" alt="" width="279" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Digital-2.jpg" rel="lightbox[395]" title="Backpack - Digital 2"><img class="aligncenter size-medium wp-image-407" title="Backpack - Digital 2" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Digital-2-261x300.jpg" alt="" width="261" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Media-2.jpg" rel="lightbox[395]" title="Backpack - Media 2"><img class="aligncenter size-medium wp-image-408" title="Backpack - Media 2" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Media-2-237x300.jpg" alt="" width="237" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Laptop-1.jpg" rel="lightbox[395]" title="Backpack - Laptop 1"><img class="aligncenter size-medium wp-image-409" title="Backpack - Laptop 1" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Laptop-1-221x300.jpg" alt="" width="221" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Laptop-2.jpg" rel="lightbox[395]" title="Backpack - Laptop 2"><img class="aligncenter size-medium wp-image-410" title="Backpack - Laptop 2" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Laptop-2-213x300.jpg" alt="" width="213" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Travel-Security-1.jpg" rel="lightbox[395]" title="Backpack - Travel Security 1"><img class="aligncenter size-medium wp-image-411" title="Backpack - Travel Security 1" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Travel-Security-1-227x300.jpg" alt="" width="227" height="300" /></a><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Travel-Security-2.jpg" rel="lightbox[395]" title="Backpack - Travel Security 2"><img class="aligncenter size-medium wp-image-412" title="Backpack - Travel Security 2" src="http://www.standingonthebrink.com/wp-content/uploads/2011/06/Backpack-Travel-Security-2-207x300.jpg" alt="" width="207" height="300" /></a></p>
<p>Available on <a href="http://www.amazon.com/gp/product/B001S2EKYG/ref=as_li_ss_tl?ie=UTF8&amp;tag=thgolionabu-20&amp;linkCode=as2&amp;camp=217153&amp;creative=399701&amp;creativeASIN=B001S2EKYG">Amazon.com</a> for $70.33 and free shipping!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/06/best-backpack-for-13-macbook-pro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/06/best-backpack-for-13-macbook-pro/</feedburner:origLink></item>
		<item>
		<title>Atlassian Summit 2010: Bamboo and Selenium Web Application Testing</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/NtyewxFU9L8/</link>
		<comments>http://www.standingonthebrink.com/2011/05/atlassian-summit-2010-bamboo-and-selenium-web-application-testing/#comments</comments>
		<pubDate>Wed, 18 May 2011 12:55:10 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[atlassian summit]]></category>
		<category><![CDATA[bamboo]]></category>
		<category><![CDATA[selenium]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=353</guid>
		<description><![CDATA[Gave the following lightning talk at last year&#8217;s Atlassian Summit on using Bamboo and Selenium for functional web application testing. Bamboo and Selenium Web Application Testing View more presentations from Dyn This was basically a condensed, 15-minute lightning talk version of an hour long seminar I gave way back when at @DynInc HQ. Here is [...]]]></description>
			<content:encoded><![CDATA[<p>Gave the following lightning talk at last year&#8217;s Atlassian Summit on using <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a> and <a href="http://www.seleniumhq.org">Selenium</a> for functional web application testing.</p>
<div style="width:425px; margin: 0 auto;" id="__ss_4478873"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/dyninc/bamboo-and-selenium-web-application-testing" title="Bamboo and Selenium Web Application Testing">Bamboo and Selenium Web Application Testing</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/4478873" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/dyninc">Dyn</a> </div>
</p></div>
<p>This was basically a condensed, 15-minute lightning talk version of an hour long seminar I gave way back when at <a href="http://twitter.com/DynInc" class="tweet-username">@DynInc</a> HQ. Here is the full length series:</p>
<h2>Introduction to Selenium and the Selenium IDE</h2>
<p><embed src="http://blip.tv/play/gt1a7cskAg" type="application/x-shockwave-flash" width="480" height="350" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<h2>Best Practices for Developing Robust Tests with Selenium</h2>
<p><embed src="http://blip.tv/play/gt1a7cx8Ag" type="application/x-shockwave-flash" width="480" height="350" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/05/atlassian-summit-2010-bamboo-and-selenium-web-application-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/05/atlassian-summit-2010-bamboo-and-selenium-web-application-testing/</feedburner:origLink></item>
		<item>
		<title>How To Rent a Property in Eight Weeks for $42.50</title>
		<link>http://feedproxy.google.com/~r/StandingOnTheBrink/~3/XDHHRHoTTSo/</link>
		<comments>http://www.standingonthebrink.com/2011/05/how-to-rent-a-property-in-eight-weeks-for-42-50/#comments</comments>
		<pubDate>Mon, 16 May 2011 13:44:19 +0000</pubDate>
		<dc:creator>Cory von Wallenstein</dc:creator>
				<category><![CDATA[In The Field]]></category>
		<category><![CDATA[find a tenant]]></category>
		<category><![CDATA[landlord]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[rental]]></category>

		<guid isPermaLink="false">http://www.standingonthebrink.com/?p=332</guid>
		<description><![CDATA[After many years of commuting from Hopedale, MA to @DynInc in Manchester, NH, we were finally able to make a move up North. The commute went from 1 hour and 15 minutes down to under 20 minutes, and has been a most welcomed change. When we made the decision to move back in December 2010, [...]]]></description>
			<content:encoded><![CDATA[<p>After many years of commuting from Hopedale, MA to <a href="http://twitter.com/DynInc" class="tweet-username">@DynInc</a> in Manchester, NH, we were finally able to make a move up North. The commute went from 1 hour and 15 minutes down to under 20 minutes, and has been a most welcomed change.</p>
<p>When we made the decision to move back in December 2010, we decided to try our hand at renting out our 3 bedroom townhouse. Our goal? Find a tenant by May. Man did we overachieve.</p>
<p>We had our tenant moved in by March 2011. Our rental property was only vacant for 2.5 weeks. How&#8217;d we do it? Quite simply really&#8230; by figuring out what was the problem with nearly all apartment and rental listings as-is:</p>
<p><strong>They didn&#8217;t help you envision what it would be like to call a place home.</strong></p>
<p>Our solution? Hop over to <a href="http://DynDNS.com" rel="nofollow">http://DynDNS.com</a>, register a domain, fire up an instance of WordPress running on a server in the basement, and launch <a href="http://liveinlaurelwood.com" rel="nofollow">http://liveinlaurelwood.com</a> dedicated to helping you envision what it would be like in your new home.</p>
<p>Based on our experience, here are the 4 lessons learned in renting out a property as first-time landlords.</p>
<h2>Lesson One: Be Different</h2>
<p>We chose to be different. We didn&#8217;t list the townhouse on a rentals web site; we dedicated an entire web site to the single townhouse.</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Homepage.png" rel="lightbox[332]" title="LiveInLaurelwood - Homepage"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Homepage-300x194.png" alt="" title="LiveInLaurelwood - Homepage" width="300" height="194" class="aligncenter size-medium wp-image-333" /></a></p>
<p>This really made us stand out from the rest. Where others were trying to cram a whole description into two sentences in the newspaper and then hope for a phone call, we told everyone to visit the site, peruse around, and let us know if they wanted to see more in person.</p>
<h2>Lesson Two: Photos, Photos, Photos</h2>
<p>Every rental listing I looked at had the same old boring, over-hyped description with a single photo of a generic looking apartment. How are you supposed to decide whether or not that&#8217;s the place for you?</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Photos.png" rel="lightbox[332]" title="LiveInLaurelwood - Photos"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Photos-300x278.png" alt="" title="LiveInLaurelwood - Photos" width="300" height="278" class="aligncenter size-medium wp-image-339" /></a></p>
<p>To help our prospective tenants, we uploaded 72 photos to the site, showing the whole property (inside and out) in beautiful detail. In the end, our tenant said she chose our property because of the photos, and how well they helped her imagine what life would be like living there.</p>
<h2>Lesson Three: Promote, Promote, Promote</h2>
<p>We promoted in three main ways:</p>
<ol>
<li>A flyer hung up in the post office of the development (not to mention local pizza shops)</li>
<li>A Craigslist rental posting pointing users to the web site</li>
<li>Leveraging our networks via Facebook and Twitter</li>
</ol>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/05/Live-in-Laurelwood-Flyer.png" rel="lightbox[332]" title="Live in Laurelwood Flyer"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/05/Live-in-Laurelwood-Flyer-240x300.png" alt="" title="Live in Laurelwood Flyer" width="240" height="300" class="aligncenter size-medium wp-image-334" /></a></p>
<p>The flyers were a big hit. We went through <strong>six sheets</strong> in the post office alone.</p>
<blockquote><p>Pro-tip: When using flyers with tear-away tabs, always tear away one of the tabs before you hang up the sheet. People have a hesitance to be the &#8220;first&#8221; one to tear off a tab from a fresh sheet, but seeing one already removed provides social proof that it&#8217;s OK to remove a tab.</p></blockquote>
<p>Ultimately, it was our Craigslist posting that drove our tenant to the site, but we did get quite a few hits from other sources:</p>
<p><a href="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Analytics.png" rel="lightbox[332]" title="LiveInLaurelwood - Analytics"><img src="http://www.standingonthebrink.com/wp-content/uploads/2011/05/LiveInLaurelwood-Analytics-300x147.png" alt="" title="LiveInLaurelwood - Analytics" width="300" height="147" class="aligncenter size-medium wp-image-336" /></a></p>
<h2>Lesson Four: Do Not Print Pricing</h2>
<p>Being first time landlords, we weren&#8217;t really sure where to price the unit. To give us maximum flexibility, we didn&#8217;t print a rental price anywhere, and only discussed pricing one-on-one over the phone or via email with prospective tenants. In the end, we came to a fair negotiation on price that worked well for both parties!</p>
<h2>Summing It Up</h2>
<p>We launched the site in mid-January, and had a tenant moved in by early March.</p>
<p>Total time? Eight weeks, with only 2.5 of those weeks with the townhouse empty after we moved out.</p>
<p>Total cost? $27.50 for Custom DNS on <a href="http://DynDNS.com" rel="nofollow">http://DynDNS.com</a>, and $15 for the domain registration on <a href="http://DynDNS.com" rel="nofollow">http://DynDNS.com</a> as well. We already had the server in the basement for hosting WordPress, as well as the printing supplies, bringing our total out of pocket marketing expenses to $42.50.</p>
<p>Happy renting!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.standingonthebrink.com/2011/05/how-to-rent-a-property-in-eight-weeks-for-42-50/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.standingonthebrink.com/2011/05/how-to-rent-a-property-in-eight-weeks-for-42-50/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.499 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-04-08 04:47:24 -->

