<?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>Adam Goucher</title>
	
	<link>http://adam.goucher.ca</link>
	<description>Quality through Innovation</description>
	<lastBuildDate>Thu, 23 May 2013 01:58:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AdamGoucher" /><feedburner:info uri="adamgoucher" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>So you need to start caring about Security and Privacy</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/lh100f2m-Js/</link>
		<comments>http://adam.goucher.ca/?p=1821#comments</comments>
		<pubDate>Thu, 23 May 2013 01:58:39 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1821</guid>
		<description><![CDATA[Every company has a moment where they are forced to care, I mean, really care about Security and Privacy. Sure, you should always care in the back of your mind, but at some point it comes front and center and a key pillar of everything you do. The question is whether you are going to [...]]]></description>
				<content:encoded><![CDATA[<p>Every company has a moment where they are forced to care, I mean, <i>really</i> care about Security and Privacy. Sure, you should always care in the back of your mind, but at some point it comes front and center and a key pillar of everything you do. The question is whether you are going to be ready for when it comes. Odds are, no. (Because if you were, you would already be caring.) I&#8217;ve seen this moment happen a couple times, so here is my list of things you now need to pay a whole lot of attention to.<br />
<br />
First, Security and Privacy are related, but different. In hand-wavy terms; Security is related to keeping information in and the bad guys out, and Privacy is about individual people&#8217;s information in your trust. And it is a trust, not a right.<br />
<br />
With that, here is my brain dump on the topics.<br />
<br />
<i>Security</i></p>
<ul>
<li>Who is the officially designated person for security problems?</li>
<li>Physical security &#8211; padlocks on the cage, etc.</li>
<li>Can people wander the office without being questioned?</li>
<li>Is all input validated on the backend as well as the frontend</li>
<li>Disarm all input</li>
<li>Disarm all output</li>
<li>Don&#8217;t blindly use user provided strings in queries</li>
<li>PCI compliance?</li>
<li>Don&#8217;t store your password in the clear&#8230;</li>
<li>The first question about any change should be &#8216;what are the security ramifications&#8217;?</li>
<li>Do security bugs get put into the main bug database?</li>
<li>How are security things disclosed</li>
</ul>
<p>
<i>Privacy</i></p>
<ul>
<li>Who is the officially designated person for security problems?</li>
<li>Do you know what PII (Personally Identifiable Information) you have</li>
<li>Do you know what flows the PII participate in?</li>
<li>People need to be bucketed based upon their informational needs</li>
<li>Don&#8217;t clone your production database down into lower environments &#8212; without scrubbing the PII</li>
<li>Do not display PII to anyone other than the owner of it. (Unless they really need it.)</li>
<li>PII should be encrypted in the database</li>
<li>Thou shalt not grant access to the production database</li>
<li>Log the stink out of access, including read, of things that contain PII</li>
<li>The second question about any change should be &#8216;what are the privacy ramifications&#8217;?</li>
<li>Do privacy bugs get put into the main bug database?</li>
<li>How are privacy things disclosed</li>
<li>What legislation around PII affect you? And in what jurisdiction? Is it where the head office is? Where the app is hosted? Neither?</li>
</ul>
<p>
Writing secure code is actually not that hard. We know how to do this. At this point it is really just sloppy code. But putting the people and process around how the code that is generated is hard.<br />
<br />
This is just a quick off-the-top-of-my-head list, but the key thing to remember is that its not paranoia if they are actually after you. And &#8216;they&#8217; are.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/lh100f2m-Js" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1821</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1821</feedburner:origLink></item>
		<item>
		<title>Am I Coming To Your Conference (or ‘Consultant Math’)</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/A_ukT-dgcGE/</link>
		<comments>http://adam.goucher.ca/?p=1817#comments</comments>
		<pubDate>Thu, 11 Apr 2013 03:50:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1817</guid>
		<description><![CDATA[A pattern than I unwittingly did and have noticed in others is that you need to work out what your variation of &#8216;consultant math&#8217; is for yourself. No matter how many people tell you, you need to blunder through to your own understanding of it. Often by going waaaaay overboard on conferences the first year [...]]]></description>
				<content:encoded><![CDATA[<p>A pattern than I unwittingly did and have noticed in others is that you need to work out what your variation of &#8216;consultant math&#8217; is for yourself. No matter how many people tell you, you need to blunder through to your own understanding of it. Often by going <i>waaaaay</i> overboard on conferences the first year or so after going independent.<br />
<br />
Here is my variation of &#8216;consultant math&#8217; around whether I will attend your conference or not. Not that anyone will listen to this and not thing &#8216;hey! I&#8217;m different!&#8217; &#8212; no, no you are not. But anyways&#8230;<br />
<br />
The first part of the equation is whether or not I am getting paid to be there. This can either be in term of an honorarium, or flight or hotel (or all three!). Consultant math is pretty easy when this happens &#8230; in most situations. But there is the whole problem of Opportunity Cost. Let&#8217;s say you are giving me all three of these variables to attend your conference [presumably to speak] but I have to spend a complete day flying there, and a complete day back. That is really 3 days I could be billing people to work on their stuff. If the honorarium only covers 85% of a single day&#8217;s worth of billing, well, things start to break down a bit.<br />
<br />
Fear not though, the math still might work in your favour if there is a good chance I am going to get new business from attending an interacting with the other attendees. This actually has two parts to it. First, you need to know who your target demographic is. After 3+ years at this, I have a pretty good feel on who I am targeting and the sorts of things they need to hear in order to get them to sign on. (New consultants are unfortunately at a disadvantage and I think this is a large part of the reason why they go to so many conferences in the shotgun approach.) You, as a conference organizer need to convince me that there is a match between my target demo and your audience. (Tip for consultants: check their sponsorship packages, they often include this information in there.) If there is a match, I might eat the Opportunity Cost and turn it into a Marketing Cost.<br />
<br />
There is another variation of Consultant Math I have been tinkering with a bit recently, and that is the Sponsorship Option. This is advanced level math and should only be employed once you know your audience since it often requires more risk [in terms of outlay of money]. Upon successful completion of this math you end up sponsoring a target conference [or event association with it]. For instance, the Consultant Math with Sponsorship Option looks quite favourable for Pycon or php[tek], but is pretty abysmal for CAST, Star*, STPCon or even, ironically, Selenium Conf.<br />
<br />
I explained Consultant Math to a could non-consultants today [including ish a conference president] which is usually a sign I need to blog about [my variation] it.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/A_ukT-dgcGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1817</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1817</feedburner:origLink></item>
		<item>
		<title>My notes from TorontoGROWtalks 2013</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/IvMC4WfDWEY/</link>
		<comments>http://adam.goucher.ca/?p=1810#comments</comments>
		<pubDate>Mon, 25 Feb 2013 03:09:32 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1810</guid>
		<description><![CDATA[So I&#8217;m in a pitch contest right now, and easily the biggest outcome is to switch me mentally from &#8216;talking about my app&#8217; to &#8216;building my app&#8217;. And part of that shift was to got to TorontoGROWtalks last week. Waaaay too much stuff to absorb. (And thank-you startupnorth for the discount code!). Notes are as [...]]]></description>
				<content:encoded><![CDATA[<p>So I&#8217;m in a pitch contest right now, and <i>easily</i> the biggest outcome is to switch me mentally from &#8216;talking about my app&#8217; to &#8216;building my app&#8217;. And part of that shift was to got to <a href="http://www.growtalks.com/events/toronto/">TorontoGROWtalks</a> last week. Waaaay too much stuff to absorb. (And thank-you <a href="http://startupnorth.ca/">startupnorth</a> for the discount code!). Notes are as follows&#8230;</p>
<h3>Brant Cooper</h3>
<ul>
<li>took 3 minutes to mention FAKEGRIMLOCK</li>
<li><a href="http://market-by-numbers.com/innovation-disruptive-sustaining-rippling/">Innovation: Disruptive, Sustaining or Rippling?</a></li>
<li>hockey stick growth curve is an inverse mullet</li>
<li>disruptive organizations optimize for learning</li>
<li>sustaining organizations optimize for execution</li>
<li>pre product fit, you are pushing the product on the market. after product fit, market pulls the product from you &#8212; <i>I&#8217;m pushing now, need to stop that, and soon.</i></li>
<li>first vp of sales needs to be able to sell without a demo &#8212; <i>I don&#8217;t look forward to hiring sales.</i></li>
<li>figure out your marketing, by going out and sell</li>
<li>product creates the buzz, marketing is about amplifying your buzz</li>
<li>you are not ready to market until there are things in the top of your sales funnel</li>
<li>how do your measure a &#8216;passionate user&#8217;? figure out how to measure satisfaction and then passion</li>
<li>if you have sharing, measure sharing since its an indicator of passion</li>
</ul>
<h3>Mike Meltzner</h3>
<ul>
<li>product ownership isn&#8217;t an authority, it is a responsibility</li>
<li>voice decisions the rest of the group has already decided on</li>
<li><a href="http://sgentrepreneurs.com/2012/12/26/startup-stages/">Startup stages: a comparison of 3 models</a> &#8212; Marmer stages was mentioned</li>
<li>job of ceo is to say same 3 things to everyone outside of the company (Speak the vision. Keep the tank full. Build a team). job of product owner is to say same 3 things to everyone inside of the company (important thing this month, thing we&#8217;re ignoring, where we are going)</li>
<li>be in everyone&#8217;s business everyday so they know to include you in decisions</li>
<li>default to no &#8212; but help me to help you convince me to say yes</li>
<li>no &#8212; for now&#8230;</li>
<li>who is handling the project &#8212; starters, or finishers?</li>
<li>unsuccessful product ownership involves handoffs</li>
</ul.</p>
<h3>Kate Rutter</h3>
<ul>
<li>was an updated version of<br />
  <iframe src="http://www.slideshare.net/intelleto/slideshelf" width="615px" height="470px" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:none;" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></li>
<li><img src="http://i434.photobucket.com/albums/qq64/mcgannc42/pukingunicorn.jpg" />
<li>ux != ui</li>
<li>ui = delivery mechanism</li>
<li>ux
<ul>
<li>a mindset</li>
<li>experiential payoff</li>
<li>inspires the right kinds of ideas</li>
<li>guides decisions</li>
</ul>
</li>
<li>if people are not going to pay for it, you don&#8217;t have a business, you have a hobby</li>
<li>make decisions intentionally</li>
<li><a href="http://luxr.co/startup_workshops">startup workshops</a></li>
<li>if you cant have one user being passionate about it, how do you plan on having 1000s?</li>
<li>&#8216;you dont have a product box, you have a product sieve&#8217;</li>
<li>the market will give you permission to succeed</li>
<li>customers [give you money] vs end experiencers</li>
<li>cohort watching is useful</li>
<li>there is nothing better than being schooled by your product</li>
<li>each stage of the stack has its own ways to test it</li>
<li>you should be okay looking like an idiot, because this is how you learn</li>
</ul>
<h3>Laura Fitton</h3>
<ul>
<li>is there any conceivable world where someone would pay for this blob of marketing</li>
<li>be useful
<ul>
<li>relevant to your user</li>
<li>relevant to your product</li>
</ul>
</li>
<li>start responding to how they make decisions</li>
<li>its not spammy feeling if it is properly segmented</li>
<li><a href="http://academy.hubspot.com/">HubSpot Academy</a></li>
<li>will customer&#8217;s thank you for your content?</li>
<li>hits don&#8217;t count; conversions count</li>
<li>&#8216;them&#8217; vs your &#8216;them&#8217;</li>
<li>&#8216;smarketing&#8217; &#8212; combination of sales and marketing</li>
</ul>
<h3>Scott Kveton</h3>
<ul>
<li>creation stories should all be like urban airship&#8217;s</li>
<li>&#8216;more of a feature than a product&#8217;</li>
<li>its not lying, its selling forward</li>
<li>think hard on pricing and packaging</li>
<li>you really /do/ need to listen to customers</li>
<li>customers will direct your business far better than you can</li>
<li>outgrew ec2 within 3 months</li>
<li>torn down and re-built tech 3 times</li>
</ul>
<h3>Dan Martell</h3>
<ul>
<li>to have a hockey stick you need to have the flat part</li>
<li>as soon as you truly understand your core product, get rid of everything else</li>
<li>you need to instrument /everything/</li>
<li>know your baselines</li.
<li>activity streams
<ul>
<li>curious</li>
<li>casual</li>
<li>core <--- pay attention to these ones</li>
</ul>
</li>
<li>use in app surveys</li>
<li>know your funnels</li>
<li>unless you have core, don&#8217;t do this&#8230;
<ul>
<li>opn (other people&#8217;s networks)</li>
<li>shareable moments</li>
</ul>
</li>
</ul>
<h3>Michael Litt</h3>
<ul>
<li>solve the problem the customer has, not the problem they think they have</li>
<li>do not trust the data, talk to the customer</li>
<li>metrics only work /after/ you have product-customer fit</li>
<li>everything at the start should be outbound</li>
<li>ever developer should talk to customers</li>
</ul>
<h3>Mark organ</h3>
<ul>
<li>most important ingredient for founder or investor: conviction</li>
<li>&#8216;how does cookie monster mean capital&#8217;?!?!?!</li>
<li>you need to have deeper knowledge about things more than anyone else</li>
<li>to bootstrap
<ul>
<li>conviction</li>
<li>microniche</li>
<li>serviceize (charge for anything)</li>
<li>high pricing (multiply by 3x &#8211; 5x your competitor)</li>
<li>systematic scale</li>
</ul>
</li>
<li>to raise money
<ul>
<li>conviction</li>
<li>beautiful story</li>
<li>abp (always be pitching)</li>
<li>get feedback and connections</li>
<li>firm, but coachable</li>
</ul>
</li>
<li>the best way to get a canadian investor is to get an american investor first</li>
<li>you do have spend time on planes to raise money</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/IvMC4WfDWEY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1810</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1810</feedburner:origLink></item>
		<item>
		<title>My hair-brained scheme to kicking testing conferences out of a rut</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/wwsa-0gMkFg/</link>
		<comments>http://adam.goucher.ca/?p=1806#comments</comments>
		<pubDate>Thu, 06 Dec 2012 17:02:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1806</guid>
		<description><![CDATA[The Call For Participation for CAST 2013 is out and includes We would like to hear your experiences, stories, thoughts, observations, demonstrations around the lessons that you have learned in Software Testing, as well as how these could influence the way that we approach testing in the future. And I expect a lot of interesting [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.associationforsoftwaretesting.org/conference/cast-2013/call-for-participation/">Call For Participation</a> for CAST 2013 is out and includes<br />
<br />
<i>We would like to hear your experiences, stories, thoughts, observations, demonstrations around the lessons that you have learned in Software Testing, as well as how these could influence the way that we approach testing in the future.</i><br />
<br />
And I expect a lot of interesting experience reports from interesting people (it is CAST after all). But how much really, really, new stuff will be added to the craft. I&#8217;ll be my normal cynical self and suggest that it is likely not as much as one would hope.<br />
<br />
What I would love to see is a CFP that looks something like this.<br />
<i>We would like to hear your experiences, stories, thoughts, observations, demonstrations around the lessons that you have learned <b>outside of</b> Software Testing, as well as how these could influence the way that we approach testing in the future.</i><br />
<br />
My talks a couple years ago all fell into this form. <a href="http://www.associationforsoftwaretesting.org/?dl_name=AdamGoucher-LessonsInTeamLeadershipFromKidsInArmor_paper.pdf">Kids in Armor</a> and <a href="http://adam.goucher.ca/?p=1438">Testing Inspiration When You Least Expect It</a> are both examples of what I want to hear people talk about. I want to hear Alan Page discuss how Orchestra composition helps him test better, how Ben Kelly tests better due to years of thwacking people in the head with bamboo, etc.<br />
<br />
I also want <i>non-testers</i> to be brought in as the keynotes. Sure, I enjoy listening to James, Michael, Cem, Matt and company, but if you are keynote-ing, you are up against an astronaut in my ranking scheme (<a href="http://adam.goucher.ca/?p=1585">Keynote vs. Track</a>). Now I am a baseball fan so opinions are skewed but I think <a href="http://dirkhayhurst.com/speaking/">the Garfoose</a> or <a href="https://en.wikipedia.org/wiki/Shawn_Green">Shawn Green</a> could also be great. Though they likely cost more since its an actual speaking gig rather than just the prime audience grabbing moment. Or <a href="http://www.maryrobinettekowal.com">Mary Robinette Kowal</a> about puppetry. Or a Buddhist monk about meditation and breathing. Or. Or. Or.<br />
<br />
That there is a speaking <i>circuit</i> where one can recycle topics is a smell I think &#8230;<br />
<br />
&#8230; and another smell is that I essentially wrote this same post back in April including some of the same speaker suggestions; <a href="http://adam.goucher.ca/?p=1756">The ‘Un-Testing Conf’</a>. That&#8217;s just silly. I should do some work&#8230;</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/wwsa-0gMkFg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1806</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1806</feedburner:origLink></item>
		<item>
		<title>Be Yourself!</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/00BJRVXpJw0/</link>
		<comments>http://adam.goucher.ca/?p=1801#comments</comments>
		<pubDate>Thu, 06 Dec 2012 16:09:21 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1801</guid>
		<description><![CDATA[Speak Up! is the latest of Jesse Noller&#8217;s community-oriented projects. [I'm pretty sure he has cloned himself to do all this stuff.] Having sat in many &#8216;how to give a talk&#8217; talks (meta!) I&#8217;m amazed how often people focus on construction of slides, the narrative and practice (feh!) and forget the most important thing. BE [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://speakup.io">Speak Up!</a> is the latest of Jesse Noller&#8217;s community-oriented projects. [I'm pretty sure he has cloned himself to do all this stuff.] Having sat in many &#8216;how to give a talk&#8217; talks (meta!) I&#8217;m amazed how often people focus on construction of slides, the narrative and practice (feh!) and forget the most important thing.<br />
</p>
<h3>BE YOURSELF!</h3>
<p>
I&#8217;ve been saying this for a while, but this paragraph from <a href="http://www.sportsnet.ca/baseball/2012/12/05/wilner_mlb_tom_cheek_hall_of_fame_frick_award/">Cheek was my hero</a> sums thing up well.<br />
<br />
<i>Later that season, Cheek would give me the most important piece of advice anyone has in this business – Be Yourself. It’s easy to lose that once you get close to the pinnacle of the profession, to try to change who you are or how you do what you do in order to impress people or to make your way up the ladder that much easier, but Tom told me squarely that there was a reason I was in that booth with them and it was because of what I’d done on the way there. That my success was based on how I went about my work both on the air and off and that any future success would be based on the same thing.</i><br />
<br />
Pulling it back to speaking, people want <i>you</i> and <i>your content</i> not something and someone else when they select you. Don&#8217;t change. Even if that means blatantly ignoring cultural norms. For example:</p>
<ul>
<li>When I did <a href="http://adam.goucher.ca/?p=1744">Set Course for Awesome</a> I was warned that having cussing in the deck could be offensive to the audience. Noted. Did I change it? Not a chance.</li>
<li>If I am speaking at your event I&#8217;m going to wear what I am comfortable wearing that day which is likely to include some sort of snarky tshirt. Looking at some of the photos from <a href="http://twitter.com/Hexawise">Justin Hunter</a> who is over in India at a conference today the audience is in jackets and ties. I don&#8217;t think I own a jacket and tying a tie is an exercise in hilarity.</li>
</ul>
<p>Also, if you put a mic in front of me, you are going to get snark. And opinion. Because that is me. That&#8217;s what you get. Anything else would be dishonest. And being dishonest to your audience is not a good way to engage them.<br />
<br />
Yes, I think that slides that have fewer words are better in general and that you should tell a story when behind the mic. But if that isn&#8217;t <i>you</i> then don&#8217;t do it. Be yourself.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/00BJRVXpJw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1801</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1801</feedburner:origLink></item>
		<item>
		<title>COP FLUNG A GUN</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/Bf-A-8Ea8ao/</link>
		<comments>http://adam.goucher.ca/?p=1795#comments</comments>
		<pubDate>Mon, 12 Nov 2012 21:25:56 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1795</guid>
		<description><![CDATA[One of the traditions in my wacky subset of the testing world is not only building mnemonics, but adding / remixing them. And so, I introduce COP FLUNG A GUN. Which is COP FLUNG GUN plus Automation. Automation The primary way to test mobile apps remains to be, literally, by hand. But we&#8217;re starting to [...]]]></description>
				<content:encoded><![CDATA[<p>One of the traditions in my wacky subset of the testing world is not only building mnemonics, but adding / remixing them. And so, I introduce COP FLUNG <i>A</i> GUN. Which is <a href="http://moolya.com/blog/2012/04/18/test-mobile-applications-with-cop-who-flung-gun/">COP FLUNG GUN</a> plus Automation.<br />
<br />
<b>Automation</b><br />
<br />
The primary way to test mobile apps remains to be, literally, by hand. But we&#8217;re starting to figure out how to do it though automation. (No thanks to the OS vendors&#8230;) As automation frameworks get more mature we should check whether automation hooks are provided by the developers. Unique ids or other identifiers for all interaction bits, synchronization points exposed, etc.<br />
<br />
Also included in this is integration into your CI system, since that is the bit that controls the execution and reporting of the automation.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/Bf-A-8Ea8ao" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1795</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1795</feedburner:origLink></item>
		<item>
		<title>The Dark Tower</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/BgjeWcQMddk/</link>
		<comments>http://adam.goucher.ca/?p=1791#comments</comments>
		<pubDate>Sun, 28 Oct 2012 16:20:21 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1791</guid>
		<description><![CDATA[There are certain things that I can say have been with me most of my life. The Dark Tower series is one of them. (The Wheel of Time series, Star Wars, comicbooks have as well. Likely baseball too now that I think about it.) So last night I&#8217;m paying ish attention to twitter while watching [...]]]></description>
				<content:encoded><![CDATA[<p>There are certain things that I can say have been with me most of my life. The Dark Tower series is one of them. (The Wheel of Time series, Star Wars, comicbooks have as well. Likely baseball too now that I think about it.)<br />
<br />
So last night I&#8217;m paying ish attention to twitter while watching the world series and see this flit across my stream.<br />
</p>
<blockquote class="twitter-tweet"><p>Wow! Finally finished Stephen King&#8217;s Dark Tower series. Those are long books. Enjoyed it, and liked the ending.</p>
<p>&mdash; Corey Haines (@coreyhaines) <a href="https://twitter.com/coreyhaines/status/262369486311673856" data-datetime="2012-10-28T01:45:34+00:00">October 28, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script><br />
<br />
Which got me thinking about the whole series. Yes, the <i>whole</i> series. This is the point where my world-builder&#8217;s-disease kicks in. See, the Dark Tower is not just the &#8216;core&#8217; seven books. <a href="https://en.wikipedia.org/wiki/Stephen_King_works_related_to_The_Dark_Tower_series">It is in fact pretty much <i>all</i> his books</a>. If it had a wizard, it is a Dark Tower book. If it had a lost puppy sign, it is a Dark Tower book. If it happened in Derry, it is a Dark Tower book. And yes, The Stand is absolutely a Dark Tower book.<br />
<br />
But does the Dark Tower deserve all the praise it gets? I dunno.<br />
<br />
For pure scope and intent, absolutely. But that almost feels like it was added after the fact. Or at lease communicated afterwards. Anyone reading King long enough understood his &#8216;universe&#8217; held Derry near its center, but then suddenly it was part of something else. And his books would have asterisks next to books that were part of the Dark Tower. If it was always his intention to have things part of a larger epic, how come they were not there in the books that came out in the 80s and early 90s?<br />
<br />
As for the individual books, on the whole I didn&#8217;t really enjoy them. The Gunslinger is a decent read, the next two feel like they are just moving the plot along and the flurry of the last three after his accident feel like a person&#8217;s sudden response to facing their mortality and fearing their epic won&#8217;t get completed. His inclusion of the accident in the final book seemed heavy handed and too breaking-the-fourth-wall ish. I literally stared at the page in disbelief when that happened. It is an interesting thought experiment to see how it all would have turned out had it not been for that fateful day&#8230;<br />
<br />
&#8216;Wizard and Glass&#8217; however is an outstanding book and likely my favourite King book (with The Stand (unabridged) being a close second). Its enough of a standalone story that even if you have no want to read the whole series, it is worth a read. &#8216;The Wind Through the Keyhole&#8217; is much the same tone and feel as &#8216;Wizard and Glass&#8217; though outside of the main series. Chronologically it takes place before &#8216;Wizard and Glass&#8217; but is another standalone book.<br />
<br />
The more I think about it, the more I feel like the Dark Tower series proper has failed yet the world it has setup has succeeded greatly. &#8216;Wizard and Glass&#8217; is character backstory set in the world. &#8216;Keyhole&#8217; is character backstory <i>about</i> the world. &#8216;Hearts in Atlantis&#8217; is secondary character backstory, etc. Similar to how the Terminator and Star Wars franchises were flushed out through Dark Horse Comics in the 90s, the Dark Tower is being flushed out by Marvel Comics.<br />
<br />
What I think I would like to see however is more ancillary stories come out set in the Dark Tower world. Maybe not even by King, kinda like the Star Wars universe. (See <a href="https://en.wikipedia.org/wiki/The_Thrawn_Trilogy">The Thrawn Trilogy</a> for instance to see how other can expand a universe while still staying true to it.) But now that Roland has been eight years since Roland reached the top of the tower and &#8216;Keyhole&#8217; only came out this year gives me great hope that the world will continue to produce things to consume my money.<br />
<br />
Other random bits in my head around the Dark Tower&#8230;</p>
<ul>
<li>&#8216;The Stand&#8217; is a pretty ambitious book to choose for your first highschool book study</li>
<li>I read &#8216;The Drawing of the Three&#8217; (or started at any rate) during a school trip to Stratford to see &#8216;As You Like It&#8217; and was listening to The Cure&#8217;s &#8216;Mixed Up&#8217; so certain songs are forever associated with the book (such as &#8216;The Forest&#8217;)</li>
<li>After reading the last page of &#8216;The Dark Tower&#8217;, I immediately went to <a href="https://en.wikipedia.org/wiki/Shaggy_dog_story">this page</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/BgjeWcQMddk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1791</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1791</feedburner:origLink></item>
		<item>
		<title>Continuity</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/rG64c_miisA/</link>
		<comments>http://adam.goucher.ca/?p=1786#comments</comments>
		<pubDate>Thu, 20 Sep 2012 14:51:32 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1786</guid>
		<description><![CDATA[I&#8217;m starting to get back into comicbooks thanks largely to the reboot of the Valiant Universe. I have almost all the original Valiant books in boxes in the basement and I think the reason I was drawn to them was its tight continuity within the universe. Events in one book directly impacted, and did not [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m starting to get back into comicbooks thanks largely to the reboot of the <a href="http://valiantuniverse.com">Valiant Universe</a>. I have almost all the original Valiant books in boxes in the basement and I think the reason I was drawn to them was its tight continuity within the universe. Events in one book directly impacted, and did not contradict events in another.<br />
<br />
The &#8216;big&#8217; universes of Marvel and DC have long had issues with continuity due to their sheer size and age. I suspect managing this problem is part of the reason why DC rebooted their universe last year (dumb, dumb move if you ask me&#8230;) and Marvel is apparently thinking about it as well. That is not to say that its not possible to have working continuity in a universe that large, and with more than one title per character (Batman has 8 titles right now). My example here is the classic Knightfall crossover (which Batman Returns is loosely based). It was across all the then Batman books and, well, was excellent. And in tone for each of the books. There wasn&#8217;t much bleed over into the other books in the universe though&#8230; but oh, did Batman bleed.<br />
<br />
<img src="http://mindlessones.com/wp-content/uploads/2008/06/bane-breaks-batman-497pg21.png" /><br />
<br />
(What I need right now is a word that means something like hindsight, but for recognizing the choices that might have led the the current now.)<br />
<br />
While reading Cem&#8217;s <a href="http://kaner.com/?p=190">The Oracle Problem and the Teaching of Software Testing</a> it dawned on me that in my brain, &#8216;Continuity&#8217; and &#8216;Consistency&#8217; are synonyms.<br />
<br />
Wiktionary provides <i>a narrative device in episodic fiction where previous and/or future events in a story series are accounted for in present stories</i> as one definition of continuity and <i> Freedom from contradiction</i> for continuity.<br />
<br />
So how do I think Valiant did originally, and should now, keep their continuity in tact? Glad you asked! Or didn&#8217;t and I&#8217;ll say it anyways.</p>
<ul>
<li>Keep the number of titles manageable. And my manageable I mean in the area of 16. Now I have no idea the economics of the publishing world are like, but that could give a couple &#8216;mini worlds&#8217; that could tightly collaborate sacrificing the whole. (Harbinger, Shadowman, X-O, A&#038;A).</li>
<li>Don&#8217;t let the groups of books dictate direction. Where the universe is heading should be a Publisher level decision. The v1 universe had that direction available for anyone to see in big-scope-terms in Rai 0 (best cover of all time) <img src="http://www.valiantfan.com/valiant/CD/vh1/Rai/rai0.jpg"/></li>
</ul>
<p>That&#8217;s it. Only two things.<br />
<br />
Tying this back to testing/agile, I am starting to notice [now that I am looking for it...] this sort of failings in teams. Teams trying to tackle waaay too much work in a given iteration and when features hit production they don&#8217;t work as well as they should have when get into their hands. Happens. All. The. Time. I&#8217;ve also seen when agile teams or test groups wag the product dog based on their own whims and biases. Management is supposed to do that. Not you.<br />
<br />
(Unless the name card on your desk says &#8216;publisher&#8217;.)</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/rG64c_miisA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1786</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1786</feedburner:origLink></item>
		<item>
		<title>Detail is Dead Wood</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/Kx5cRlzdb_Y/</link>
		<comments>http://adam.goucher.ca/?p=1783#comments</comments>
		<pubDate>Sun, 09 Sep 2012 01:06:01 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1783</guid>
		<description><![CDATA[Beyond the Matrix is an excellent article for a number of reasons. Not only does it give a peek to how a major movie came together, but it also gives insight into the difference between writing a book and making a movie. Here is a paragraph from page 7. The set was rudimentary: the control [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.newyorker.com/reporting/2012/09/10/120910fa_fact_hemon?currentPage=1">Beyond the Matrix</a> is an excellent article for a number of reasons. Not only does it give a peek to how a major movie came together, but it also gives insight into the difference between writing a book and making a movie.<br />
<br />
Here is a paragraph from page 7.<br />
<br />
<i>The set was rudimentary: the control room of the satellite-communication center would be completed with computer-generated imagery, imagined by the Wachowskis down to the minutest detail. The scene in the control room, for example, features an “orison,” a kind of super-smart egg-shaped phone capable of producing 3-D projections, which Mitchell had dreamed up for the futuristic chapters. The Wachowskis, however, had to avoid the cumbersome reality of having characters running around with egg-shaped objects in their pockets; it had never crossed Mitchell’s mind that that could be a problem. “Detail in the novel is dead wood. Excessive detail is your enemy,” Mitchell told me, squeezing the imaginary enemy between his thumb and index finger. “In film, if you want to show something, it has to be designed.” The Wachowskis’ solution: the orison is as flat as a wallet and acquires a third dimension only when spun. Mitchell, who had been kept in the loop throughout the process (and has a cameo in the film), was boyishly excited by the filmmakers’ “groping toward exactitude.” “I was like Augustus Gloop in the Wonka factory,” he told me. “I’ve witnessed a long sequence of decisions, which I never had to make while writing a book. Intellectually, I know it’s a replacement, but I don’t feel a loss at all.”</i><br />
<br />
It is this sort of detail that appeal&#8217;s to my tester&#8217;s mind. And one which I have been noticing since hearing an interview with L. E. Modesitt, Jr. on Writing Excuses (I think it is <a href="http://www.writingexcuses.com/2010/06/06/writing-excuses-4-22-qa-with-l-e-modesitt-jr/">this episode, but didn&#8217;t double check</a>) where he discusses things like the support logistics of great fantasy battles that authors seem to forget [ignore].<br />
<br />
And now, you will notice them too.<br />
<br />
(You&#8217;re welcome)</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/Kx5cRlzdb_Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1783</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1783</feedburner:origLink></item>
		<item>
		<title>Notes from Blue Jays Winter Tour (Toronto) 2012</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/1qjkXS2U11g/</link>
		<comments>http://adam.goucher.ca/?p=1779#comments</comments>
		<pubDate>Tue, 28 Aug 2012 23:54:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1779</guid>
		<description><![CDATA[My son is presently baseball-mad and so went to training day with some Blue Jays last January as part of their Winter Tour. I have no idea how to coach baseball to kids, so I took some notes. They&#8217;ve been floating around the basement since then so I&#8217;m de-paper-ing them by putting them here. Stretches [...]]]></description>
				<content:encoded><![CDATA[<p>My son is presently baseball-mad and so went to training day with some Blue Jays last January as part of their Winter Tour. I have no idea how to coach baseball to kids, so I took some notes. They&#8217;ve been floating around the basement since then so I&#8217;m de-paper-ing them by putting them here.</p>
<ul>
<li>Stretches
<ul>
<li>butt kicks</li>
<li>side strides</li>
<li>long steps</li>
<li>frankensteins (high kicks)</li>
<li>flamingos (balance on one foot, lean forward)</li>
<li>circles with arms</li>
<li>fall, then sprint</li>
<li>cross legs, then up without using arms then sprint</li>
<li>watch the pitcher, then sprint</li>
</ul>
</li>
<li>Batting
<ul>
<li>Use a tee</li>
</ul>
</li>
<li>Bunting
<ul>
<li>line up with the front of the box so if the ball drops straight down it doesn&#8217;t hit the plate; if it does its a strike</li>
<li>pinch the bat</li>
<li>rotate feet (into &#8216;athletic position&#8217;)</li>
</ul>
</li>
<li>Base Running / Paths
<ul>
<li>touch at the front of the bag</li>
<li>run straight!</li>
<li>lean when crossing the plate to make it seem like you are further ahead than you actually are</li>
<li>game: relay where half run from home and half run from second</li>
<li>the high-5 at the bag is important</li>
<li>when going multiple bags, start running in the shape of a banana halfway to first</li>
<li>take two steps from the bag, square them, then two side steps to be in optimal position</li>
</ul>
</li>
<li>Infield Fielding Drills
<ul>
<li>direct grounder</li>
<li>glove side</li>
<li>throwing side</li>
<li>random side</li>
</ul>
</li>
<li>Outfield Fielding Drills
<ul>
<li>routes to ball</li>
<li>glove positions (above or below hips)</li>
</ul>
</li>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/1qjkXS2U11g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1779</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1779</feedburner:origLink></item>
		<item>
		<title>Logic Problems &amp; Programming in Interviews</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/DxTx9CaEPLs/</link>
		<comments>http://adam.goucher.ca/?p=1776#comments</comments>
		<pubDate>Thu, 05 Jul 2012 02:49:00 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1776</guid>
		<description><![CDATA[Twitter is excellent for planting troll-bait one-offs, but the blog is better for planting long-tail ones. So this afternoon I tweeted something along the lines of this. Unless your are interviewing someone for a job that requires [stupid] logic problems, then they don&#8217;t have any place in an interview. And I stand by that. Though [...]]]></description>
				<content:encoded><![CDATA[<p>Twitter is excellent for planting troll-bait one-offs, but the blog is better for planting long-tail ones. So this afternoon I tweeted something along the lines of this.<br />
<br />
<i>Unless your are interviewing someone for a job that requires [stupid] logic problems, then they don&#8217;t have any place in an interview.</i><br />
<br />
And I stand by that. Though a lot of twitter seems to disagree, to one degree or another.<br />
<br />
Context. I was at a client today and the two people I am working with came back from an interview&#8230;<br />
<br />
Them: Do you like logic problems?<br />
Me: Not really.<br />
Them: Want to try the one we just gave in the interview?<br />
Me: Sure&#8230;<br />
Them: How long should we give him? 8 seconds? 5?<br />
Me: <something snarky about borrowing an ipad for a counter><br />
Them: Design an algorithm that solves
<the problem>
Me: (immediately) Dunno.<br />
Them: Give up?<br />
Me: Nope. I didn&#8217;t come up with something immediately and don&#8217;t care enough to focus any thought on it<br />
Them: &#8230;<br />
<br />
This of course led to a much larger conversation about the value using these sorts of things in an interview has. My mentioned above, I don&#8217;t think they have any. (Or at least very tiny minuscule amounts to avoid the use of an absolute&#8230;).<br />
<br />
More context. The interview is for a position that will primarily be webdriver automation using python with some manual testing thrown in there as well (and will be taking over the stuff I put in place.)<br />
<br />
So. How does the ability to answer a logic problem help determine the candidate&#8217;s ability to do the job? Very. Little. Here is a secret; web automation is not a &#8216;logic&#8217; problem. It&#8217;s not even <i>that</i> hard. It is <i>way</i> easier to be an automator than a tester.<br />
<br />
What should you spend the time in an interview for a web automator instead of wasting everyone&#8217;s time with the logic problems? Ummmm, how about you have them automate your app. Right there. For real. Projected on the screen.<br />
</p>
<ul>
<li>What oracles do they establish?</li>
<li>Which patterns do they use?</li>
<li>How &#8216;robust&#8217; are their locators?</li>
<li>How is their synchronization?</li>
<li>etc.</li>
</ul>
<p>
These are all critical things to understand about an automator. Especially the one that will take the lead on the project. Notice a distinct lack of explanation why manholes are round or how to determine the odd billiard ball out in a minimum number of steps.<br />
<br />
(Oh, and looking up syntax is absolutely ok. It shows they <i>know</i> where to look. We have this internet thing &#8212; we don&#8217;t need to memorize everything anymore. Now, reliance on an IDE to program for you is not ok.)<br />
<br />
I see logic problems in an interview almost as a crutch that the interviewer is using to hide that they don&#8217;t really know what they are looking for. And as an interviewee, if a logic puzzle rears its head in an interview the bozo bit gets partially flipped on the whole situation. Do <i>I</i> want to work at an organization that values people who can solve logic problems? Or that are awesome automators and/or testers. (This isn&#8217;t to say there isn&#8217;t a possible intersection between the two groups, but it is not guaranteed.)<br />
<br />
What are a few arguments I have received today in favour of logic puzzles; none of which sway me&#8230;</p>
<ul>
<li><i>It shows a high IQ and high IQ is needed for a testing role</i> &#8211; People play lawyers on the internet, so I&#8217;m going to play neuroscientist. So first, all being good on logic problems means is &#8230; you are good at logic problems. A lot of people spend their free time doing these things so they train their brain to spot patterns and build their own solving heuristics for them. Same for crossword-ers or word search-ers. Heck. Look at the whole &#8216;tester game&#8217; thing. (Of course, the tester game phenomenon has a large degree of arrogance associated with. And no, I won&#8217;t play.) Back on topic. No, you also do not need a high IQ to be an excellent tester. Again, I could be conflating IQ with other things (only playing neuroscientist remember&#8230;) but there are more firms hiring Autistic people as testers (<a href="http://cacm.acm.org/news/144552-the-perfect-software-tester/fulltext">article</a>).</li>
<li><i>It lets us see how they work through a problem(1)</i> &#8211; Sure, but is it a class of problem they will experience <i>at the job you are hiring for</i>? Those are the problems you are hiring for.</li>
<li><i>It lets us see how they work through a problem(2)</i> &#8211; As usual, Michael Bolton provided a Feynman reference (even if it is fictional); <a href="http://hebig.org/blog/003029.php">Round Manhole Covers, or: If Richard Feynman applied for a job at Microsoft</a>. Its a fun read and on target in capturing what I have seen of Feynman. But he gets a job offer for marketing. Not in test. Not in web automation. His answer would tell me <i>nothing</i> about his ability to do those jobs, though would tell me not to engage him in an argument about manhole covers.</li>
</ul>
<p>
A slight variation on this is of course, FizzBuzz. FizzBuzz is <i>loved</i> online and is somehow seen as the bar that should be met to be called a programmer. I have <i>not once</i> had to use anything FizzBuzz like in automating apps since I started in early 2000. (And that is of course the only experience <i>I</i> can have.) If you are hiring someone whose responsibility includes programming, <i>absolutely</i> you should have them write code. But have it be relevant to the job! As mentioned above, for a web automation job, have them write web automation code! And if you must use FizzBuzz, then <i>you</i> should write a web app that does it and have them automate it.<br />
<br />
Way at the beginning I mentioned that the job that originated this discussion is mainly automation and partly testing. The automation side I think I&#8217;ve beat to death. Interviewing for testing is, perhaps unsurprisingly, very simple. Have them test! Logic problems will not help you determine if they have a set of heuristics and philosophy for mobile, or payment gateways, or video, or, or, or. Unless your product is vapourware (or super crazy top secret &#8212; at which point, have them <i>test</i> something else), have them test your real product! Again, live! And not just silently do it pointing out [possible] bugs but out loud explaining their thoughts. (I wouldn&#8217;t have them write bug reports as an interview is a fake scenario and you&#8217;re not going to get a &#8216;real&#8217; bug report.) Flashing back to Feynman, this is the useful part of the article. The thinking and rationality behind the thoughts. As an interviewer, <i>that&#8217;s</i> what I care about. Does it clash with mine, does it create overlaps, does it fill capability holes, etc.<br />
<br />
But you can&#8217;t get that from the creative process solving a logic problem! As a community we claim to care about context, but interviewing <i>outside of context</i> seems like a waste of everyone&#8217;s time.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/DxTx9CaEPLs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1776</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1776</feedburner:origLink></item>
		<item>
		<title>Two of the most dangerous terms in Agile; Done and Whole Team</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/4Kd7-7nmrCc/</link>
		<comments>http://adam.goucher.ca/?p=1771#comments</comments>
		<pubDate>Mon, 07 May 2012 11:46:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1771</guid>
		<description><![CDATA[I have come to realize in the last two weeks that there are two words in the Agile lexicon that really bug me. Not because they are bad per se, but that they are so commonly misused and abused. Not to mention being insanely context sensitive. I&#8217;m doing what might be considered an agility assessment [...]]]></description>
				<content:encoded><![CDATA[<p>I have come to realize in the last two weeks that there are two words in the Agile lexicon that really bug me. Not because they are bad per se, but that they are so commonly misused and abused. Not to mention being insanely context sensitive.<br />
<br />
I&#8217;m doing what might be considered an agility assessment for a company and am entering the report generation phase after a number days of observation and data gathering. There is nothing too &#8216;OMG! MY PANTS ARE ON FIRE!!!&#8217; but one thing that sticks out is their working definition of &#8216;Done&#8217;.<br />
<br />
I don&#8217;t think anyone who has played the role of Agile coach or consultant has not written a blog or paper at some point on &#8216;Done vs Done Done vs Done Done Done&#8217;.<br />
<br />
This company has four different teams which are pretty autonomous and effective and one of the things each have done is define their own understanding of Done. While this seems like a good idea on the surface it is really quite dangerous. With each team having their own definition of Done there can be no common understanding when something is Done and that information rolled up with other non-contextual information to management.<br />
<br />
Having the development teams generate the definition of Done also means it is limited to <i>their</i> scope of influence, care and interaction. The net result is a very naive scope of Done. Stories that are &#8216;done&#8217; frequently will go out into production without adequate analytics hooks or means of monitoring the health of the component being created.<br />
<br />
This nicely dovetails to the other most dangerous term; The Whole Team. I was at an automation workshop this past weekend and the people there spent almost 45 minutes talking around this subject. In retrospect no one asked what everyone meant by &#8216;the whole team&#8217;. This is another area I suspect Agile teams need to work better on. I would bet that most people&#8217;s working definition of the whole team includes the developers, the testers and someone in some sort of product ownership role (either directly or in proxy). But what about the analytics team, or the sales folks who use the output from the analytics team? Or the Ops team, including the DBAs that need to push the code out onto the iron? How about the customer support people who deal with the brunt of the code team&#8217;s mistakes?<br />
<br />
The list is not endless, but it is large. One thing I like from the Lean Startup [Cult|Movement] is the the story isn&#8217;t done until it in production getting validated by real users. The <i>user</i> is on the team whether they realize it or not. We&#8217;ll just gloss over the lack of humans in the release process&#8230;<br />
<br />
I think there is actually some sort of circular feedback loop at play between Done and Whole Team and you cannot address just one in isolation. Instead, <i>really</i> figure out who your team&#8217;s stakeholders are and what skin they have in the game. Only then do you have a chance, and only a chance, of coming up with an appropriate, inclusive, accurate definition of Done.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/4Kd7-7nmrCc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1771</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1771</feedburner:origLink></item>
		<item>
		<title>More adventures in magic automation numbers</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/jU0dTjDtYic/</link>
		<comments>http://adam.goucher.ca/?p=1767#comments</comments>
		<pubDate>Tue, 01 May 2012 03:09:54 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1767</guid>
		<description><![CDATA[I&#8217;m most of the way through a client on-site engagement to do an &#8216;assessment&#8217; of where their testing processes are and to suggest tweaks to how they do things. I have some broad recommendations that will morph into blog posts over the next month or so, but right now I am challenged by coming up [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m most of the way through a client on-site engagement to do an &#8216;assessment&#8217; of where their testing processes are and to suggest tweaks to how they do things. I have some broad recommendations that will morph into blog posts over the next month or so, but <i>right now</i> I am challenged by coming up with something that doesn&#8217;t sound too much like a consultant-y dodge around &#8216;When will our [functional] automation remove the need for our extensive manual regression testing?&#8217;.<br />
<br />
This is of course a trap.<br />
<br />
There is no way to determine this number with any degree of certainty.<br />
<br />
But what if you <i>really</i> needed to provide an argument around the inability to predict this? My current, best argument around this is that we, as humans, we are really bad at predicting the future.</p>
<ul>
<li>Just because you are having a certain degree of automation success now, does not mean that the rate of success will continue at all let alone along the same trajectory.</li>
<li>Is the competency of the developers going to change? For better? For worse?</li>
<li>Is the competency of the testers going to change? For better? For worse?</li>
<li>Will the market fundamentally change?</li>
<li>Will the types of stories that come into the development groups remains such that there is a high degree of [perceived] value from automation?</li>
</ul>
<p>
All of these are completely out of control of, well, everyone. Yes, even the ones about the competency of staff. Sure, you can change the way you hire and the way you train, but you can&#8217;t change the fact they are people and people are messy. There are however things that we can at least fool ourselves into thinking we have some degree of control over. Though not accuracy&#8230;<br />
</p>
<ul>
<li>This particular client is migrating two older application stacks to a new one, so the source of some of the regression risk (the older stacks) will be removed from the equation (replaces, of course, with a new set of risks but the plan is they will be less).</li>
<li>With [better] exploratory testing will regressions be caught during &#8216;feature&#8217; testing?</li>
<li>If the developers adopt a TDD approach to code generation rather than ad-hoc post-coding security blanket unit testing, will that decrease regressions?</li>
<li>Will the internal focus on a single browser allow for more focused testing (with breadth covered though a testing partner)?</li>
<li>Will proper management of environments lead to less false positives, less re-testing and/or idle testers?</li>
</ul>
<p>
Because we cannot predict the output of any let alone all of these things, which are all inputs into the equation that pops out a date for that magic point where we could be a half-step away from Continuous Deployment (no humans) then &#8216;tomorrow&#8217;, &#8216;July 23&#8242;, &#8216;Q3 2013&#8242; are all correct. And all wrong.<br />
<br />
But if we think of each of these are part of the overall system that results in regression duration that is deemed unacceptable and/or too long then we can address them each individually there is likely to be improvement in the overall system. To what degree and by which contributing measures is however anyone guess. And only a guess.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/jU0dTjDtYic" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1767</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1767</feedburner:origLink></item>
		<item>
		<title>A Cool Graph, but…</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/ZVDZAf0Llfw/</link>
		<comments>http://adam.goucher.ca/?p=1760#comments</comments>
		<pubDate>Mon, 09 Apr 2012 18:01:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1760</guid>
		<description><![CDATA[So this graphic is making the rounds today. qtp,selenium Job Trends Qtp jobs &#8211; Selenium jobs And while it is interesting (at time of posting, Selenium has crossed QTP and the trends are going the &#8216;right&#8217; way), it is important to also remember this: Don’t confuse slamming your competitors with improving your own product. &#8212; [...]]]></description>
				<content:encoded><![CDATA[<p>So this graphic is making the rounds today.<br />
</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=qtp%2Cselenium" title="qtp,selenium Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=qtp%2Cselenium" border="0" alt="qtp,selenium Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=qtp%2Cselenium">qtp,selenium Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/jobs?q=Qtp">Qtp jobs</a> &#8211; <a href="http://www.indeed.com/jobs?q=Selenium">Selenium jobs</a></td>
</tr>
</table>
</div>
<p>
And while it is interesting (at time of posting, Selenium has crossed QTP and the trends are going the &#8216;right&#8217; way), it is important to also remember this:<br />
</p>
<blockquote class="twitter-tweet tw-align-center"><p>Don’t confuse slamming your competitors with improving your own product.</p>
<p>&mdash; Mike Monteiro (@Mike_FTW) <a href="https://twitter.com/Mike_FTW/status/186337338903891968" data-datetime="2012-04-01T06:20:58+00:00">April 1, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/ZVDZAf0Llfw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1760</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1760</feedburner:origLink></item>
		<item>
		<title>The ‘Un-Testing Conf’</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/c5_tzDglhEU/</link>
		<comments>http://adam.goucher.ca/?p=1756#comments</comments>
		<pubDate>Sat, 07 Apr 2012 02:30:18 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1756</guid>
		<description><![CDATA[The Un-Conf is a common event type these days; no scheduled speakers, just a bunch of smart people and a space to facilitate conversation. The success of these is entirely dependent on who is there. And there is the classic Testing Conf where speakers are selected, assigned slots and talk about things directly related to [...]]]></description>
				<content:encoded><![CDATA[<p>The Un-Conf is a common event type these days; no scheduled speakers, just a bunch of smart people and a space to facilitate conversation. The success of these is entirely dependent on who is there. And there is the classic Testing Conf where speakers are selected, assigned slots and talk about things directly related to Testing.<br />
<br />
But what I think I want a Un-Testing Conf. This would would be the same format of a classic conference but without topics about Testing.<br />
<br />
Well.<br />
<br />
Obviously about testing.<br />
<br />
<i>Irony Alert</i><br />
<br />
I am sick of going to Testing conferences and hearing the same sort of stuff over and over. Or something that I could quickly pick up from any number of industry related books or blogs. I want to learn new, mind blowing things. And do you know where those things hide out? Hint: its not in the testing world!<br />
<br />
Tangent. Have a single track conference; 5 or 6 concurrent tracks is too much.<br />
<br />
So what would my Un-Testing Conf look like? Well, it would likely be expensive since you can&#8217;t just comp the speakers a ticket and expect them to graciously accept the invitation. Currently the line-up would be something like&#8230;<br />
</p>
<ul>
<li><a href="https://twitter.com/#!/Mike_FTW">Mike Monteiro</a> &#8211; Design Is A Job</li>
<li><a href="http://gapingvoid.com">Hugh MacLeod</a> &#8211; Social Objects</li>
<li><a href="http://www.austinkleon.com/">Austin Kleon</a> &#8211; Steal Like an Artist</li>
<li><a href="http://dirkhayhurst.com/">Dirk Hayhurst</a> &#8211; Something baseball-y</li>
<li><a href="http://maryrobinettekowal.com/">Mary Robinette Kowal</a> &#8211; Puppetry</li>
<li>Someone who has been in the International Space Station</a></li>
<li><a href="http://www.englishcut.com/">Thomas Mahon</a> &#8211; Customer Service (or something)</li>
<li><a href="http://sianbeilock.com/">Sian Beilock</a> &#8211; Choking (or how not to)</li>
<li><a href="http://blogmaverick.com/">Mark Cuban</a> &#8211; (Don&#8217;t know what I&#8217;d like to hear him talk about, but he is usually pretty fun and has interesting stuff to say)</li>
<li><a href="http://www.blaisracing.com">Chris Blais</a> &#8211; Dakar, and now</li>
<li><a href="http://www.rozsavage.com">Roz Savage</a> &#8211; Ocean Rowing</li>
</ul>
<p>
I can, without even trying, explain how each and every one of the above people have important things to say that would make testers better at their job.<br />
<br />
That is a full two days of speakers already. Who else would you like to see? The only &#8216;rule&#8217; is they cannot self-identify as a Tester.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/c5_tzDglhEU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1756</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1756</feedburner:origLink></item>
		<item>
		<title>Because that is how they got that way</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/mBMc0GrGeQ4/</link>
		<comments>http://adam.goucher.ca/?p=1753#comments</comments>
		<pubDate>Tue, 03 Apr 2012 00:21:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1753</guid>
		<description><![CDATA[So last week I was in New Orleans for STPCon and one of the things I did was a 15-ish minute gabfest on Set Course For Awesome (as a ‘Career Tester’). One of my supporting ideas for it is that you need to shut up, listen, and figure out what it is you are supposed [...]]]></description>
				<content:encoded><![CDATA[<p>So last week I was in New Orleans for STPCon and one of the things I did was a 15-ish minute gabfest on <a href="http://adam.goucher.ca/?p=1744">Set Course For Awesome (as a ‘Career Tester’)</a>. One of my supporting ideas for it is that you need to shut up, listen, and figure out what it is you are supposed to be providing information on. (Protip &#8211; its not what you think it is; or the second thing; or even likely the third thing.)<br />
<br />
One trick I have started to intentionally using is to understand <i>why</i> something is the way it is. Especially for the things that stand out as particularly bone-headed. Often a series of perfectly rational thoughts happened in a perfectly logical order only to have nasty repercussions.<br />
<br />
There are lots of examples of this, but when I was in New Orleans I took a &#8216;pirate tour&#8217; (I know, shocking) and it provided yet another example of this.<br />
</p>
<ul>
<li>In 1788, a candle lit a bit of curtain and started a pretty nasty fire</li>
<li>It was Good Friday, and the Cathedral bells had burlap on them so as to not ring until Easter Monday</li>
<li>New Orleans burned. Almost to the ground.</li>
<li>But they rebuilt! In stone!</li>
<li>And inside each stone building was a well &#8212; not only for drinking purposes but to have ready access to water in case of another fire</li>
<li>Mosquitos breed in water</li>
<li>There is water in every home</li>
<li>Between 1817 and 1904 there were over 41 000 yellow fever deaths</li>
<li>Yellow fever is transmitted by mosquitos</li>
</ul>
<p>
All perfectly reasonable individually, but viewed through the lens of history, 41 000 people died from yellow fever because a candle&#8217;s flame caught a curtain.<br />
<br />
The trick, especially for those of us who see <i>lots</i> of companies is to trace back things and where possible address the original concern rather than just the current manifestation of the concern.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/mBMc0GrGeQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1753</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1753</feedburner:origLink></item>
		<item>
		<title>Set Course For Awesome (as a ‘Career Tester’)</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/PaGPxmOvzs0/</link>
		<comments>http://adam.goucher.ca/?p=1744#comments</comments>
		<pubDate>Sat, 24 Mar 2012 03:44:19 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1744</guid>
		<description><![CDATA[I&#8217;ve been asked to do a 15-ish minute talk as part of Anne-Marie Charrett and Fiona Charles&#8216; upcoming workshop at STPCon on being a Career Tester (as compared to going into Management or Consultant &#8212; even though I have been both). As I thought about this, I think this could actually turn into a keynote [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been asked to do a 15-ish minute talk as part of <a href="http://mavericktester.com/">Anne-Marie Charrett</a> and <a href="http://www.quality-intelligence.com">Fiona Charles</a>&#8216; upcoming workshop at STPCon on being a <i>Career Tester</i> (as compared to going into Management or Consultant &#8212; even though I have been both). As I thought about this, I think this could actually turn into a keynote worthy talk (of course, then I would actually have to practice it?!), but I have come up with what I think is basically my advice to myself of 15 years ago when I landed on this career path. Now of course, to deliver it as a double-stuffed-lightning-talk for them.<br />
</p>
<h3>Set Course For Awesome</h3>
<p><a href="http://fakegrimlock.com"><img src="http://farm8.staticflickr.com/7151/6615307831_807782ae01.jpg" alt="Set Course for Awesome by Fake Grimlock. This is also my computer desktop. And is awesome."/></a><br />
Testing is an awesome and rewarding career. But it is also &#8216;new&#8217; even in the larger context of IT jobs which are themselves new in the grand scheme of things. This means that unlike someone in the trades, the career path for testers isn&#8217;t well defined and everyone&#8217;s will be slightly (or significantly) different. The thing that will be common to them all though is that those who are happy(est) will have taken responsibility for their career and planned it out. The plan may not work out, and will almost guaranteed to need course corrections along the way, but the act itself is useful. So set a course for awesome. (And lets not concern ourselves about the alternatives to that shall we? Great.)<br />
</p>
<h3>Shut Up and Listen</h3>
<p><img src="http://www.motivationalrefrigeratormagnets.com/photo-gallery-black/images/large/lg_shut_up_and_listen.jpg" alt="Shut Up and Listen. Words to live by." /><br />
It was during RST with James Bach that I really understood that the role of a tester isn&#8217;t to &#8216;break the app&#8217; or &#8216;find all the bugs&#8217; but to provide information about the application. It wasn&#8217;t until some time later than I realized that it is actually more subtle than that. Our job is to provide information <i>that matters</i>. And how do we do that? Easy. We Shut Up and Listen. To what? That is also easy. To the people we are providing the information to. Now that I&#8217;ve completed PSL I can safely start quoting Gerry Weinberg so here are two useful things to remember.</p>
<ol>
<li>No matter how it looks at first, it&#8217;s always a people problem</li>
<li>Things are the way they are because they got that way</li>
</ol>
<p>If you can start to understand the people in the system you are operating in, and why the [larger] system operates the way it does then you can provide them the information they need. But you can&#8217;t do that unless you stop, shut up, and listen.<br />
</p>
<h3>Hooray</h3>
<p><img src="http://farm3.static.flickr.com/2482/3592960452_90656305a7.jpg" alt="This venn diagram should be all you need to plan what you want to do with your life" /><br />
Too often people let others drive their career trajectory or they just listlessly bounce from one place to another. This handy venn diagram should help you organize your thoughts. Make the three lists. Find the Hooray point. <i>That</i> is your destination. Or more correctly, your current destination as it is likely to change as you experience new things. You are not the person you were five years ago, and you are not today who you will be in five years. I actually have a large copy of this that needs framing and will go on my office wall.<br />
</p>
<h3>Steal Like an Artist</h3>
<p><img src="http://farm6.static.flickr.com/5101/5580291860_748652b4d8_o.gif" alt="Book. Of. The. Year." /><br />
I&#8217;m going to say this right now. In March. That <a href="http://www.austinkleon.com/2011/03/30/how-to-steal-like-an-artist-and-9-other-things-nobody-told-me/">Steal Like an Artist</a> is my Tester Book of the Year for 2012. And it has no direct links to testing. Which is also part of the point. Not only are the 10 points in it completely relevant to <i>being</i> a tester but it comes from a different field entirely. Go outside of the testing community for inspiration. One of my first public testing talks was about being a houseleague lacrosse coach. The most useful books for my testing practice recently have been about how the brain handles stress, how to <i>really</i> practice something and about apprenticeship patterns. None of them were written by testers, but each made me a much better tester. Take inspiration from everything and everyone. When you are constantly looking for it, it is amazing how often you can find it.<br />
</p>
<h3>Be Yourself</h3>
<p><img src="http://28.media.tumblr.com/tumblr_lci80qgrSF1qf76m1o1_500.png" alt="Keep Calm and Be Yourself" /><br />
The trick to Stealing Like an Artist vs blind theft is that artists make what their steal their own. You will not truly succeed just regurgitating words and ideas that you heard from people at conferences or read on their blogs. The two I see all the time is the <a href="http://www.satisfice.com/articles/sfdpo.shtml">SFDPO</a> mnemonic and the notion of testing tours. Think of your own. I know you mean well by parroting it, but internalize it, morph it, evolve it until it is yours. It is impossible for you to be anybody but yourself. So don&#8217;t try. Take what you like and what inspires you, make it part of you, and ignore the rest.<br />
</p>
<h3>Have a Therapist</h3>
<p><a href="http://www.20x200.com/artworks/1139-mike-monteiro-untitled-i-told-my-therapist"><img src="http://20x200-development.s3.amazonaws.com/uploads/still/file/1365/proportional_500_1139_framed_1000.jpg" src="I don't have this print, though am seriously thinking of getting the bridges burned one..." /></a><br />
Talk to everyone you can. But have a couple close people you can bounce ideas and questions off of. Both for &#8216;shop&#8217; and life in general. You might be smart, but someone is always smarter. You can&#8217;t grow if you just talk to yourself or your teddy bear. And it works the same way too. Some of the best lunch chats I&#8217;ve had have been initiated by me but I went home with less notes than the person I was trying to talk something through with. The term <i>mentor</i> I think is too constrained. Remember, its always a people problem and people problems require therapists.<br />
</p>
<h3>Be Totally Fucking Amazing</h3>
<p><a href="http://www.gapingvoidart.com/quality-p-54.html"><img src="http://www.gapingvoid.com/quality005jpeg.jpg" alt="This is hanging in my office" /></a><br />
Quality this, Quality that. Blah. Blah. Blah. As a tester, you shouldn&#8217;t fall into the trap of thinking &#8216;Quality is Job One&#8217;. Its not. Being totally fucking amazing is job one. Your customers do not care that the code is quality, or that it follows some style guide line or has only 0.45444 bugs per 1000 lines of code. They care that it is amazing. That&#8217;s all. The same applies for your career. Whoop-dee-freakin-do that you have been at the same company for 10 years and got a commemorative clock (do they even do that any more??!?). Are <i>you</i> being amazing anymore? If not, why are you still there? Print out the Hooray graph, plot your course to awesome and go be totally fucking amazing.<br />
<br />
Here is the slideshare link to share amongst yourselves.</p>
<div style="width:425px" id="__ss_12136791"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/agoucher/set-course-for-awesome-as-a-career-tester" title="Set Course for Awesome (as a Career Tester)">Set Course for Awesome (as a Career Tester)</a></strong><object id="__sse12136791" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=setcourse-120323225734-phpapp01&#038;stripped_title=set-course-for-awesome-as-a-career-tester&#038;userName=agoucher" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse12136791" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=setcourse-120323225734-phpapp01&#038;stripped_title=set-course-for-awesome-as-a-career-tester&#038;userName=agoucher" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/agoucher">Adam Goucher</a>.</div>
</div>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/PaGPxmOvzs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1744</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1744</feedburner:origLink></item>
		<item>
		<title>The impact having an online presence makes to an author</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/C7es28W0Ndg/</link>
		<comments>http://adam.goucher.ca/?p=1741#comments</comments>
		<pubDate>Thu, 22 Mar 2012 14:47:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1741</guid>
		<description><![CDATA[I just finished readying Mary Robinette Kowal&#8216;s book Shades of Milk and Honey which is often described as &#8216;Jane Austen with Magic&#8217; which so far as I can tell is accurate. (There is magic and I trust that is Austen-esque.) This is clearly a large step outside of my normal Epic Fantasy genre reading and [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.maryrobinettekowal.com/wp-content/uploads/2010/05/MilkHoney_FNLCoverx230.jpg" /><br />
<br />
I just finished readying <a href="http://maryrobinettekowal.com">Mary Robinette Kowal</a>&#8216;s  book <a href="http://www.maryrobinettekowal.com/fiction-collectio/shades-of-milk-and-honey/">Shades of Milk and Honey</a> which is often described as &#8216;Jane Austen with Magic&#8217; which so far as I can tell is accurate. (There is magic and I trust that is Austen-esque.) This is clearly a large step outside of my normal Epic Fantasy genre reading and I would have ignored the cover illustration completely in the bookstore (had it a copy, which is didn&#8217;t). And even if I had, the Jane Austen part would have scared me away based solely on reputation than actual opinion (and that I couldn&#8217;t get through &#8216;Pride and Prejudice and Zombies&#8217;). But I bought it soley on <i>who</i> wrote it. And how I know about her wouldn&#8217;t be possible even 5 years ago.<br />
<br />
But first, a mini-review.<br />
<br />
Having suffered through some &#8216;classic&#8217; Victorian era books in highschool, I somewhat feared that this would be as equally difficult to get around just the phrasing, but it was a quick, and enjoyable read &#8212; I think I went through it in 3 sittings (though one was exceptionally long). The characters fit my mental model of how they would behave and act in &#8216;proper society&#8217; and the magic system seemed perfectly natural (and thankfully the origins of which were not explained). The book itself (at least the hardcover) has the pages not chopped for even-ness which lends, I think, the appropriate amount of &#8216;era&#8217; to the book.<br />
<br />
Oh. And I only found one type-o; &#8216;colour&#8217; in one sentence and &#8216;color&#8217; in the next which is really an spell-checking dictionary problem.<br />
<br />
Now for the real reason for the post; an author who is active in various social media platforms can dramatically affect how a reader experiences there work. And not just in a sales perspective (though certainly that does help). Here is the list of ways in this particular case.</p>
<ul>
<li>Mary has been one of the hosts of <a href="http://writingexcuses.com">Writing Excuses</a> for a while now so I get a dose of what she sounds like in 15 minute chunks every Monday. What this did was &#8216;change&#8217; the voice in my head while I was reading. This is not something I had noticed before but it is usually male voice, but this time it was not only female, but Mary</li>
<li>Also from Writing Excuses I knew that the Austen has used [almost] every work in one of her original works as Mary took the complete works of Austen, uniqued it and then used that as her spell-checking dictionary. Which. Is. Awesome. And while appreciating this fact runs slightly counter to one of the themes of the book which is to appreciate the beauty in art without dissecting in, it is still awesome.</li>
<li>At one point there is a puppet show in the story, and while it is explained, nothing beats actually seeing it. Which you would, if you followed her <a href="http://twitter.com/maryrobinette">twitter</a> and watched <a href="http://www.rtbookreviews.com/rt-daily-blog/video-interview-mary-robinette-kowal-talks-her-series-second">this interview</a> in which she performs the show</li>
<li>Which she is well qualified to do since she is a Puppeteer first. That itself is hilarious when she is tweeting about making puppet.<br />
<blockquote class="twitter-tweet"><p>Time to glue his toenails. I&#8217;m debating about inserting the glue under his skin or on the surface.</p>
<p>&mdash; Mary Robinette Kowal (@MaryRobinette) <a href="https://twitter.com/MaryRobinette/status/179306661138272258" data-datetime="2012-03-12T20:43:34+00:00">March 12, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></li>
<li>Mary blogs frequently sometimes <a href="http://www.maryrobinettekowal.com/series/images-from-the-glamourist-histories/">posting period costume</a> which helps complete the mental picture of things while reading.</li>
</ul>
<p>
We (I) <i>completely</i> blew the social media aspect of promoting Beautiful Testing. Mary seems to have it nailed. And I have <a href="http://www.maryrobinettekowal.com/fiction-collectio/glamour-in-glass/">Glamour in Glass</a> already on order.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/C7es28W0Ndg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1741</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1741</feedburner:origLink></item>
		<item>
		<title>Its all about the Bordens</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/t_Llc1Z6SnI/</link>
		<comments>http://adam.goucher.ca/?p=1736#comments</comments>
		<pubDate>Fri, 09 Mar 2012 03:18:48 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1736</guid>
		<description><![CDATA[In today&#8217;s tech world (and I suspect non-tech as well) there are two basic funding models for companies; bootstrap and VC. I&#8217;m bootstrapped since I opened shop with only about 40 hours notice. I enjoy being my own boss, but as people I know de-independent themselves or I see their company gets acquired I think [...]]]></description>
				<content:encoded><![CDATA[<p>In today&#8217;s tech world (and I suspect non-tech as well) there are two basic funding models for companies; bootstrap and VC. <a href="http://element34.ca">I&#8217;m</a> bootstrapped since I opened shop with only about 40 hours notice.<br />
<br />
I enjoy being my own boss, but as people I know de-independent themselves or I see their company gets acquired I think about &#8216;what if?&#8217; situations.<br />
<br />
What If &#8230; &#8216;I sold the company&#8217;<br />
<br />
I sometimes think about what sort of company I would &#8216;sell&#8217; my company to. I suppose for enough cash I would sell to almost anyone but what sort of company would be the right &#8216;fit&#8217;?<br />
<br />
The obvious one might be <a href="http://saucelabs.com">Sauce Labs</a> since they are Selenium in the cloud, but they don&#8217;t have a Consulting / Professional Services wing. Now, acquiring me could become one, but I don&#8217;t think that is their strategy especially with the launch of their Ambassador (Partner) program. I am a Partner btw, so contact me if you are looking at them as I have a magic partner code. And while I think their OnDemand product is outstanding I like being able to recommend different solutions when the situation warrants. I&#8217;d likely also have to stop writing <a href="http://browsermob.com">BrowserMob</a> scripts as well which would be factored into any sale price, but is something to keep in mind when selling out to a Service company.<br />
<br />
Selling to Neustar (which bought BrowserMob last year) has all the same problems, only flipped around.<br />
<br />
So what about a pure Consulting company? Thoughtworks is where Selenium was created and does make sense to some degree, but from all accounts, you are on the road as a Thoughtworker <i>way</i> too much. I also think I know more ex-Thoughtworkers than I do current ones. <a href="http://leandog.com">Leandog</a> would be a much better fit and I have done work for them in the past. (Last I looked I was even listed on their website.) I&#8217;d be a bit scared of the travel with them too though, and I&#8217;m not sure how much of their customer base is Python or PHP which are my best languages (though I am not unfamiliar with Ruby as well).<br />
<br />
In either acquisition scenario there would have to be a line item to get me proper work clearance for the US (which is a pain).<br />
<br />
What If &#8230; &#8216;I got an investor&#8217;<br />
<br />
I think bootstrapped companies tend to stick closer to their original entrepreneurial goals, but of course they [often] suffer from lack of capital to really expand and start to scale. Which is where I am now. I&#8217;m trying to build out a couple products and do consulting at the same times. Sometimes the two line up, sometimes they don&#8217;t.<br />
<br />
So were I to take investment from a VC (or Angel) what would I do? In a word, hire! But in a very targeted manner. I think for the model that I have going, what I need to be successful are testers who know how to program. The distinction between developers-who-test and testers-who-develop is oft argued but I think its important. Automation experience certainly helps, but this is along the lines of &#8216;hire for character; you can teach skills&#8217;. I can teach them the automation how-to but you can&#8217;t teach the natural &#8216;think like a tester&#8217; that is essential in awesome automation. Oh, and of course they need experience in teaching. There is a big gap between being able to do something and communicate how to someone who is still running headlong into a learning curve.<br />
<br />
For revenue purposes, I would need a Java programmer first. As much as I dislike the language, it is used a lot and I end up turning away work at least once a week for it. The next two are interchangeable in hiring order; a Python person and a PHP one. They would be working, when not on client stuff, on Py.Saunter or SaunterPHP.<br />
<br />
That puts the company at four people with others brought in as necessary (on contract initially), and I&#8217;m fine with remote work so likely wouldn&#8217;t need a &#8216;proper&#8217; office and could continue to sublet where I am. With runway for a year I&#8217;m thinking the investment would have to be somewhere around $450 000. Which is not a small amount (at least to me) but I&#8217;m pretty sure that with a bit of a marketing push that support contracts for Saunter could become a decent revenue source. Not to mention more and more companies are looking for Selenium help as they realize that even though the software cost is zero, the cost of not doing things &#8216;right&#8217; is a lot more.<br />
<br />
So anyways. That&#8217;s what&#8217;s being going around my head the last couple days as a result of some press releases, etc. that I stumbled across. By no means am I putting out a &#8216;for sale&#8217; sign, but these sorts of situations are ones that business owners need to think through. I just happen to do a lot of that thinking out loud and in public.<br />
<br />
(Oh, and for the non-Canadians, Robert Borden, the 8th Prime Minster of Canada is on our 100 dollar bills)</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/t_Llc1Z6SnI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1736</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1736</feedburner:origLink></item>
		<item>
		<title>How to ‘properly’ build multiple Facebook games</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/eEogJODl8V4/</link>
		<comments>http://adam.goucher.ca/?p=1731#comments</comments>
		<pubDate>Thu, 29 Dec 2011 05:39:20 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1731</guid>
		<description><![CDATA[Want to absolutely kill my productivity? Introduce me to a timeboxed game on pattern recognition (Bejeweled, Tetris) or bubble stacking (Bubble Island). Facebook is very dangerous for these. One of my favourite is Diamond Dash by Wooga &#8212; which happens to have a number of other games too. A week or two ago I was [...]]]></description>
				<content:encoded><![CDATA[<p>Want to absolutely kill my productivity? Introduce me to a timeboxed game on pattern recognition (Bejeweled, Tetris) or bubble stacking (Bubble Island). Facebook is very dangerous for these. One of my favourite is <a href="https://apps.facebook.com/diamonddash">Diamond Dash</a> by Wooga &#8212; which happens to have a number of other games too.<br />
<br />
A week or two ago I was playing Diamond Dash while babysitting a script run a little monster appeared on the screen saying something like &#8220;Get to level 5 on Monster World and earn a special bonus gem&#8221;. Ooooo! Bonus gem! So like a good little pawn I got to level 5 and unlocked my gem.<br />
<br />
But now I started thinking. If these two games are integrated, what about the other ones? And so I leveled a couple more times in Monster World and soon a Raccoon showed up in the corner. Play 10 levels of Bubble Island and get a unlockable plant (Monster World is one of this silly &#8216;farming&#8217; games). I&#8217;m more than happy to play 10 games of Bubble Island and so got my plant.<br />
<br />
Is it integrated with the other games? Not yet, or at least not so far that I have discovered.<br />
<br />
This got me thinking though that this is <i>exactly</i> the right strategy for creating multiple properties on a social platform like Facebook. I would go so far as to suggest that part of the product roadmap for an additional property is the integrations with the existing ones. Taking the Wooga games as the example I would likely do the following (just off the top of my head).</p>
<ul>
<li>Bubble Island -&gt; Monster Island (existing) &#8211; Play 10 games and get a plant (Bubble Bush); though the plant should be integrated into the gameplay. So far none of the &#8216;quests&#8217; have required it.</li>
<li>Monster World -&gt; Bubble Island &#8211; Plant a Bubble Bush and get 3 fireball special shots; available once a day</li>
<li>Monster World -&gt; Diamond Dash (existing) &#8211; Get to level 5 and unlock the Plasma Gem</li>
<li>Monster World -&gt; Diamond Dash (existing) &#8211; Plant a Heart Flower and get an extra heart; available once a day</li>
<li>Diamond Dash -&gt; Monster World &#8211; Once you get the spellbook, collect certain amount of diamonds to add new Arabian Knights themed decorations</li>
<li>Diamond Dash -&gt; Bubble Island &#8211; Once you get the spellbook, collect certain amount of diamonds to add new level in the Adventure mode appears</li>
</ul>
<p>And that doesn&#8217;t even include the Happy Hospital and Magic Land games (which I think are the Monster World engine with Pets and Knights respectively) which I would likely do at the higher levels of Monster World since the quests there take a while to compete so while they are churning away you could be doing the lower level, quicker ones of a different game.<br />
<br />
The point being that social networking works best when the network effect kicks into overdrive. That process can be given a boost by incentivizing your existing audience to try other things that they have already shown that they keep coming back to.<br />
<br />
Oh. And I would make sure a list like this was published somewhere reputable that was highly SEO&#8217;ed. Discovering during gameplay is one thing, but making it know that you can get these things if you play <i>just a bit</i> more could have value too.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/eEogJODl8V4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1731</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1731</feedburner:origLink></item>
		<item>
		<title>Really step up to the plate for the Open Web</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/p_R5DMmCN1E/</link>
		<comments>http://adam.goucher.ca/?p=1727#comments</comments>
		<pubDate>Sat, 24 Dec 2011 03:03:22 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1727</guid>
		<description><![CDATA[The internets were ablaze this week with SOPA stuff, and in near-inferno around GoDaddy supporting (but that is a different post altogether). And while it is nice that the geek community is up in arms, its a bit concerning how little mainstream media attention it is receiving. Even more so from the media up here [...]]]></description>
				<content:encoded><![CDATA[<p>The internets were ablaze this week with <a href="http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act">SOPA</a> stuff, and in near-inferno around GoDaddy supporting (but that is a different post altogether). And while it is nice that the geek community is up in arms, its a bit concerning how little mainstream media attention it is receiving. Even more so from the media up here since Canada is in ARIN and so [apparently] falls under the US government&#8217;s jurisdiction. Not to mention the the copycat law that will be introduced using the American one as &#8216;proof&#8217; of its good-idea-ness<br />
<br />
But even if (when) the beast that is SOPA gets enacted there will be ways to get around it. Heck, there already are <A href="http://torrentfreak.com/firefox-add-on-bypasses-sopa-dns-blocking-111220/">a couple plugins for Firefox</a> that do just that. Which leads me to an idea.<br />
<br />
<i>We Believe in an Open Web. And we’re dedicated to keeping it free, open and accessible to all</i><br />
<br />
This is the main text on the Mozilla website. What if they just included these plugins, or the tricks that they do in the Firefox browser. The day that it gets presidential assent is when it should should go into Aurora.<br />
<br />
But this post isn&#8217;t to call out [just] Mozilla and put them in political bind (since they are incorporated in the US). Google has been just as strong in their opposition and they control the Chromium/Chrome browser. And apparently Microsoft opposes it too, and of course they control Internet Explorer.<br />
<br />
Of course, Google and Microsoft could give a damn about the Open Web&#8230;</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/p_R5DMmCN1E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1727</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1727</feedburner:origLink></item>
		<item>
		<title>Badges; carrot, not stick!</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/pFUasDz4A04/</link>
		<comments>http://adam.goucher.ca/?p=1724#comments</comments>
		<pubDate>Sat, 17 Dec 2011 14:35:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1724</guid>
		<description><![CDATA[There seems to be two growing schools of thought about badges forming (or at least becoming more visible.). Not surprisingly, I think the origins of these have to do with who has what in the game. For instance, the StackOverflow folks have from the beginning talked up using points and badges as a recruiting tool. [...]]]></description>
				<content:encoded><![CDATA[<p>There seems to be two growing schools of thought about badges forming (or at least becoming more visible.). Not surprisingly, I think the origins of these have to do with who has what in the game. For instance, the StackOverflow folks have from the beginning talked up using points and badges as a recruiting tool. Oh, and they have a for-money job board&#8230;<br />
<br />
What is really concerning to me though is an increase in the number mentions of badges being used as a stick. Case in point is an email on the Open Badges mailing list this morning.<br />
<br />
<i>Obviously we can all see the benefits of having such a badge system that is supplemental to formal education. In the workplace, specific skill badges can be connected to increased salaries. Right now at my workplace we are dealing with secretaries who are untrained in newer technologies and they are unable to assist faculty and administrators in their departments. Now if we accept and link specific badges with salary raises or promotions, now we have intrinsic value for them to actually pursue more training.</i><br />
<br />
No. What you have is another stick to beat people with. Horrible corporate training has always existed only now you might get a badge rather than a certificate you print at the end. Yes, some will try for the badge the same way some would put the certificate saying they completed the corporate ergonomics training on their cube wall.<br />
<br />
Now, with the whole gamification trend, I expect corporate training management systems to grow badges, if they haven&#8217;t already, as a way to tracking who has done what. That&#8217;s not really using badges though, that&#8217;s just replacing checkboxes with graphics. Kinda like how a lot of teams transition to Agile by calling the Project Manager a Scrum Master&#8230;<br />
<br />
Another risk that comes from using badges as a stick is invasion of corporate interests that have nothing to do with the improvement of the badge holder, but of the badge issuer. Certified Tester badge anyone? You know there will be dozens of those if the idea of badges takes off. And like the certificates they supplement you&#8217;ll be able to buy them rather than earn them rather than earn them.<br />
<br />
<a href="http://www.hackeducation.com/2011/12/13/top-ed-tech-trends-of-2011-the-higher-education-bubble/">Top Ed-Tech Trends of 2011: The Higher Education Bubble</a> talks about badges supplementing formal education &#8212; in what feels kinda stick-like. It is a good article on the whole though. Yes, we (society) need to rethink credentialing and accreditation &#8212; tried to cross a border for work recently only having a highschool diploma? Saying you need to have certain badges from certain issuers for a job or raise however is just replacing one broken system with another.<br />
<br />
Badges, to me, should be not forced upon someone but the carrot that inspires learning. Learning that would likely happen anyways actually, but just provide an indicator of having done it. Again, I fall back onto the example of Cubs. There are around 45 badges a Cub <i>could</i> earn during their three years, but they don&#8217;t have to. Yes, they&#8217;ll get some just by showing up and doing the activities we (the leaders) plan, but a lot more need them to show their own initiative. Some will, and some won&#8217;t. And that&#8217;s ok.<br />
<br />
And know what? They&#8217;ll all be allowed to move up to Scouts. If badges were being used as a stick there wouldn&#8217;t be nearly as much enthusiasm around them or the programs. Actually, it would look at lot like a corporate environment. </p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/pFUasDz4A04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1724</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1724</feedburner:origLink></item>
		<item>
		<title>Badges as the centre of the Web Maker solar system</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/lxbE2wSXC1g/</link>
		<comments>http://adam.goucher.ca/?p=1721#comments</comments>
		<pubDate>Wed, 07 Dec 2011 18:25:32 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1721</guid>
		<description><![CDATA[Shockingly, companies don&#8217;t just cede control of their roadmaps to me so I&#8217;m left to just blog about what I would do if I did wrest control of them. To continue a recent topic series, I&#8217;m tackling Mozilla. Mozilla appears to be downplaying Firefox as the only thing it does and is emphasizing its mission [...]]]></description>
				<content:encoded><![CDATA[<p>Shockingly, companies don&#8217;t just cede control of their roadmaps to me so I&#8217;m left to just blog about what I would do if I did wrest control of them. To continue a recent topic series, I&#8217;m tackling Mozilla.<br />
<br />
Mozilla appears to be downplaying Firefox as the <i>only</i> thing it does and is emphasizing its mission of creating a Internet that is open. Firefox is currently its largest tool in order to achieve that mission, and likely will be for some time, but I suspect we will continue to see play more of a supporting role and/or means-of-financing other work.<br />
<br />
In the place of Firefox the Web Maker meme will become more broadly spread. If I was creating schemes for 2012 and beyond I would look to badges to drive this. In fact, I would make them central. For every project that Mozilla undertakes, the question of integration into the badges idea should be asked.<br />
<br />
What spurred this idea was the weekly Community Call yesterday. About 1/3 of it was a discussion around <i>Drone Journalism</i> which is the use of unmanned drones (mini helicopters, etc.) to capture footage for film or citizen journalism. This is kinda interesting for a make-your-own-drone perspective and from being able to capture/disseminate information when it is being controlled by &#8216;official&#8217; sources, but I&#8217;m not seeing how it fits into the Mozilla mission. Sure, it could be a consumer of Popcorn.js, but that&#8217;s really about the limits I can see in terms of Open Web and Web Makers.<br />
<br />
Let&#8217;s go with the notion that the linkage to Popcorn.js is the correct one. If so then there could be a badge series for Drone Journalism:</p>
<ul>
<li>Created a Popcorn video using a commercial drone</li>
<li>Created a Popcorn video using a home-made drone</li>
<li>Report on a Community event using a drone</li>
</ul>
<p>
Or something similar. Certainly something like the MoJo (Mozilla Journalism) stuff could have a badge sequence, School Of Webcraft already has one, the HTML5 evangelists inside Mozilla also have something I think. Last week Mitchell Baker (Chief Lizard Wrangler at Mozilla) said in a talk at the Toronto offices that Mozilla is not going to be political organization, but even some of its grassroots Open Web/Privacy stuff could have a badge system; Defender of the Internets! badge anyone?<br />
<br />
The ideas of Open Web and Web Makers are powerful, and absolutely is where I would point Mozilla towards (not as if Google or someone else is going to do it; &#8216;evil&#8217; is relative it seems). But without a framework to hang initiatives around they risk being just a collection of independent projects under a large umbrella. Badges, which is also part of the Web Maker idea, could provide an ideal structure to connect all these things.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/lxbE2wSXC1g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1721</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1721</feedburner:origLink></item>
		<item>
		<title>Interesting things happen when you visualize stuff</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/dxipz1afxy0/</link>
		<comments>http://adam.goucher.ca/?p=1718#comments</comments>
		<pubDate>Sun, 04 Dec 2011 15:12:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1718</guid>
		<description><![CDATA[David Christiansen runs TroopTrack and posted a bit of an analysis of your conversion rates; powered largely by a couple graphs. Its an interesting analysis, but what is really good from a startup perspective is the findings in the Correlation or causation? section. Customers who have a good experience with a support ticket during their [...]]]></description>
				<content:encoded><![CDATA[<p>David Christiansen runs <a href="http://trooptrack.com">TroopTrack</a> and posted a bit of <a href="http://www.techdarkside.com/puzzling-about-conversion-rates">an analysis of your conversion rates</a>; powered largely by a couple graphs. Its an interesting analysis, but what is really good from a startup perspective is the findings in the <i>Correlation or causation?</i> section.<br />
</p>
<ul>
<li><i>Customers who have a good experience with a support ticket during their trial have a higher likelihood of purchasing a subscription</i></li>
<li><i>Customers who see an improvement made during their trial period have a higher likelihood of purchasing a subscription</i></li>
</ul>
<p>
That is an important finding, and one that in my gut I think is more true for more products than people give credit.<br />
<br />
When I was at HP we pretty much knew who was considering buying our product because the Support group had contract with them. Right now I have a similar interaction with people who start to use <a href="http://element34.ca/products/saunter">Saunter</a> &#8212; though that is because I need to update the docs.<br />
<br />
SaaS products are easy to capture this information and interaction; an opensource product that you sell service and support around is much harder. And a problem I need to figure out at some point in the near future.<br />
<br />
Disclaimer: David is a friend and I want TroopTrack to succeed &#8212; even if it is so he can add Canadian stuff to it.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/dxipz1afxy0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1718</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1718</feedburner:origLink></item>
		<item>
		<title>Scouts, Badges and Mozilla</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/dXPjkZvfqog/</link>
		<comments>http://adam.goucher.ca/?p=1712#comments</comments>
		<pubDate>Fri, 02 Dec 2011 21:01:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1712</guid>
		<description><![CDATA[And so I continue to think aloud Badges and Web Makers. If you look at the badges at p2pu which is pilot project for the open badges stuff at Mozilla one thing stands out. They&#8217;re just text, and frankly, kinda boring. This might be enough for people who are used to static badges like those [...]]]></description>
				<content:encoded><![CDATA[<p>And so I continue to think aloud Badges and Web Makers.<br />
<br />
If you look at the <a href="http://badges.p2pu.org/badges/">badges at p2pu</a> which is pilot project for the <a href="http://openbadges.org/">open badges</a> stuff at Mozilla one thing stands out. They&#8217;re just text, and frankly, kinda boring. This might be enough for people who are used to static badges like those on <a href="http://stackoverflow.com/badges">StackOverflow</a> but I think it completely fails to capture the attention of the next generation of Web Makers.<br />
<br />
I have no information to back up that claim other than what I observe around &#8216;real&#8217; badges at Cubs with the kids looking at them, guessing what they are, etc.<br />
<br />
<img src="http://blogs.versionone.com/agile_management/wp-content/uploads/2011/11/img017-297x300.jpg" /><br />
Two years ago, <a href="http://www.gdinwiddie.com/">George Dinwiddle</a> awarded me an &#8216;Agile Merit Badge&#8217; at the Agile Conference. While cleaning up the basement from a partial flood I found it again and it clicked a few more things in place in my brain.<br />
<br />
First, the they need to be image driven, not text based. Not the least bit because the world does not communicate in only one language. (Hurray for the arrogance of the English speaking world!) Secondly, through the use of <a href="http://en.wikipedia.org/wiki/Steganography">steganography</a> the information about issuer, what was done to earn, repudiation authority (thinking something like <a href="http://en.wikipedia.org/wiki/Ocsp">OCSP</a> &#8212; OBSP?) and such could be embedded in it.<br />
<br />
But more importantly, an image can be turned into something tangible; like a <i>real</i> badge. Something that could be stitched onto a physical backback or <a href="http://www.e-patchesandcrests.com/pages/my_campfire_blanket.php">blanket</a>.<br />
<br />
Of course this badge thinking also lines up well with one of Mozilla&#8217;s goals around the Web Maker stuff I think. How do we get the next generation to learn about how the Internet is built so they can make it their own? Well, there is a global organization for youth that already has an established tradition of badges; Scouting.<br />
<br />
One thing I would like to see <a href="http://mozillafoundation.org">MoFo</a> do is work with Scouting to create a &#8216;World Wide Web&#8217; badge. Here is the requirements for the closest thing that Scouts Canada has to this; the <a href="http://wiki.scouts.ca/en/Computer_Badge">Computer Badge</a>. It is <i>very</i> dated and desperately needs a refresh. Or better still, replacement by something else that is relevant to the kids in the program now and in the next decade or so.<br />
<br />
I realize the Internet is more than just the web, but let&#8217;s face it, that is the mechanism for 90% of people&#8217;s interaction with it.<br />
<br />
Off the top of my head, the requirements could be something like</p>
<ol>
<li>Explain what the following HTML elements do: &#8230;</li>
<li>Explain the role of HTML, CSS, JS</li>
<li>What are the dangers around Phishing, Pharming, Spam?</li>
<li>Something about privacy</li>
<li>Something about online bullying</li>
<li>Create a simple homepage for yourself or your pack</li>
</ol>
<p>
That would give the basics of both Web Safety and Web Makerism to kids earning the badge. (It would also be an easy badge to complete in an evening at the local library or similar with lots of computers and <a href="http://hackasaurus.org/en-US/goggles/">X-Ray Goggles</a>).<br />
<br />
Badges for Scouts and Venturers could require higher levels of sophistication; CSS, Canvas, Video, etc.<br />
<br />
There is actually precedent for organizations working with Scouts (well Canada at least) with the new Scuba badge (<a href="http://www.scouts.ca/ca/padi-scouts-requirements">Scouts</a>, <a href="http://www.scouts.ca/ca/padi-venturer-requirements">Venturers</a>) that was done in conjunction with PADI. That organization for that badge makes perfect sense. I think Mozilla makes perfect sense for something about the Web. And how awesome would a Mozilla head badge be?!?!<br />
<br />
They know how to contact me; in the meanwhile I need to figure out who to contact in Scouts Canada about this. This idea could have legs.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/dXPjkZvfqog" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1712</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1712</feedburner:origLink></item>
		<item>
		<title>Tags and Badges</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/7CGLKnwh6dE/</link>
		<comments>http://adam.goucher.ca/?p=1707#comments</comments>
		<pubDate>Thu, 01 Dec 2011 23:43:51 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1707</guid>
		<description><![CDATA[Yesterday Scott Barber tweeted a link to The Certification Experience to which I responded (without reading it; and it is a good read) i&#8217;m now thinking something like the lovechild or open badges and entaggle is the route forward If you are not aware of it yes, Entaggle is site for &#8216;tagging&#8217; people as a [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday Scott Barber tweeted a link to <a href="http://www.fcgarage.com/2011/02/the-certification-experiment.html">The Certification Experience</a> to which I responded (without reading it; and it is a good read)<br />
<br />
<i>i&#8217;m now thinking something like the lovechild or <a href="http://openbadges.org">open badges</a> and <a href="http://entaggle.com">entaggle</a> is the route forward</i><br />
<br />
If you are not aware of it yes, Entaggle is site for &#8216;tagging&#8217; people as a form of peer credentialing created by Elisabeth Hendrickson. In a follow-up to her I flushed out what I think the differences are between &#8216;tags&#8217; and &#8216;badges&#8217; which she allowed me to make public.<br />
<br />
<i>So here is my thinking of tags vs. badges. Tags themselves seem to be more about the relationships between the tagger and the taggee (&#8216;someone I know in person&#8217;, &#8216;someone I look up to&#8217;) whereas a badge is something that is earned and/or has requirements of demonstration of skills. Badges also have a more formal issuing authority and repudiation scheme (the tag &#8216;someone I look up to&#8217; was removed from taggee by tagger, how is that made visible?).<br />
<br />
In the Mozilla context of badges, there could be an HTML badge that you get by live-editing an existing page to submit a form to some &#8216;secret&#8217; place that registered that you have &#8216;completed&#8217; the badge (though X-Ray Goggles or Firebug or whatever).<br />
<br />
(I also have badges on the brain from Cubs and have been looking at <a href="http://wiki.scouts.ca/en/Red_Star">Red Star</a> type pages the for the last week plotting the second half of the year.)<br />
<br />
What would an Agile Tester badge look like?</p>
<ul>
<li>Would need an Issuing Authority (Entaggle?)</li>
<li>Likely have a list of Tags that that included both mandatory and optional ones (Exploratory Tester, Lives in the spirit of the Agile are mandatory, Performance Tester is optional)</li>
<li>When the requirements are &#8216;met&#8217; they get the badge added to their backpack</li>
<li>Repudiation happens automatically when the requisite tags are removed from the person</li>
</ul>
<p>
I think too the Mozilla badge vision has the notion of levelling so could have Bronze/Silver/Gold which require a greater set of tags to earn (and keep).</i><br />
<br />
Badges from a &#8216;game&#8217; perspective is a pretty easy way to motivate &#8216;kids&#8217; but there is nothing inherently motivating (at least for me) in trying to earn a &#8216;tag&#8217;. A badge, maybe. Especially if the badge gets some clout behind it. (Though yes, a tag could and should also get clout behind it as well.)<br />
<br />
Badges could also, in the Entaggle context, become an aggregate of tags distributed by a number of people. Hmmm. More feature requests!</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/7CGLKnwh6dE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1707</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1707</feedburner:origLink></item>
		<item>
		<title>Web Makers and the Open Web</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/POfU4mJ4UOw/</link>
		<comments>http://adam.goucher.ca/?p=1694#comments</comments>
		<pubDate>Wed, 30 Nov 2011 14:50:30 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1694</guid>
		<description><![CDATA[I follow Mark Surman on Twitter and it was there that I learned about his Web Maker ideas for MoFo. He has posted a 30 minute slidecast of the plans for 2012 on his blog; go watch it. I&#8217;ll wait. I haven&#8217;t had something &#8216;click&#8217; this strongly in a while and its only just occurred [...]]]></description>
				<content:encoded><![CDATA[<p>I follow <a href="http://twitter.com/#!/msurman">Mark Surman</a> on Twitter and it was there that I learned about his Web Maker ideas for MoFo. He has posted a 30 minute slidecast of the plans for 2012 <a href="http://commonspace.wordpress.com/2011/11/22/mozilla-2012-plan/">on his blog</a>; go watch it. I&#8217;ll wait.<br />
<br />
I haven&#8217;t had something &#8216;click&#8217; this strongly in a while and its only just occurred to me why &#8212; if the community of Web Makers is wide and broad enough, the openness of the web is more assured than if only the &#8216;geeks&#8217; of the know how to run the web.<br />
<br />
If everyone understands the basics of markup (<a href="http://hackasaurus.org/en-US/goggles/">X-Ray Goggles</a>) and can make interactive sites without the use of expensive, proprietary frameworks (<a href="http://mozillapopcorn.org">Popcorn.js</a>) then things like citizen journalism become possible and the effectiveness of [stupid, inane] things like national firewalls and clueless politicians (<a href="http://www.mozilla.org/sopa/">Mozilla vs. SOPA</a>) is greatly reduced.<br />
I&#8217;ve been on the side of &#8216;open&#8217; for years. I&#8217;m just as the right age where Linux and Open Source became viable alternatives when I was most capable of learning them and so have very strong Open Source Anarchist tendencies (I won&#8217;t write for places that have registration or paywalls for instance and will not be taking any presenting gigs at conferences that do not make the proceedings freely available as well). Information really <i>does</i> want to be free &#8212; contrary to &#8216;well intentioned&#8217; governments or corporate entities.<br />
<br />
But I think the <a href="http://openbadges.org">badges</a> is where things have the greatest potential though. [As much as I dislike the word 'gamification',] I suspect badges are a powerful meme for encouraging the generation of Makers; those who are 8 &#8211; 15 years old now. Not being a Gamer I wasn&#8217;t sure on the idea until &#8216;badge night&#8217; at Cubs the other week. (I&#8217;m now the Akela-equivilant for our Pack.) Badges, or more specifically receiving badges, is a huge motivator. Badges are a self-perpetuating cycle. Once one gets a particular badge then others are motivated to also get that badge. And there is often one (or two) kids that self-motivates to find new badges they can get which keeps the cycle intact.<br />
<br />
The Badge backpack also has the potential to be a type of &#8216;team jacket&#8217;. At least around here, when a kid makes it onto a Rep sports team the parents are told of the registration and tournament fees. And once they pick their jaw off the floor they are also told about the other &#8216;optional&#8217; fees &#8212; like team jacket and bag. Though these are &#8216;optional&#8217; they are really &#8216;mandatory&#8217; as every kid wants to go to school in the jacket that announces them as a Chief (baseball), Warrior (Lacrosse), Iroquois (Soccer) or Wolf (Hockey). If the backpack can be embedded into their &#8216;place&#8217; on the web easily (through the skills learned with X-Ray Googles) and isn&#8217;t forgeable (though all credit to the kids who eventually figure out how to) then it can be a competition to have the most complete backpack.<br />
<br />
The Web succeeded <i>because</i> it was open. If it is to remain open we need the next generation to be Web Makers just as the current generation of leadership were Infrastructure Makers.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/POfU4mJ4UOw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1694</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1694</feedburner:origLink></item>
		<item>
		<title>Continuous Delivery is landing at CodeMash</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/iePvp_JuwgY/</link>
		<comments>http://adam.goucher.ca/?p=1690#comments</comments>
		<pubDate>Thu, 15 Sep 2011 13:35:20 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1690</guid>
		<description><![CDATA[The speaker submission window is now open for the next CodeMash. For those under a rock, CodeMash is a conference in the middle of January, in Ohio &#8212; at a waterpark. Yes. A waterpark. No worries though, we&#8217;re in the indoor part. Anyways, one of the tracks for this year&#8217;s conference is Continuous Delivery &#8212; [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://codemash.org/Speakers">speaker submission window</a> is now open for the next CodeMash. For those under a rock, CodeMash is a conference in the middle of January, in Ohio &#8212; at a <a href="http://www.kalahariresorts.com/oh/">waterpark</a>. Yes. A waterpark. No worries though, we&#8217;re in the indoor part.<br />
<br />
Anyways, one of the tracks for this year&#8217;s conference is <i>Continuous Delivery</i> &#8212; and I&#8217;m the track judge for it.<br />
<br />
That of course means that for the rest of September I&#8217;ll be periodically pestering people to <a href="http://codemash.org/Speakers">submit talks</a>. I&#8217;m hoping for a track that covers the whole spectrum of topics that is Continuous Delivery. I had originally floated the idea of something like<br />
</p>
<ul>
<li>So you want to be a Git ninja</li>
<li>Pulling the strings of server with Puppet</li>
<li>Yes, your SQL is code too (dbdeploy)</li>
<li>Everyone&#8217;s favourite butler, Jenkins</li>
<li>Functional Automation [with Selenium] for fun and profit</li>
<li>Deployment and Immunization</li>
</ul>
<p>
but I have I think double the slots. So get those talks in now! The session window closes September 30.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/iePvp_JuwgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1690</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1690</feedburner:origLink></item>
		<item>
		<title>The Business Model</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/_DqkgaoqM40/</link>
		<comments>http://adam.goucher.ca/?p=1685#comments</comments>
		<pubDate>Wed, 03 Aug 2011 19:37:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1685</guid>
		<description><![CDATA[I&#8217;ve been &#8216;independent&#8217; since the tail end of 2009 (one week before Christmas in fact) and have solely been doing work-for-hire stuff between now and then. I don&#8217;t scale to my ambitions, nor to my paranoias so I&#8217;ve been thinking about really figuring out what exactly is my business model, and I think I have [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been &#8216;independent&#8217; since the tail end of 2009 (one week before Christmas in fact) and have solely been doing work-for-hire stuff between now and then. I don&#8217;t scale to my ambitions, nor to my paranoias so I&#8217;ve been thinking about really figuring out what exactly is my business model, and I think I have figured it out.<br />
</p>
<ul>
<li><i>Product</i> &#8211; In my consulting I have seen that more often than not companies are not stuck with Selenium itself, but the framework around it. To that end I have released <a href="http://element34.ca/products/saunter">Saunter</a> which is an &#8216;opinionated test framework&#8217; similar to how RoR is opinionated. (There is more than one way to do things, but really only one easy way.)<br />
<br />
But since I have some Open Source Anarchist thoughts, I&#8217;m giving it away under the Apache 2 license. Which means I&#8217;m going to now be in the Freemium game if I want to keep paying my bills. And which leads us to&#8230;</li>
<li><i>Support</i> &#8211; Let&#8217;s face it. Small teams will just take the code and figure out what they want to make it do. But medium or larger companies enjoy the security blanket of having support. Here I think I will have two options.
<ol>
<li><i>Hourly</i> &#8211; Companies can purchase blocks of my time on [essentially] a retainer basis. These blocks expire, but come with a certain level of service/response</li>
<li><i>Per Incident</i> &#8211; Companies can purchase per incident support tickets</li>
</ol>
</li>
<li><i>Training</i> &#8211; A large part of what I have been doing is training, or likely better stated as coaching. I can help you be more successful rolling out Selenium. This is at &#8216;standard&#8217; training rates.</li>
</ul>
<p>
Dreaming up the model is however the easy part. Actually implementing it. Well, thats a bit more challenging.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/_DqkgaoqM40" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1685</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1685</feedburner:origLink></item>
		<item>
		<title>Two more podcasts on Page Speed</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/O4KO7Vii-rc/</link>
		<comments>http://adam.goucher.ca/?p=1682#comments</comments>
		<pubDate>Thu, 28 Jul 2011 13:38:08 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1682</guid>
		<description><![CDATA[These are a little better than last night&#8217;s. Still not sure that I would spend the coin to go to Velocity though. But I suspect the really good talks are also the ones that would be hard to record. Performance Testing: Putting Cloud Customers Back in the Driver’s Seat Imad Mouline Podcast Video and Slides [...]]]></description>
				<content:encoded><![CDATA[<p>These are a little better than last night&#8217;s. Still not sure that I would spend the coin to go to Velocity though. But I suspect the really good talks are also the ones that would be hard to record.<br />
<br />
<b>Performance Testing: Putting Cloud Customers Back in the Driver’s Seat</b><br />
</p>
<ul>
<li><a href="http://twitter.com/#!/imadmouline">Imad Mouline</a></li>
<li><a href="http://itc.conversationsnetwork.org/shows/detail4595.html">Podcast</a></li>
<li><a href="http://velocityconf.com/velocity2010/public/schedule/detail/15420">Video and Slides from Velocity</a></li>
<li>Do you know where your third party content is hosted?</li>
<li>Domain sharding using EC2 buckets &#8211; since each bucket is its own host. And you pay the same thing.</li>
<li>Is sharding now a performance hindrance in today&#8217;s browser?</li>
<li><i>Raw</i> Load Time vs. <i>Perceived</i> Load Time (above the fold)</li>
<li>Looks like the tools mentioned in the podcast have disappeared with the acquisition of Gomez by Compuware</li>
</ul>
<p></p>
<p><b>Time is Money &#8211; The Measurable Value of Performance by Design</b><br />
</p>
<ul>
<li><a href="http://twitter.com/#!/timmorrow">Tim Morrow</a></li>
<li><a href="http://itc.conversationsnetwork.org/shows/detail4594.html">Podcast</a></li>
<li><a href="http://velocityconf.com/velocity2010/public/schedule/detail/13078">Video and Slides from Velocity</a></li>
<li>People may still not use your site even once you fix your site because they think it will still be slow</li>
<li>There is a tension between features and performance</li>
<li>Don&#8217;t have a dedicated performance team; use people from around the company so the whole organization cares about it</li>
<li>Perception is <i>everything</i></li>
<li><i>Your</i> content is the important content</li>
<li>Progressive rendering</li>
<li>Time to first byte</li>
<li>Javascript no longer loads with the page</li>
<li>&#8220;Based on the time we spend making these changes, we made it back within two months. After that it was just gravy&#8221; &#8212; And that hits the bottom line. <i>This</i> is how you talk to Business about caring about performance.</li>
<li>Do you know where your hotspots are during peak time?</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/O4KO7Vii-rc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1682</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1682</feedburner:origLink></item>
		<item>
		<title>Three Podcasts on Page Speed</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/P_BqdkYO7-o/</link>
		<comments>http://adam.goucher.ca/?p=1676#comments</comments>
		<pubDate>Thu, 28 Jul 2011 03:03:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1676</guid>
		<description><![CDATA[One of the things I inevitably have to deal with at each site I visit is the idea that Selenium scripts are slow. Sure, they are slower than unit tests, but a lot of the perceived slowness is due to all the other stuff the page is trying to load. First, you don&#8217;t need that [...]]]></description>
				<content:encoded><![CDATA[<p>One of the things I inevitably have to deal with at each site I visit is the idea that Selenium scripts are slow. Sure, they are slower than unit tests, but a lot of the perceived slowness is due to all the other stuff the page is trying to load. First, you don&#8217;t need that in the automation environment &#8212; so build into the app a way to turn it off. Second, if you are loading them, the speed <i>must</i> be considered. And at no point should the user&#8217;s experience be impacted.<br />
<br />
Here are some podcasts I had lying around on page load speed that I hoped would be better. But I have notes on them now so a-publishing they will go.<br />
</p>
<h3>Mitigating Advertising Impact on Page Performance</h3>
<p></p>
<ul>
<li><a href="http://www.ismailelshareef.com/">Ismail Elshareef</a></li>
<li><iframe width="560" height="349" src="http://www.youtube.com/embed/z35sK0PTHRk" frameborder="0" allowfullscreen></iframe></li>
<li><a href="http://itc.conversationsnetwork.org/shows/detail4623.html">IT Conversations</a> version of the talk. How I listened to it, but you likely want to watch the video to see the code.</li>
<li><a href="http://technology.edmunds.com/blog/2010/11/how-edmunds-got-in-the-fast-lane.html">Blog post</a> on the Edmunds site on the stuff discussed.</li>
<li>&#8216;We want to have control over our assets&#8230;&#8217;</li>
<li>Wrote their own JS loader, which they are to open source, but I can&#8217;t find it.</li>
<li>Seperate the loading of <i>your</i> page from the loading of the ads/3rd party stuff</li>
<li>Delay loading the ads a long as possible</li>
<li>Work with Business to explain the benefits of late loading. If the customer is engaged in the content they are not going to go away by the time the ad loads.</li>
<li>By delaying the loading of ads, they were able to speed up the entire page load time <i>including the ads</i></li>
<li>Do not mess with ad internals</li>
<li>Solve the engagement problem, you solve the loading problem</li>
<li>Saw their click-through rate increase</li>
</ul>
<p></p>
<h3>Display Ads and Page Performance</h3>
<p></p>
<ul>
<li>Tony Ralph (which was at Yahoo during this talk, but has leapt to Google)</li>
<li><a href="http://itc.conversationsnetwork.org/shows/detail4622.html">Podcast</a></li>
<li><a href="http://velocityconf.com/velocity2010/public/schedule/detail/15583">Video</a></li>
<li>Monitor the speed of your ad networks</li>
<li>And their ads</li>
<li><a href="http://www.iab.net/iab_products_and_industry_services/508676/508858/adload">Ad Load Performance Best Practices</a></li>
<li>The <i>creatives&#8217;</i> primary goal is not performance</li>
<li>Maybe the value of this [slow ad] had value in the context of its displayed page</li>
<li>Do not treat ads an afterthought. Don&#8217;t build pages with the &#8216;this black box is where an ad will go&#8217;.</li>
<li>Give front-end people the tools and guidelines to work with</li>
<li>Publisher guardrails &#8211; quarantine ads</li>
<li>If an ad takes too long (of course you are monitoring them), backfill the content with a static local one</li>
</ul>
<p></p>
<h3>Worldwide Inventory of Last-mile Bandwidths &#038; Network Latencies</h3>
<p></p>
<ul>
<li>Aladdin Nassar</li>
<li><a href="http://itc.conversationsnetwork.org/shows/detail4621.html">Podcast</a></li>
<li><a href="http://velocityconf.com/velocity2010/public/schedule/detail/14075">Video</a></li>
<li>CSI &#8211; Client Side Performance</li>
<li>Onclick handler on every event in the Hotmail site which starts a timer that stops at various events</li>
<li>Once you get the data, you get have to analyze it. Which can be harder than getting the data.</li>
<li>Also inject headers for the backend as well so they can merge the client and server side information for a whole picture of the performance.</li>
<li>There comes a point that adding any more bandwidth in a country does not improve speed</li>
<li>Look for biases in your data.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/P_BqdkYO7-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1676</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1676</feedburner:origLink></item>
		<item>
		<title>Fixing the Android Application Development Culture</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/upWsZKuZBY4/</link>
		<comments>http://adam.goucher.ca/?p=1673#comments</comments>
		<pubDate>Mon, 25 Jul 2011 01:44:57 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1673</guid>
		<description><![CDATA[As a tester and sometimes agile coach-ish I have some pretty strong opinions as to what makes a &#8216;good&#8217; development culture. Respect, communication, and oh, Testing. While not an organization per se, I think the Android culture is terribly broken. At least from the perspective of its answer to testing. So here is what I [...]]]></description>
				<content:encoded><![CDATA[<p>As a tester and sometimes agile coach-ish I have some pretty strong opinions as to what makes a &#8216;good&#8217; development culture. Respect, communication, and oh, Testing. While not an organization per se, I think the Android culture is terribly broken. At least from the perspective of its answer to testing. So here is what <i>I</i> would do were I tasked with improving the culture of Android Application development.<br />
<br />
First, it <i>has</i> to come from Google. And not just from someone at Google, but someone with the full weight and blessing of the Android division behind it. I&#8217;m sure Google has evangelists; an Android Testing one would be fantastic.<br />
<br />
Typically, evangelists spend a lot of time on airplanes going to conferences. If you look at pretty much any Mobile/Android focused conference there is, if you are lucky, one session on testing. And if there is, their descriptions imply that are entirely black-box, manual testing focused. But what about automation? What about below-the-covers? What about, gasp, TDD? Mobile apps are complex; testing them is too. Let&#8217;s not pretend that just futzing with them in a couple emulators is anything close to be sufficient.<br />
<br />
Speaking of TDD, the platform seems designed to make it really hard to do. And what tidbits of information that you can sniff out do not come from inside Google. I would love to see TDD become part of all the tutorials.<br />
<br />
To Google&#8217;s credit, the component specific testing pages are decent, but it would be nice if the examples that come with the ADK actually had examples of the things that that they say you should test. And while on the specific topic of documentation, if it is suggested in the docs that you should use IntentService more often than Service it would be nice to have some code that does it. (So its not just test specific docs that have issue.)<br />
<br />
Actually, I would take the documentation effort even further. Clearly Google wouldn&#8217;t want to, or be able to, approve books on Android app development before publication, but they could reach out to publishers and say something like &#8216;we are trying to address the lack of testing in our culture and would appreciate it if you could ask your authors to include it in their manuscripts as well&#8217;. I suspect a lot of the test infection in the Ruby On Rails community is largely because of the test focus of most of the books that are available.<br />
<br />
Sites like StackOverflow will also Google where their testing docs lack. So far every question I have come up with has also been there. And usually without an answer that didn&#8217;t seem quite right.<br />
<br />
Its a bit of a rant after doing some Android development, but I really do believe that within a year Google could turn around the culture from one focused on just what the user interacts with to a mature, TDD-based one similar to the Rails one. (Feels odd calling Rails mature&#8230;) The thing that is going to decide [this round of] the phone platform wars is the applications they support. Improving the quality of those apps would be an excellent salvo in that battle.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/upWsZKuZBY4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1673</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1673</feedburner:origLink></item>
		<item>
		<title>The TDD loop for Android Content Providers</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/cb-im-pQM3s/</link>
		<comments>http://adam.goucher.ca/?p=1663#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:49:06 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1663</guid>
		<description><![CDATA[All Android applications are comprised of four major components: Activities, Content Providers, Services and Broadcast Receivers. What little testing and test automation that happens in this community is focused primarily on the Activity layer &#8212; if at all. A stroll down to your local tech bookstore all but confirms this fact. But what if you [...]]]></description>
				<content:encoded><![CDATA[<p>All Android applications are comprised of four major components: Activities, Content Providers, Services and Broadcast Receivers. What little testing and test automation that happens in this community is focused primarily on the Activity layer &#8212; if at all. A stroll down to your local tech bookstore all but confirms this fact.<br />
<br />
But what if you wanted to have a suite of automated checks for something other than Activities? Or, shock!, you want to do something akin to TDD? Well then you would be into the great unknown. And is where I found myself even though I dislike Java, loathe Eclipse and am just learning Android. In this case things worked in my favour since I keep falling off the TDD wagon as I &#8216;know&#8217; how to do something in Python or Ruby but with Java I&#8217;m using it as a learning crutch (stick?).<br />
<br />
First, we have the test. Or at least what it ended up at as I understood the problem better. Kinda a Red/Refactor, Red/Refactor cycle.<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testDatabaseCreated<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">Cursor</span> cursor<span style="color: #339933;">;</span>
    Uri url <span style="color: #339933;">=</span> Credentials.<span style="color: #006633;">CredentialsColumns</span>.<span style="color: #006633;">CONTENT_URI</span><span style="color: #339933;">;</span>
    cursor <span style="color: #339933;">=</span> mResolver.<span style="color: #006633;">query</span><span style="color: #009900;">&#40;</span>url, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    assertEquals<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span>, cursor.<span style="color: #006633;">getColumnCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    cursor.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
Essentially all this does is make sure that the [test] database was created and that it has 3 columns &#8212; they could be the wrong three, but at least there is three.<br />
<br />
Of course along the way I had to make that file compile by fixing the constructor and understanding the not-really-documented-because-no-one-test-android-apps <a href="http://developer.android.com/reference/android/test/mock/MockContentResolver.html">MockContentResolver</a>. This class will make a backup of your application&#8217;s database and restore it when the run is done. Not quite Mocking, but close enough for what is necessary here.<br />
<br />
Now to make it Green. Which wasn&#8217;t as straight forward as I had hoped. Showing my ignorance, I had thought there is &#8216;supposed&#8217; to a 1:1 mapping of test classes to code classes. Not in the Android world there isn&#8217;t. In this case it is a 1:3 mapping which makes me think I&#8217;m not quite doing it &#8216;by the book&#8217; but there is no book on doing TDD for Android. (Well, there is <a href="http://www.packtpub.com/android-application-testing-guide/book">Android Application Testing Guide</a> which is ok, but there is a definite market need here still.)<br />
<br />
The first class I needed to make was the actual Content Provider class, which in typical Java style was a &#8216;right click and let the IDE to magic for you&#8217;. You end up with a class with six overridden methods. But naturally they don&#8217;t do anything.<br />
<br />
Oh. And have I mentioned I decided to throw the additional twist of having my Content Provider interface with the build-in SQLite database?<br />
<br />
Android is I guess what you would call an Event Driven environment where you override specific events to get your desired behaviours. So in my Content Provider I needed to override the onCreate method first.<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">@Override
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    dbHelper <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DatabaseHelper<span style="color: #009900;">&#40;</span>getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
Which creates our DAO for this particular Content Provider. DatabaseHelper is actually an inner class of the Content Provider.<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DatabaseHelper <span style="color: #000000; font-weight: bold;">extends</span> SQLiteOpenHelper <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> DatabaseHelper<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       <span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context, DATABASE_NAME, <span style="color: #000066; font-weight: bold;">null</span>, DATABASE_VERSION<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>SQLiteDatabase db<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        db.<span style="color: #006633;">execSQL</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CREATE TABLE &quot;</span> <span style="color: #339933;">+</span> CREDENTIALS_TABLE_NAME <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; (&quot;</span> <span style="color: #339933;">+</span> CredentialsColumns.<span style="color: #006633;">CREDENTIAL_ID</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; INTEGER PRIMARY KEY AUTOINCREMENT,&quot;</span>
                                 <span style="color: #339933;">+</span> CredentialsColumns.<span style="color: #006633;">USERNAME</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; VARCHAR(255),&quot;</span>
                                 <span style="color: #339933;">+</span> CredentialsColumns.<span style="color: #006633;">PASSWORD</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; VARCHAR(255)&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;);&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onUpgrade<span style="color: #009900;">&#40;</span>SQLiteDatabase arg0, <span style="color: #000066; font-weight: bold;">int</span> arg1, <span style="color: #000066; font-weight: bold;">int</span> arg2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
As you can see, I haven&#8217;t worried about doing the onUpgrade scenario yet. (And that the new class wizard names arguments horribly.)<br />
<br />
I had tried originally to create the DatabaseHelper class as a separate class so it cold be tested in isolation, but there is no information anywhere that I could find that describes how to do it. So I put it as an inner class as the examples I could understand all had it there.<br />
<br />
The third class that I needed to create just so my simple test could pass is the one that represented the actual table. It is pretty boring, except for the CONTENT_URI line which is important.<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">class</span> Credentials <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Credentials<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">class</span> CredentialsColumns <span style="color: #000000; font-weight: bold;">implements</span> BaseColumns <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">private</span> CredentialsColumns<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> Uri CONTENT_URI <span style="color: #339933;">=</span> Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;content://&quot;</span> <span style="color: #339933;">+</span> SauceLabsCredentialsProvider.<span style="color: #006633;">AUTHORITY</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;/credentials&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> CREDENTIAL_ID <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;_id&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> USERNAME <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;username&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> PASSWORD <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;password&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
Access to/from a Content Provider is done through a URI. (If you are familiar with RoR RESTful URL&#8217;s you&#8217;ve got the concept.) In this case the CONTENT_URI is specific to a credentials table that the Content Provider has the &#8216;Authority&#8217; to access. To be compliant with the spirit of Android development, you don&#8217;t do raw SQL against the database, but instead do queries against a URI.<br />
<br />
This is enough code to create a database on the emulator/device and to allow my test to create the mocked one.<br />
<br />
Or would have been if I had remembered to register it in the manifest and then didn&#8217;t totally screw up my environment with a package rename gone hopelessly wrong. (If you get a deployment claiming the Content Provider is already installed, check that your paths in terms of code match your manifest.)<br />
<br />
Once I solved that I still had a null pointer on the query itself &#8212; because I hadn&#8217;t implemented it yet. (It was late and my brain was shutting off&#8230;)<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">@Override
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Cursor</span> query<span style="color: #009900;">&#40;</span>Uri uri, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> projection, <span style="color: #003399;">String</span> selection, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> selectionArgs, <span style="color: #003399;">String</span> sortOrder<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    SQLiteQueryBuilder qb <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SQLiteQueryBuilder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    qb.<span style="color: #006633;">setTables</span><span style="color: #009900;">&#40;</span>CREDENTIALS_TABLE_NAME<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    SQLiteDatabase db <span style="color: #339933;">=</span> dbHelper.<span style="color: #006633;">getReadableDatabase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399;">Cursor</span> c <span style="color: #339933;">=</span> qb.<span style="color: #006633;">query</span><span style="color: #009900;">&#40;</span>db, projection, selection, selectionArgs, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span>, sortOrder<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> c<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
And then I was green.<br />
<br />
Now what I have facing me is<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testInsertCredentials<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testQueryCredentials<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> testDeleteCredentials<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>
which will force me to flesh out more of the overridden methods. Only when I have those all green will I actually wire it up to an Activity. So it is possible to do something like TDD for Android Content Providers &#8212; its just not straight forward nor documented well. Or at all.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/cb-im-pQM3s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1663</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1663</feedburner:origLink></item>
		<item>
		<title>How Not To Present At A Meetup</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/aM9kA0n171w/</link>
		<comments>http://adam.goucher.ca/?p=1658#comments</comments>
		<pubDate>Tue, 28 Jun 2011 12:38:29 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1658</guid>
		<description><![CDATA[I was at a meetup last night for a technology I am just starting to wrap my brain around. And while I didn&#8217;t learn anything about the platform I don&#8217;t think I did crystallize some thoughts around how not to present at a meetup. Something I like to think I know something about since I [...]]]></description>
				<content:encoded><![CDATA[<p>I was at a meetup last night for a technology I am just starting to wrap my brain around. And while I didn&#8217;t learn anything about the platform I don&#8217;t think I did crystallize some thoughts around how <i>not</i> to present at a meetup. Something I like to think I know something about since I have been attending and/or presenting at them for at least 15 years.<br />
</p>
<ul>
<li>A meetup is not a customer sales meeting. It may be awesome that you have lots of cool companies as customers &#8212; but we don&#8217;t care</li>
<li>If the tech is cool, show off the tech! The front of a room of 15 geeks is not the main stage at Demo</li>
<li>It is fine to refer to a crib sheet &#8212; but don&#8217;t be constantly referring to it and switching slides because your notes say you are on the wrong one</li>
<li>Have meetup appropriate slides</li>
<li>If it isn&#8217;t your code, <i>don&#8217;t show it</i>. Do not say &#8216;I had one of our techies whip this up&#8217;</li>
<li>If you show code, <i>don&#8217;t show it in Microsoft Word</i>. Oh, yes. I am serious&#8230;</li>
<li>You may be smart, and know some other smart people, but we don&#8217;t care</li>
<li>If you are give 60 or 90 minutes, then that is how long you session should be. Not 27 minutes.</li>
<li>Speak to your actual audience, not from your script. Saying &#8216;&#8230;while emailing your husband&#8217; to 15 men seemed a bit odd. Perhaps the speaker was getting into the spirit of Pride week.</li>
</ul>
<p>
I&#8217;ll give this group a couple more shots before writing it off to see if last night was anomaly. But forewarned, if I&#8217;m in the audience, this is the criteria I&#8217;m measuring you against. </p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/aM9kA0n171w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1658</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1658</feedburner:origLink></item>
		<item>
		<title>A Facebook application checklist</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/z0jaIC4L-IU/</link>
		<comments>http://adam.goucher.ca/?p=1647#comments</comments>
		<pubDate>Tue, 08 Mar 2011 21:48:43 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1647</guid>
		<description><![CDATA[I have only ever casually tested a Facebook app (which now appears offline), but were I to, I think use a checklist that looks something like this to guide my thoughts. Sound, if present, can be disabled &#8211; One Mahjong game I play doesn&#8217;t have this option and is really annoying (and if it wasn&#8217;t [...]]]></description>
				<content:encoded><![CDATA[<p>I have only ever casually tested a Facebook app (which now appears offline), but were I to, I think use <a href="http://adam.goucher.ca/?p=1514">a checklist</a> that looks something like this to guide my thoughts.</p>
<ul>
<li><i>Sound, if present, can be disabled</i> &#8211; One Mahjong game I play doesn&#8217;t have this option and is <i>really</i> annoying (and if it wasn&#8217;t for my wife having a score 1500 points more than me I wouldn&#8217;t play it at all).</li>
<li><i>No [obvious] algorithm problem</i> &#8211; Another Mahjong game I have played in the past will stack the tiles sometimes in a way that it is impossible to complete the level</li>
<li><i>Spelling things correctly!</i></li>
<li><i>Good use of the Facebook API?</i></li>
<li><i>Cool use of the Facebook API?</i> &#8211; My locale on Facebook is Pirate right now&#8230;</li>
<li><i>Non-scumbag use of the Facebook API?</i> &#8211; Things like posting to my wall without prompting me each time count as scumbag moves.</li>
<li><i>Duration of activity</i> &#8211; The apps I go back to most often have a timeboxed activity length. And that timebox is small; one or two minutes tops</li>
<li><i>[General] Re-playability </i>- Is there ever a reason for me to come back?</li>
<li><i>[Daily] Re-playability</i> &#8211; Is there something to entice me to come back tomorrow? And the next day? And the day after?</li>
<li><i>[Session] Re-playability</i> &#8211; Can I sit here for 3 hours playing with the app? Not that I&#8217;ve lost entire days on Battle Tetris&#8230; No, certainly not.</li>
<li><i>Don&#8217;t be a Ponzi scheme</i> &#8211; Some apps I&#8217;ve seen unlock certain behaviour only when you spam x number of friends with invites and/or they use the app. As soon as I hit that ponzi-wall, I&#8217;m out of there.</li>
<li><i>Security</i> &#8211; Is communication to the host server encrypted? I have a plugin for Firefox that lets me post any score I want back to Bejeweled Blitz&#8230;</li>
</ul>
<p>
No doubt this grossly simplifies things, but I suspect it could generate a lot of testing ideas. Which is exactly what a good checklist does.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/z0jaIC4L-IU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1647</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1647</feedburner:origLink></item>
		<item>
		<title>Jedis and Testing</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/-jH8kVjEhKU/</link>
		<comments>http://adam.goucher.ca/?p=1643#comments</comments>
		<pubDate>Tue, 01 Mar 2011 16:59:19 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1643</guid>
		<description><![CDATA[One of the part of James&#8217; recent post that people have latched on to is this sentence. Context-driven testers strive to become the Jedi knights of testing. So I wouldn&#8217;t call myself a hard-core Star Wars geek, but I do know a significant amount about the Star Wars Universe. (I lived in Grand Cayman during [...]]]></description>
				<content:encoded><![CDATA[<p>One of the part of James&#8217; <a href="http://www.satisfice.com/blog/archives/565">recent post</a> that people have latched on to is this sentence.<br />
<br />
<i>Context-driven testers strive to become the Jedi knights of testing.</i><br />
<br />
So I wouldn&#8217;t call myself a hard-core Star Wars geek, but I do know a significant amount about the Star Wars Universe. (I lived in Grand Cayman during kindergarten and grade one and we had a bootleg vhs of the first movie so I must have seen it a couple hundred times by the time I was 7.)<br />
<br />
Now, I&#8217;m <a href="http://adam.goucher.ca/?p=153">all for Star Wars metaphors</a> but I think think the Jedi one is dangerous from a geek perspective.<br />
<br />
See, the Jedi started out as a noble but then became obsessed with maintaining their own power base, fractious and increasingly irrelevant. And then they were wiped out by forces they denied existed until it was too late.<br />
<br />
But it gets scarier if you dig a little further beyond the movies and into <a href="http://www.starwars.com/databank/organization/thejediorder/">official</a> (and <a href="http://starwars.wikia.com/wiki/Jedi">unofficial</a> sources).<br />
</p>
<ul>
<li><i>To become a Jedi requires the deepest commitment and most serious mind. It is not a venture to be undertaken lightly. As such, Jedi instruction is rigidly structured and codified to enforce discipline and hinder transgression.</i> &#8211; Right; discipline and seriousness to the craft is important. Don&#8217;t step out of bounds though? That&#8217;s kinda Factory School in its thinking.</li>
<li><i>While the Jedi undoubtedly saved many lives through their duties, many disenchanted citizens saw only their failures.</i></li>
<li><i>The way of the Jedi had become the way of wisdom and patience, backed by swift and decisive action when necessary. However, the Jedi Council sometimes showed what appeared to be a lack of decisiveness, such as during the Mandalorian Wars, preferring to work with events and patterns over the long term. Their inaction spurred Revan to fight back, and eventually led to the Jedi Civil War. To the rest of the galaxy, the line between Jedi and Sith became blurred during the conflict, and both sides were blamed for the destruction wrought on worlds such as Katarr, Telos IV, and Dantooine.</i> &#8211; civil war and splintered factions. That <i>never</i> happens in the testing world.</li>
<li><i>Uncomfortable emotions such as hate, anger, and fear were thought to be destructive and lead to the dark side, so such things were banned from Jedi practice.</i> &#8211; emotions are essential for testing.</li>
<li>Etcetera</li>
</ul>
<p>
However there is hope to to the use of the Jedi as a goal to be striven for. And that lies in the <a href="http://starwars.wikia.com/wiki/Gray_Jedi">Gray Jedi</a>.<br />
<br />
<i>The term Gray Jedi, or Gray, had two meanings. First, it was used by Jedi and Sith to describe Force-users who walked the line between the light and dark sides of the Force without surrendering to the dark side, and second, it described Jedi who distanced themselves from the Jedi High Council and operated outside the strictures of the Jedi Code. However, those who were considered to be true Gray Jedi met both qualifications and did not belong to any particular Force tradition.</i><br />
<br />
This, to me, is exactly what one should be aiming to be &#8212; sticking with the metaphor that is. One can use the technique that is appropriate at the time for the task, relies on their own moral and ethical compass. Here is another blurb.<br />
<br />
<i>&#8220;The so-called gray Jedi have been with us since the beginning. Although they do not break with the Jedi orthodoxy concerning the dark side, they bristle when asked to take orders from the Council. Gray Jedi make compromises, cut corners, and hide their actions from scrutiny, all under the assumption that their experience makes them authorities on policy. They are mavericks who are difficult to control, but can be valued members of the Order after they have been persuaded to follow the established hierarchy.&#8221;</i><br />
<br />
Put in the context of the authoritarian Jedi High Council this is often how the Context folks are seen. 92 page IEE829 compliant test plan? Not needed; let me test instead.<br />
<br />
So context driven testers striving to be a Jedi knight is a worthy goal &#8212; as long as you provide context around which kind of Jedi knight you are aiming to be.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/-jH8kVjEhKU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1643</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1643</feedburner:origLink></item>
		<item>
		<title>Choke</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/dAfW_VfJgSk/</link>
		<comments>http://adam.goucher.ca/?p=1639#comments</comments>
		<pubDate>Tue, 15 Feb 2011 01:13:12 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1639</guid>
		<description><![CDATA[I find I can&#8217;t read books on testing or automation anymore; at best I skim them only to really pay attention for a page or two before going back to skimming. (I know I&#8217;m paying attention when I pause the music for those who are curious.) This actually doesn&#8217;t bother me as I have believed [...]]]></description>
				<content:encoded><![CDATA[<p>I find I can&#8217;t <i>read</i> books on testing or automation anymore; at best I skim them only to really pay attention for a page or two before going back to skimming. (I know I&#8217;m paying attention when I pause the music for those who are curious.) This actually doesn&#8217;t bother me as I have believed for a long time that the next leap is not going to come from inside the field but outside. One area of interest is brain science.<br />
<br />
I heard about <a href="http://www.amazon.com/exec/obidos/ASIN/1416596178/adamgoucher-20/">Choke</a> during the initial publication promotion blitz and immediately asked for a review copy (pro tip: always ask before buying). I was drawn to the book initially since I think the only reason (well, aside from regulatory requirement) to create a Test Plan well in advance of the actual testing is to get your thoughts organized before the [inevitable] crunch when you are under stress. Some people thrive under stress, but too often they experience The Choke where you perform less-than-optimally. And of course, in the classic development model this is a bad thing as the testers are the last gate before production. (Agile&#8217;s disdain for the &#8216;crunch&#8217; is I think one of the reasons for its impact on potential quality.)<br />
<br />
<a href="http://sianbeilock.com/">Sian Beilock</a> is a psychology professor at The University of Chicago which to me means she is qualified to write about the brain. Choke has been written in such a way to be able to be consumed by non-neuroscientists which is a good thing; I once read a book on fiberoptics that should have required a post-graduate degree in math to just open up. That doesn&#8217;t mean its a quick or easy read, just that it is possible to read it. The first half of the book explains the different types of chokes and what is triggering it in the brain. And of course provides some mechanisms for combatting chokes &#8212; it is easier to combat when you know is happening to you. The second half brings it back to the business and sports realm.<br />
<br />
A sampling of things I underlined in my copy</p>
<ul>
<li>Choking is sub optimal performance</li>
<li>Experienced people benefit from hearing the thoughts of less-experienced people</li>
<li>Taking a step back before tackling a stressful task helps not only in the task but afterwards as well. The body/brain needs time to recover from a stressful event.</li>
<li>Finding meaningful ways to group separate information into bundles can take the burden off working memory and help you remember more &#8212; <a href="http://www.qualityperspectives.ca/resources_mnemonics.html">Mnemonics anyone?</a></li>
<li>Athletes&#8217; tendency to overthink their performance is one big predictor of whether they will choke in important games or matches</li>
<li><a href="http://en.wikipedia.org/wiki/Functional_fixedness">Functional Fixedness</a></li>
<li>Adults learn new languages better when they are distracted and not concentrating too-hard on learning. This is because the distraction makes their prefrontal cortex look like a child&#8217;s</li>
<li><a href="http://en.wikipedia.org/wiki/Functional_fixedness">Stereotype threat</a></li>
<li>Changing how a math problem is presented on the page changes how the brain will attempt to solve it</li>
<li>Fight-or-flight stuff would be interesting</li>
<li>If you can manage to interpret your body&#8217;s response to a situation as a positive, as a call to action, you are likely to thrive</li>
<li>A trick to preventing the choke is to write down what is making your nervous about a situation changes how the brain reacts to it &#8212; incidentally, I no longer coach making a Test Plan but a Mindmap instead.</li>
<li>Meditation and Mindful Breathing are two tricks to help both combat and recover from a stressful event. Breathing is another thing to learn about this year. If you ever see me on a plane or just before I start a presentation I&#8217;m very consciously controlling how I breathe</li>
<li>The meditation bit is about being able to clear thoughts easier &#8212; specifically the negative ones.</li>
<li>When athletes think about themselves screwing up, they are more likely to</li>
<li>Worrying takes up working-memory &#8212; which you need!</li>
<li>When doing something you have done thousands of times before, concentrating on doing it correct is exactly what causes you to fail. &#8216;Just do it&#8217; indeed.</li>
<li>Beginners should think about what they are doing. But only until they don&#8217;t need to anymore.</li>
<li>Practice only makes perfect if it is in conditions that reflect what would experience when using that skill.</li>
<li>Focus on <i>what</i> to do rather than <i>how</i> to do it</li>
<li><a href="http://en.wikipedia.org/wiki/Learned_helplessness">Learned Helplessness</a></li>
<li><a href="http://en.wikipedia.org/wiki/Schema_(psychology)">Schemas</a> for information are important</li>
<li><a href="http://en.wikipedia.org/wiki/Mirror_neuron">Mirror neurons</a> is not &#8216;new&#8217; to me, but still is fascinating</li>
</ul>
<p>
Is Choke a must have book for the average tester? Likely not, though if you find yourself getting stressed out during release crunches this might help you perform better during them. Now, as someone who has to talk a lot either in sales calls, training classes or conferences and who has choked in the past there are things that I certainly will be doing and help coalesce some of my own observations. If you thinking of moving onto the speaking circuit or going independent there are certainly worse ways to spend your book budget than on Choke.<br />
<br />
And now a bit of semi-related commentary&#8230;<br />
<br />
I&#8217;m not really excited about this year&#8217;s iterations of conferences I have been excited about in the past. It could be burnout (certainly it is partly) but it is also a reflection of who is there. There really is a &#8216;speaking circuit&#8217; with the same people (us consultants make up a lot of it) sometimes speaking on the same set of ideas. People like Ms. Beilock are who we should be inviting to speak at these things. I suspect we understand most of the testing techniques by now &#8212; the next trick is how to apply them with the full knowledge of what is going on in our heads.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/dAfW_VfJgSk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1639</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1639</feedburner:origLink></item>
		<item>
		<title>Startup Pricing</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/D4RnSCAi_xo/</link>
		<comments>http://adam.goucher.ca/?p=1635#comments</comments>
		<pubDate>Thu, 20 Jan 2011 15:29:01 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1635</guid>
		<description><![CDATA[While at CodeMash last week, I wandered by an OpenSpace which I will broadly call &#8216;So I have questions about running a Startup &#8212; with chocolate&#8217; since I can&#8217;t remember the official name and there was chocolate. The discussion ranged from hiring, to marketing, to twitter sniping. One thing that got mentioned was the area [...]]]></description>
				<content:encoded><![CDATA[<p>While at CodeMash last week, I wandered by an OpenSpace which I will broadly call &#8216;So I have questions about running a Startup &#8212; with chocolate&#8217; since I can&#8217;t remember the official name and there was chocolate. The discussion ranged from hiring, to marketing, to twitter sniping. One thing that got mentioned was the area of pricing, which kinda surprised me. To me, this is actually the area I have the least questions about for my not-really-started-but-kinda-started startup. In fact, it is just straight math.<br />
<br />
Context:</p>
<ul>
<li>My product is to be SAAS a service</li>
<li>I don&#8217;t want to be the next Google &#8211; If I ever get over 25 employees, someone point out this post to me. In fact, I realistically see it only being me for a decent length of time.</li>
<li>It is my intention to have only one obvious product &#8211; Some companies have a portfolio of products with the intention of driving traffic to their main one. I don&#8217;t want to be that. Do one thing, really, really well.</li>
<li>Bootstrapped &#8211; I understand why some people turn to VC, etc. but since I don&#8217;t want to be the next Google and don&#8217;t need to build my own private cloud, etc. I&#8217;m thinking I&#8217;m ok here. (I&#8217;m also have lots of opinions on startups and don&#8217;t want to cede control of things.)</li>
</ul>
<p>Ok, that is a pretty stringent set of assumptions, here is my math.<br />
</p>
<ul>
<li>$desired_income + $fixed_costs + $variable_costs = $total_needed</li>
<li>x * y = $total_needed</li>
</ul>
<p>Let&#8217;s break this down. I actually think that the first equation is the more important one. You need to figure out what you want out of things in order to be able to do anything else. So let&#8217;s pretend I need $5000 take-home a month, which for arguments sake is $7000 before taxes (I have no idea if that math works; I&#8217;m currently in the &#8216;so screwed&#8217; category for my taxes&#8230;). Thats only $84000 a year which doesn&#8217;t seem that great from a living in the lap of luxury perspective, but we&#8217;re just playing with numbers.<br />
<br />
The fixed costs and variable costs are nothing that surprising: rent, servers, internets, phone, etc. For the sake of easy math, let&#8217;s call that $1500 a month.<br />
<br />
This means that my startup only needs to bring in $8500 a month. That&#8217;s it.<br />
<br />
On to the next part, which is actually surprisingly un-complicated in comparison now that we have a number that the math must meet. x is the number of users of the system, and y is the monthly subscription revenue. (Subscription is <a href="http://adam.goucher.ca/?p=1624">the model for the future</a> btw.). Which means the all these are possible pricing structures&#8230;<br />
</p>
<table border="1">
<thead>
<tr>
<td># Users</td>
<td>Subscription Amount</td>
</tr>
</thead>
<tbody>
<tr>
<td>4</td>
<td>2125</td>
</tr>
<tr>
<td>8</td>
<td>1062.50</td>
</tr>
<tr>
<td>16</td>
<td>531.25</td>
</tr>
<tr>
<td>250</td>
<td>350</td>
</tr>
<tr>
<td>500</td>
<td>17</td>
</tr>
<tr>
<td>1000</td>
<td>8.50</td>
</tr>
<tr>
<td>2000</td>
<td>4.25</td>
</tr>
</tbody>
</table>
<p>
One other &#8216;context&#8217;-y point is my gut feeling is the &#8216;right&#8217; price point is $5 / user, but I have nothing to base this on except that is what FogBugz was per user and that seemed reasonable. I could keep busting numbers now, but it looks like I would need to hit around 1700 users to achieve my goals. Which isn&#8217;t really that large a number. And anything after that is gravy.<br />
<br />
Oh, and yes, I know that as the number of users increases, so too does the costs so the number is likely higher than 1700, but not <i>that</i> much higher to completely invalidate the number exercise.<br />
<br />
The trick in all this is to do the first half of the exercise and figure out what you want out of your startup? Insane amounts of wealth and a drunken trip to the Porsche dealership on IPO day (I know people who did this during the first bubble &#8212; shockingly, you can&#8217;t buy a car with champagne oozing out your pores) or an app that fills a niche and provides you with a sustainable income. I&#8217;ve done the exercise and I&#8217;m choosing the second.<br />
<br />
Now to find the time to write some code&#8230;</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/D4RnSCAi_xo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1635</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1635</feedburner:origLink></item>
		<item>
		<title>Using skill in Bridge to guide tests</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/y_36Xx_YKn0/</link>
		<comments>http://adam.goucher.ca/?p=1631#comments</comments>
		<pubDate>Sun, 16 Jan 2011 01:37:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1631</guid>
		<description><![CDATA[How a bridge champ beats the market discusses how a 10 time national champion Bridge player uses his skills in that area to run a successful (if small) hedge fund. One paragraph stuck out when reading it. The connection with bridge, says Moss, is the ability to decide what data matter, and then to have [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://finance.fortune.cnn.com/2011/01/07/how-a-bridge-champ-beats-the-market/">How a bridge champ beats the market</a> discusses how a 10 time national champion Bridge player uses his skills in that area to run a successful (if small) hedge fund. One paragraph stuck out when reading it.<br />
<br />
<i>The connection with bridge, says Moss, is the ability to decide what data matter, and then to have the judgment to act on it. &#8220;In bridge and investing, you are constantly being bombarded with an enormous amount of information,&#8221; he says. &#8220;The key is seeing all the possibilities.&#8221; There&#8217;s more. In bridge, an opponent&#8217;s tempo of play will tell an expert more than an amateur. Similarly, in investing, knowing which market indicators to monitor, and when, is more critical than watching every piece of information.</i><br />
<br />
The last sentence is actually the most important one to testing. We can&#8217;t possibly test every permutation of inputs into the system or monitor every single response from it. We can however understand our [and our business'] context, what our mission is for testing, what things might also lead to new, interesting information.<br />
<br />
And knowing how, when and why do that is what separates the professional testers from the amateurs.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/y_36Xx_YKn0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1631</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1631</feedburner:origLink></item>
		<item>
		<title>Talent Is Overrated</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/A-1JVZXeqCk/</link>
		<comments>http://adam.goucher.ca/?p=1628#comments</comments>
		<pubDate>Sun, 28 Nov 2010 16:28:19 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1628</guid>
		<description><![CDATA[Talent Is Overrated is one of those books that you wouldn&#8217;t know about unless you are bored in an airport and wandering the bookstore. But wander I did and am glad for it. Talent is Overrated is basically another take on the whole notion of Deliberate Practice which gained some publicity in Outliers and the [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.amazon.ca/exec/obidos/ASIN/1591842247/adamgoucher-20/">Talent Is Overrated</a> is one of those books that you wouldn&#8217;t know about unless you are bored in an airport and wandering the bookstore. But wander I did and am glad for it. Talent is Overrated is basically another take on the whole notion of Deliberate Practice which gained some publicity in Outliers and the whole &#8217;10 000 hours&#8217; thing. Colvin doesn&#8217;t use that figure but offers 10 years instead. But rather than just touching on it for a chapter or two, what we have here is a full book.<br />
<br />
The first three chapters are the setup by illustrating the fallacy of the existence of prodigies and how they all, whether intentionally or not, did deliberate practice on their field of excellence for at least ten years before achieving their peaks.<br />
<br />
Chapter five is here things get interesting with the elements of deliberate practice.</p>
<ul>
<li>Designed specifically to improve performance</li>
<li>Can be repeated a lot</li>
<li>Feedback on results is immediately available</li>
<li>Highly demanding</li>
<li>Isn&#8217;t much fun</li>
</ul>
<p>
These characteristics are discussed a bit in <a href="http://money.cnn.com/2008/10/21/magazines/fortune/talent_colvin.fortune/index.htm">an article in Fortune</a> by the author (which is also an editor there). Different people have different takes on these characteristics, naturally. <a href="http://www.missiontolearn.com/2010/04/deliberate-practice/">This one</a> lists eight for instance. (That site also links to <a href="http://onlinelibrary.wiley.com/doi/10.1002/sej.82/pdf">How Entrepreneurs Acquire the Capacity to Excel: Insights from Research on Expert Performance</a> which is a less-mass-market paper on the subject.)<br />
<br />
Chapters six and seven discuss techniques for actually doing deliberate practice including some models for it. I think the model that works for testing is the <i>sports</i> model. This model&#8217;s learning is broken into two categories; general conditioning and specific training. In sports, conditioning is things like cardio and stamina but in testing it is more systems thinking and application and domain knowledge. Specific training is interesting because the application of the training will always be different. Just as no two pitches or golf lies are the same not two testing contexts are exactly the same.<br />
<br />
Since this is primarily a business book, you can likely skip the how-to-apply-it-to-the-office unless you are the one making culture decisions at which point it is imperative to read. The last chapter is about passion (a truly extraordinary drive) and its motivation and had some good things for structuring both intrinsic and extrinsic motivators.<br />
<br />
I have no idea how to apply the concepts of deliberate practice to testing. I suspect things like Weekend Testers come close, but don&#8217;t really cut it as they are only once a week. <a href="http://www.shino.de/2010/04/16/testing-dojos/">Testing Dojos</a> don&#8217;t either also due to their infrequency. The <i>Miagi-Do School of Software Testing</i> sounds like it might also come close but I can find nothing to link to that really describes it. (Matt &#8212; fix that would you?)<br />
<br />
Off the top of my head, I would guess that only <a href="http://satisfice.com">James</a> and <a href="http://www.developsense.com">Michael</a> really do what could be considered deliberate practice by constantly proposing new games, puzzles and challenges to each other. But that arrangement works (I suspect) largely on their work with RST and might not for others.<br />
<br />
Anyways, back to the book review. Should you care about deliberate practice? Absolutely. Should you buy the book? For me, I don&#8217;t regret the $20-ish I spent on it but if you just want the deliberate practice nudge and none of the background / proofs then you can likely skip it. Instead, go do some practice.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/A-1JVZXeqCk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1628</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1628</feedburner:origLink></item>
		<item>
		<title>Software G Forces</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/-74XeFjPAqE/</link>
		<comments>http://adam.goucher.ca/?p=1624#comments</comments>
		<pubDate>Sun, 14 Nov 2010 20:25:09 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1624</guid>
		<description><![CDATA[In what could have been the the most important keynote at a Quality Conference this year, Kent Beck delivered his Software G Forces talk at STP Con last month. To me, the most impactful idea of the year is Continuous Delivery and this talk is about not just the technical problems you encounter, but the [...]]]></description>
				<content:encoded><![CDATA[<p>In what could have been the the most important keynote at a Quality Conference this year, Kent Beck delivered his <i>Software G Forces</i> talk at STP Con last month. To me, the most impactful idea of the year is <i>Continuous Delivery</i> and this talk is about not just the technical problems you encounter, but the organizational and business ones that companies have to tackle in order to do it. I&#8217;ve since suggested to more than a few people that they should print out the deck, tape it on the wall and use it as a checklist.<br />
</p>
<div style="width:425px" id="__ss_2575595"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/KentBeck/software-g-forces" title="Software G Forces">Software G Forces</a></strong><object id="__sse2575595" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gforces-091124112052-phpapp01&#038;stripped_title=software-g-forces&#038;userName=KentBeck" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse2575595" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gforces-091124112052-phpapp01&#038;stripped_title=software-g-forces&#038;userName=KentBeck" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/KentBeck">KentBeck</a>.</div>
</div>
<p>
A lot of my notes were taken straight from the slides so are wonderfully redundant since the deck is embeddable. But there are a couple things that I don&#8217;t think are there.<br />
</p>
<ul>
<li>Inspiration is preparation plus panic</li>
<li>The trick is to identify the visionary crazy people from the crazy crazy people</li>
<li>Automated acceptance tests &#8211; when you have 3 months to deploy you don&#8217;t have 2 months to test</li>
<li>Subscriptions &#8211; when you release all the time, customers don&#8217;t want/expect to be billed each release and it also decouples the billing cycle from the development one</li>
<li>Getting rid of the QA department does not mean getting rid of the testers &#8212; just the organizational split</li>
<li>Even with complete automation as a goal, things that need human judgement still require humans</li>
<li>Rollbacks are triggered by business metrics not technical metrics</li>
<li>If death is the alternative, then radical change is appropriate. Otherwise, test the water</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/-74XeFjPAqE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1624</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1624</feedburner:origLink></item>
		<item>
		<title>Star West 2010 – Summary</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/OqXmjpYdgWw/</link>
		<comments>http://adam.goucher.ca/?p=1621#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:41:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1621</guid>
		<description><![CDATA[As part of my ongoing experiment of going to conferences to increase my visibility and promote my company I attended my first Star West conference this year. So far the experiment isn&#8217;t going so well and I lose money on every conference which is apparently not uncommon as the payoff from the speaker circuit takes [...]]]></description>
				<content:encoded><![CDATA[<p>As part of my ongoing experiment of going to conferences to increase my visibility and promote <a href="http://element34.ca">my company</a> I attended my first Star West conference this year. So far the experiment isn&#8217;t going so well and I lose money on every conference which is apparently not uncommon as the payoff from the speaker circuit takes a couple years to start. Now they tell me&#8230;<br />
<br />
I had missed the submission deadline for Star West and didn&#8217;t want to pay full price for admission so I volunteered to host the Test Automation track for SQE. <i>Insider Secret &#8211; Conferences are always looking for people to do this and you will often get comp&#8217;ed the admission by doing it</i>. This meant that I didn&#8217;t get to choose which sessions to attend and also meant I had to stay in them for the entire duration.<br />
<br />
Not being able to leave meant I learned a valuable lesson &#8211; don&#8217;t judge a session by the first 2 minutes. I tend to give up on sessions too early opting instead to sit in the hallways and socialize with people I only see at conferences.<br />
<br />
So here are write-ups on every session from the Star West 2010 Test Automation track. It would have been nice to include slide decks in each from something like slideshare but those cost money to access and certainly are not embeddable.</p>
<ul>
<li><a href="http://adam.goucher.ca/?p=1592">Building a Successful Test Automation Strategy</a></li>
<li><a href="http://adam.goucher.ca/?p=1595">Automating Test Design in Agile Development Environments</a></li>
<li><a href="http://adam.goucher.ca/?p=1599">State-driven Testing: An Innovation in UI Test Automation</a></li>
<li><a href="http://adam.goucher.ca/?p=1603">Testing Dialogues: Automation Issues</a></li>
<li><a href="http://adam.goucher.ca/?p=1606">Futility-based Test Automation</a></li>
<li><a href="http://adam.goucher.ca/?p=1609">Handling Failures in Automated Acceptance Tests</a></li>
</ul>
<p>
The thing that most impressed me about my Star experience is the program book they give you. For each session is a page that has the topic blurb at the top and then ruled paper for the rest. This means notes are nice and tidy and in one spot. CAST and other similarly sized conferences should take note of this though I don&#8217;t see it scaling to Agile size without massive deforestation.<br />
<br />
My experience was however blighted by some of the HP booth staff who <a href="http://adam.goucher.ca/?p=1613">I think owe me an apology</a>. And I suspect that as a result I&#8217;ll be persona non grata at SQE events for awhile. Which is fine with me for the moment as I don&#8217;t think I&#8217;ll be doing the conference thing for at least 2011.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/OqXmjpYdgWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1621</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1621</feedburner:origLink></item>
		<item>
		<title>The HP Booth Staff (Goons) Owe Me an Apology</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/lFWM3FuacWM/</link>
		<comments>http://adam.goucher.ca/?p=1613#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:38:18 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1613</guid>
		<description><![CDATA[So a curious thing happened to me while in the Dialogues session at Star West this year. As mentioned in the write-up, I was in the Getting Started group and by nature of being seated next to the easel, I took the marker to become the Secretary for the group. I think there were about [...]]]></description>
				<content:encoded><![CDATA[<p>So a curious thing happened to me while in the <a href="http://adam.goucher.ca/?p=1603">Dialogues session</a> at Star West this year. As mentioned in the write-up, I was in the Getting Started group and by nature of being seated next to the easel, I took the marker to become the Secretary for the group.<br />
<br />
I think there were about a dozen people in this particular group and at the risk of sounding overly pompous I was the only person who had succeeded with automation. Which makes sense if you think about it as groups were self organizing &#8212; those who didn&#8217;t need to talk about getting started went to more advanced / specific topics. I only went to this group as Star West was part of a year-long experiment on going to conferences as marketing. (I&#8217;m actually writing this on the plane to STPCON.)<br />
<br />
The latter half of the conversation focuses around tools and tooling. And as I remarked on Twitter later, Selenium doesn&#8217;t have to do much marketing to keep growing as there is a lot of dissatisfaction in the market around QTP if this sample is any indication.<br />
<br />
With full disclosure given that I work on and with Selenium, I gave general consultant-y sounding answers around tools. Some of which made it to <a href="http://www.softwaretestpro.com:80/Item/4937/The-Relationship-of-Testing-Tools-to-Economics--Freedom/Automation-Testing">The Relationship of Testing Tools to Economics &#038; Freedom</a>. To me, using QTP to test web applications is a darn near unethical waste of company resources (cash). Yes, there are times when you might need to use it. For instance, when I was in the WinRunner world there were plugins for driving terminal emulators and powerbuilder applications and I wouldn&#8217;t be shocked if QTP wasn&#8217;t the best thing in those categories.<br />
<br />
My argument against QTP aside from the cost goes something like this&#8230;</p>
<ul>
<li>It&#8217;s closed source (so you can&#8217;t <a href="http://adam.goucher.ca/?p=153">build your own lightsaber</a>)</li>
<li>It doesn&#8217;t have a &#8216;real&#8217; scripting language. Where real means cross-platform and where skills learned in it an be transposed to others as well. VBScript might as well be Vendor Script in automation.</li>
<li>It is Windows only &#8212; and there are increasingly more and more non-windows consumers of web applications every day. If you have a public web application that doesn&#8217;t care about the increasing Mac (or even Linux) market, let me know and I&#8217;ll create a clone to target it.</li>
</ul>
<p>
All three of these were brought up during the session and even though I repeatedly said &#8220;I could take this over quite easily, but don&#8217;t want to&#8221; it became somewhat Q &amp; A.<br />
<br />
Unbeknownst to me though there was a &#8216;mole&#8217; [used tounge-in-cheek] in the group who did not enjoy my providing an alternate view to QTP being &#8216;all that&#8217;. This person did two things after the session that significantly changed my Star West experience.<br />
<br />
First they wrote a long, and scathing comment on the back of the feedback form about my &#8216;bashing&#8217; of QTP. Feedback forms are very important to the Star conferences and are used as input for whether speakers are invited back and to use it to comment on another session participant would be an un-necessary blight against the actual session coordinators which is unfair. And frankly cowardly. Whomever you are, you&#8217;ve lost my respect.<br />
<br />
I&#8217;m extrapolating on that the second event is related to the same person, but during the break I was still in the room talking to a few remaining people when two people from HP&#8217;s booth approached and introduced themselves. Someone had come up to their booth and was told that I was &#8216;bashing&#8217; (same word as on the feedback form) on QTP and informed that HP, as a sponsor &#8216;was not allowed to bash Selenium so I should stop bashing QTP&#8217;<br />
<br />
Let&#8217;s pause for a second for context.<br />
<br />
I was not at Star West as a sponsor.<br />
<br />
I was not at Star West as a speaker.<br />
<br />
I was there as a volunteer.<br />
<br />
My badge said &#8216;Delegate&#8217;.<br />
<br />
Now, I did get comp&#8217;ed entrance into the conference by volunteering as a track host. This meant I didn&#8217;t get to pick which sessions I went to as I had to be in all the ones I was hosting &#8212; so though no money was exchanged a price was paid. The job of the track host is to help the speaker get their laptop working on the screen, mic&#8217;ed up, introduce them and then thank them at the end. And be a gopher if needed. But other than that you are just another session participant. It is not a paid position and the person does not assume any representation of SQE (the organizer of the Star events).<br />
<br />
So I, a <i>delegate</i>, was told to be quiet by a vendor/sponsor. Ummm, ya, HP &#8212; your money didn&#8217;t buy you that. Or shouldn&#8217;t have at any rate.<br />
<br />
Now, if I was either of those things then the rules would be different. Star prides itself on not having marketing sessions and playing fair-ish on the trade show could be seen as just good etiquette. Remember though, that I was a delegate.<br />
<br />
I&#8217;m pretty pissed that those two from the HP booth had the nerve to try to censor me. The proper thing they should have done is to ask to talk to me and see if they could try to address my concerns about their product. They&#8217;re not going to win me as a convert, but at least they would know what I was saying and the reasons for it. But instead they sent down the goon squad.<br />
<br />
And for that, I think I&#8217;m owed apology &#8212; from HP.<br />
<br />
Three final points.<br />
<br />
First, when recounting this to Rob Sabourin (whose session I missed as I was doing my volunteer duties) later he suggested that listening to a recording of what I actually said and <i>how</i> I said it might be useful. There are a couple people in the testing community that when get onto passionate subjects can come across stronger than intended. I concede that this might be such a situation. Alas, no such recording exists (to my knowledge).<br />
<br />
Volunteers at Agile all wear shirts emblazoned with &#8216;VOLUNTEER&#8217; on them so noone can accidentally assume they are anything but during their shifts. All conferences, including Star should pickup on this model if not with shirts then buttons or ribbons or something else. I fear that because I was seen in all the automation sessions more was assumed about my status that it really was. (Though ironically my session hosting duties for this particular one were limited to cleaning the room in-between and after the session.)<br />
<br />
And finally, a sincere apology to Dot and Mieke on any possible repercussions from the feedback you might have received. And to Lee Copeland (program chair of Star West) who had his morning ruined by having HP track him down so as to have to track me down to have a chat (though I think the right answer should have been to tell HP I was neither a speaker nor sponsor so HP can&#8217;t complain).</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/lFWM3FuacWM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1613</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1613</feedburner:origLink></item>
		<item>
		<title>Handling Failures in Automated Acceptance Tests</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/w5F0yRGOExk/</link>
		<comments>http://adam.goucher.ca/?p=1609#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:28:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1609</guid>
		<description><![CDATA[Alex Imrie&#8217;s talk has the distinction of being the one I took the most notes in. In a nutshell, it was about when and how to handle when things blow up in your scripts. And they will. In her intro she said that she &#8220;shouldn&#8217;t be here&#8221; since she comes from a linguistics background. I [...]]]></description>
				<content:encoded><![CDATA[<p>Alex Imrie&#8217;s talk has the distinction of being the one I took the most notes in. In a nutshell, it was about when and how to handle when things blow up in your scripts. And they will. In her intro she said that she &#8220;shouldn&#8217;t be here&#8221; since she comes from a linguistics background. I would argue that makes her more qualified than most to be there; we need an even more diverse set of backgrounds thinking about stuff in test.</p>
<ul>
<li>We want our automation results to be constant</li>
<li>Some definitions
<ul>
<li>An &#8216;event&#8217; is a deviation from plan</li>
<li>An &#8216;exception&#8217; can be handled in the script</li>
<li>An &#8216;error&#8217; can&#8217;t be dealt with in the automation</li>
</ul>
</li>
<li>I think I have a problem with the chosen terminology since they already mean one thing in a programming context and now we&#8217;re overloading them with something else. The distinction and need for a name though is valuable</li>
<li>Events can happen from the development process, the test environment or the test platform. Ideally we want them to be in the platform as that is where the interesting things are from a testing perspective.</li>
<li>The big solution to these is really better communication (we knew that) but also one can try to build in some manual tester intelligence</li>
<li>React to the real issue, not the inherited problem</li>
<li>Use state validation before and after an action &#8212; which can clutter the script, but is valuable especially things like Selenium which will happily click on a hidden field.</li>
<li>But of course that means state hooks were added for you.</li>
<li>If you can&#8217;t eliminate dependencies, at least know them</li>
<li>Setup and teardown are often the most complex parts of automation</li>
<li>&#8216;Local&#8217; event resolution has the workaround in the test itself</li>
<li>&#8216;Global&#8217; event resolution is more like a high level exception handler that logs a message and then bails out of the script</li>
<li>Can your teardown work in both happy and sad test situations?</li>
<li>Start with a Global handler and add Local ones as needed</li>
<li>Continuous Integration + AUtomated Testing = Merciless Transparency</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/w5F0yRGOExk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1609</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1609</feedburner:origLink></item>
		<item>
		<title>Futility-based Test Automation</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/Z37NMt9GRfw/</link>
		<comments>http://adam.goucher.ca/?p=1606#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:26:21 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1606</guid>
		<description><![CDATA[Clint Sprauve did a pretty slick talk at Star West of the format &#8216;do these things and you will fail&#8217; style that is popular these days. You know you are attending a talk in the US when it starts with a football metaphor; kinda worked, but likely could have gone better with a different audience. [...]]]></description>
				<content:encoded><![CDATA[<p>Clint Sprauve did a pretty slick talk at Star West of the format &#8216;do these things and you will fail&#8217; style that is popular these days. You know you are attending a talk in the US when it starts with a football metaphor; kinda worked, but likely could have gone better with a different audience. Ah well.</p>
<ul>
<li>Unit tests is like only spellchecking for a novel &#8212; spell correct but is want to read it?</li>
<li>The techniques&#8230;
<ul>
<li>Record and Playback <i>only</i></li>
<li>Dependencies between Tests</li>
<li>Elaborate Test Frameworks</li>
<li>Substantial Duplication of Tests</li>
<li>Happy Path only</li>
<li>No (or not enough) Unit Tests</li>
<li>No (or not enough) GUI Tests</li>
<li>Poor readability of test cases</li>
<li>Go Agile and <i>force</i> BAs and SMEs into automation</li>
<li>Keyword Driven Testing</li>
</ul>
</li>
<li>Manual testing didn&#8217;t die because we created automated testing</li>
<li>A Pragmatic Approach
<ul>
<li>Don&#8217;t let tools&#8217; drive your quality efforts</li>
<li>Use DSLs (either Cucumber-ish or Keyword)</li>
<li>and a couple other things I didn&#8217;t catch</li>
</ul>
</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/Z37NMt9GRfw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1606</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1606</feedburner:origLink></item>
		<item>
		<title>Testing Dialogues: Automation Issues</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/QxMtQdQtGGE/</link>
		<comments>http://adam.goucher.ca/?p=1603#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:24:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1603</guid>
		<description><![CDATA[Thursday morning at Star West found me in a workshop held by Dorothy Graham and Mieke Gevers. It was actually two workshops split by the morning break. The attendees self-organized into 7 or 8 groups to talk around a particular topic. For the first part I went to the &#8216;Getting Started&#8217; group as I certainly [...]]]></description>
				<content:encoded><![CDATA[<p>Thursday morning at Star West found me in a workshop held by Dorothy Graham and Mieke Gevers.  It was actually two workshops split by the morning break. The attendees self-organized into 7 or 8 groups to talk around a particular topic.<br />
<br />
For the first part I went to the &#8216;Getting Started&#8217; group as I certainly have no small number of ideas on how to do it. There was lots of angst about having automation thrust on people and in particular QTP (which then inspired <a href="http://www.softwaretestpro.com:80/Item/4937/The-Relationship-of-Testing-Tools-to-Economics--Freedom/Automation-Testing">The Relationship of Testing Tools to Economics &amp; Freedom</a>). It also resulted in another unfortunate incident which I&#8217;ll document later.<br />
<br />
The second part was I think much better than the first. In the second, there was only two groups; one which Mieke participated in directly on building a framework and one on ROI which Dot facilitated. This format lent to greater depth of dialogue and deeper learning. In the future, I think they should do it in this format again.<br />
<br />
Each group took notes on chart paper art-show style which were photographed. Once I get a copy of them I&#8217;ll update the post.</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/QxMtQdQtGGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1603</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1603</feedburner:origLink></item>
		<item>
		<title>State-driven Testing: An Innovation in UI Test Automation</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/Em8VK3vYDpk/</link>
		<comments>http://adam.goucher.ca/?p=1599#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:20:57 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1599</guid>
		<description><![CDATA[Dietmar Strasser talked at Star West 2010 about incorporating State into Keyword-driven automation UI tools to limit the amount of keywords presented and reducing use of keywords at the wrong time. It seemed to drift from product demo to cool idea show-and-tell but ended up not really being either as it is just an internal [...]]]></description>
				<content:encoded><![CDATA[<p>Dietmar Strasser talked at Star West 2010 about incorporating State into Keyword-driven automation UI tools to limit the amount of keywords presented and reducing use of keywords at the wrong time. It seemed to drift from product demo to cool idea show-and-tell but ended up not really being either as it is just an internal tool they are playing with. My notes are really tool specific and not really relevant to the general audience. A cool experiment, but there are way too many layers I think and can see creating / maintaining within this system being a huge task. His internal usage says otherwise, but then again, he wrote the tool. How many times have <i>I</i> fallen into that trap?</p>
<ul>
<li>Keyword growth is a problem.
<li>
<li>State-driven Testing = Keyword-driven Testing + (UI) State Management</li>
<li>The tool has an XML based DSL to model the state</li>
<li>That XML is parsed to control the state stack</li>
<li>Who does what?
<ul>
<li>DSL &#8211; tester, domain specialist</li>
<li>Test Design &#8211; tester, domain specialist, product owner</li>
<li>Implementation (Java only right now) &#8211; developer, automation engineer</li>
</ul>
</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/Em8VK3vYDpk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1599</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1599</feedburner:origLink></item>
		<item>
		<title>Automating Test Design in Agile Development Environments</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/sb8jY8_PLpk/</link>
		<comments>http://adam.goucher.ca/?p=1595#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:17:34 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1595</guid>
		<description><![CDATA[Antti Huima loves algorithms and his talk at Star West 2010 reflected this. And that is actually a good thing. If V-Model is constructing a skyscraper, Agile is working on an oil painting (since oil never really dries and is constantly reworked). This is the best metaphor I think I&#8217;ve seen on the old vs. [...]]]></description>
				<content:encoded><![CDATA[<p>Antti Huima loves algorithms and his talk at Star West 2010 reflected this. And that is actually a good thing.</p>
<ul>
<li>If V-Model is constructing a skyscraper, Agile is working on an oil painting (since oil never really dries and is constantly reworked). This is the best metaphor I think I&#8217;ve seen on the old vs. new way of doing things.</li>
<li>He mentioned crunch time though a couple times when describing agile. If you have a crunch time, you&#8217;re not agile.</li>
<li>Automated Test Design (ATD) in this context means producing test cases by running some sort of algorithm or program. Such as Pairwise, Finite State Machines or System Model Driven.</li>
<li>Its automated since a machine is doing it</li>
<li><i>BUT</i> humans are involved in every step</li>
<li>When choosing your ATD strategy, think about
<ul>
<li>How quickly can you update your model and generate new tests?</li>
<li>How small an increment can it handle</li>
</ul>
</li>
<li>You can use agile for implementation and v-model for test design</li>
<li>Rules of thumb around requirements
<ul>
<li>Small changes in requirements must lead to small changes in models</li>
<li>Must be able to start with a small model rather than the whole thing immediately</li>
<li>No significant delays caused by tooling</li>
<li>Support for generating directly executable tests</li>
</ul>
</li>
<li>Only model what you need <i>right now</i></li>
<li><i>Helps TDD since the tests are created for you</i>. I don&#8217;t think I believe this one. TDD&#8217;s big win is not the suite of regression tests (which are nice) but the evolving design and testability that result of building the tests by hand. Having a machine do them misses the point.</li>
<li>You can&#8217;t as Deep Blue why it did a [chess] move. The same applied for your generated tests. Which is the big weakness. Go ahead and ask your algorithm &#8216;why&#8217;</li>
<li>Models don&#8217;t have to be monolithic</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/sb8jY8_PLpk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1595</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1595</feedburner:origLink></item>
		<item>
		<title>Building a Successful Test Automation Strategy</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/2DENOcIyQGQ/</link>
		<comments>http://adam.goucher.ca/?p=1592#comments</comments>
		<pubDate>Tue, 19 Oct 2010 12:15:21 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Star West 2010]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1592</guid>
		<description><![CDATA[Karen Rosengren&#8217;s Star West 2010 session was about how to build a test strategy. The big thing for me is that I need to learn about Value Stream Mapping. Identify the problem &#8212; capture metrics that shoe you have a problem and the value of solving it. A big thing here is that you are [...]]]></description>
				<content:encoded><![CDATA[<p>Karen Rosengren&#8217;s Star West 2010 session was about how to build a test strategy. The big thing for me is that I need to learn about Value Stream Mapping.</p>
<ul>
<li>Identify the problem &#8212; capture metrics that shoe you have a problem and the value of solving it. A big thing here is that you are making sure to understand not only that automation can solve a problem but that it should actually be solved.</li>
<li>Symptoms are not useful in identification</li>
<li>Too often the automation team&#8217;s job is to solve your company&#8217;s equivalent of world hunger</li>
<li>Start from where you are. So where are you?</li>
<li>Value Stream Mapping &#8211; sit the team down and find out what you are doing now</li>
<li>True value is adding when I&#8217;m running the tests. The setup etc. is necessary time but not value add.</li>
<li>Big wins to be had automating to build deployment and environment configuration. She uses Tivoli (since she works for IBM), but nicely avoiding turning it into a Tivoli sales presentation &#8212; which it could have quite easily.</li>
<li>The Star audience is largely non-technical so she pointed out you are going to need programmers.</li>
<li>Split metrics into two buckets
<ul>
<li>Business Impact &#8211; illustrate the business value and help sell projects</li>
<li>Operating &#8211; how well the implementation is going</li>
</ul>
</li>
<li><i>Automation is not just test execution</i></li>
<li>Rank scripts by time and effort when deciding what to automation</li>
</ul>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/2DENOcIyQGQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1592</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1592</feedburner:origLink></item>
		<item>
		<title>Where I start to experiment with Cucumber</title>
		<link>http://feedproxy.google.com/~r/AdamGoucher/~3/6XOvKWOi4Kk/</link>
		<comments>http://adam.goucher.ca/?p=1589#comments</comments>
		<pubDate>Sat, 02 Oct 2010 15:37:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[s3cr3t]]></category>

		<guid isPermaLink="false">http://adam.goucher.ca/?p=1589</guid>
		<description><![CDATA[Earlier today I made a mini-plea on Twitter for TDD references (specific to Rails 3) since I&#8217;m starting to build an app and should do it the &#8216;proper&#8217; way. Ends up what I really wanted was BDD/ATDD references; specifically Cucumber + Rails 3. Following the concept of Minimum Viable Product as a model I sketched [...]]]></description>
				<content:encoded><![CDATA[<p>Earlier today I made a mini-plea on Twitter for TDD references (specific to Rails 3) since I&#8217;m starting to build an app and should do it the &#8216;proper&#8217; way. Ends up what I really wanted was BDD/ATDD references; specifically Cucumber + Rails 3.<br />
<br />
Following the concept of Minimum Viable Product as a model I sketched out the first two Cucumber features while waiting for the boy at karate this morning. And already I had one of those &#8216;oh, wait!&#8217; moments by realizing I hadn&#8217;t done the &#8216;show the landing page&#8217; stuff before the &#8216;signup&#8217; parts.<br />
<br />
So here are my features. Again, the eventual signup form will eventually have a tonne more information, but all I need <i>right now</i> is username and password.<br />
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="cucumber" style="font-family:monospace;">Feature: Landing
  In order to use test maps
  As a user
  I want to see the landing page
&nbsp;
  Scenario: Display landing page
    Given user is not cookied
    When user goes to site
    Then landing page is displayed</pre></td></tr></table></div>

<p></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="cucumber" style="font-family:monospace;">Feature: Signup
  In order to create test maps
  As a new user
  I want to register
&nbsp;
  Scenario: Display registration form
    Given user is unregistered
    When user clicks they want to signup
    Then signup page is displayed
&nbsp;
  Scenario: Happy path signup
    Given username is available
    And password is strong
    And password is verified
    When user clicks signup
    Then user is created
&nbsp;
  Scenario: Username available
    Given username is already in use
    And password is strong
    And password is verified
    When user clicks signup
    Then message 'Username is not available' is displayed
&nbsp;
  Scenario: Password length
    Given a password is too short
    And password is verified
    And username is available
    When user clicks signup
    Then message 'Password needs to be 5 or more characters' is displayed
&nbsp;
  Scenario: Password verification
    Given a password is not verified
    And password is strong
    And username is available
    When user clicks signup
    Then message 'Password fields do not match' is displayed</pre></td></tr></table></div>

<p>
Anyone have any stylistic suggestions?<br />
<br />
Now all I need to do is implement the actual steps. Heh; all&#8230;</p>
<img src="http://feeds.feedburner.com/~r/AdamGoucher/~4/6XOvKWOi4Kk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.goucher.ca/?feed=rss2&amp;p=1589</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.goucher.ca/?p=1589</feedburner:origLink></item>
	</channel>
</rss>
